Menu
CoddyTech

Повторение: простой калькулятор

Часть раздела Объектно-ориентированное программирование путешествия по GDScript на Coddy. Урок 8 из 65.

challenge icon

Задание

Средне

Напиши класс Calculator в файле calculator.gd. Он хранит текущий результат в свойстве float result, начальное значение которого — 0.0.

  • add(number), subtract(number), multiply(number) и divide(number) выполняют операцию над result с использованием number, сохраняют новый результат и возвращают его
  • Если divide() получает 0, функция выводит Error: Division by zero, оставляет result без изменений и возвращает его
  • clear() снова присваивает result значение 0.0 и возвращает его
  • get_result() возвращает result

Предоставленный код считывает количество следующих команд, а затем по одной команде в каждой строке, например add 5, divide 0 или clear. После каждой команды он выводит её имя и значение, возвращённое методом, а в конце — итоговый результат. Для команд add 5, multiply 3, subtract 2, divide 0 и divide 2 он выводит:

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

Твой код должен находиться в файле calculator.gd. В main.gd находится предоставленный код ввода/вывода, который нельзя редактировать.

Попробуйте сами

extends Node

func _ready():
	# Предоставленный код ввода-вывода: оставьте его без изменений
	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())

Все уроки раздела Объектно-ориентированное программирование

Потренируйтесь самостоятельно: Онлайн-компилятор GDScript