Menu
CoddyTech

Wiederholung – Einfacher Taschenrechner

Teil des Abschnitts Objektorientierte Programmierung der GDScript-Journey von Coddy. Lektion 8 von 65.

challenge icon

Aufgabe

Mittel

Schreibe die Klasse Calculator in calculator.gd. Sie speichert ein laufendes Ergebnis in der float-Eigenschaft result, die mit 0.0 beginnt.

  • add(number), subtract(number), multiply(number) und divide(number) führen die jeweilige Operation mit number auf result aus, speichern das neue Ergebnis und geben es zurück
  • Wenn divide() 0 erhält, gibt die Methode Error: Division by zero aus, lässt result unverändert und gibt es zurück
  • clear() setzt result wieder auf 0.0 und gibt es zurück
  • get_result() gibt result zurück

Der bereitgestellte Code liest ein, wie viele Befehle folgen, und anschließend einen Befehl pro Zeile, zum Beispiel add 5, divide 0 oder clear. Nach jedem Befehl gibt er den Befehlsnamen und den Wert aus, den die Methode zurückgegeben hat, und am Ende das endgültige Ergebnis. Bei add 5, multiply 3, subtract 2, divide 0 und divide 2 gibt er Folgendes aus:

add -> 5.0
multiply -> 15.0
subtract -> 13.0
Error: Division by zero
divide -> 13.0
divide -> 6.5
Final result: 6.5

Dein Code gehört in calculator.gd. main.gd enthält den bereitgestellten Ein-/Ausgabecode und darf nicht bearbeitet werden.

Probier es selbst

extends Node

func _ready():
	# Vorgegebener Ein-/Ausgabecode: unverändert lassen
	var calc := Calculator.new()
	var count := int(OS.read_string_from_stdin())
	for i in count:
		var parts := OS.read_string_from_stdin().split(" ")
		var value := 0.0
		match parts[0]:
			"add":
				value = calc.add(float(parts[1]))
			"subtract":
				value = calc.subtract(float(parts[1]))
			"multiply":
				value = calc.multiply(float(parts[1]))
			"divide":
				value = calc.divide(float(parts[1]))
			"clear":
				value = calc.clear()
		print("%s -> %s" % [parts[0], value])
	print("Final result: %s" % calc.get_result())

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-GDScript-Compiler