Menu
CoddyTech

Powtórka – prosty kalkulator

Część sekcji Programowanie obiektowe ścieżki GDScript w Coddy. Lekcja 8 z 65.

challenge icon

Wyzwanie

Średni

Napisz klasę Calculator w pliku calculator.gd. Przechowuje bieżący wynik we właściwości float result, której wartość początkowa to 0.0.

  • add(number), subtract(number), multiply(number) i divide(number) wykonują działanie na result z użyciem number, zapisują nowy wynik i go zwracają
  • Gdy divide() otrzyma 0, wypisuje Error: Division by zero, pozostawia result bez zmian i go zwraca
  • clear() ponownie ustawia result na 0.0 i go zwraca
  • get_result() zwraca result

Dostarczony kod odczytuje liczbę kolejnych poleceń, a następnie jedno polecenie w każdym wierszu, na przykład add 5, divide 0 lub clear. Po każdym poleceniu wypisuje jego nazwę oraz wartość zwróconą przez metodę, a na końcu końcowy wynik. Dla poleceń add 5, multiply 3, subtract 2, divide 0 i divide 2 wypisuje:

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

Umieść swój kod w pliku calculator.gd. Plik main.gd zawiera dostarczony kod wejścia/wyjścia i nie można go edytować.

Spróbuj swoich sił

extends Node

func _ready():
	# Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
	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())

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator GDScript online