Menu
CoddyTech

Repaso: calculadora sencilla

Parte de la sección Programación orientada a objetos del Journey de GDScript de Coddy. Lección 8 de 65.

challenge icon

Desafío

Intermedio

Escribe la clase Calculator en calculator.gd. Mantiene un resultado acumulado en la propiedad float result, que comienza en 0.0.

  • add(number), subtract(number), multiply(number) y divide(number) aplican la operación a result con number, guardan el nuevo resultado y lo devuelven
  • Cuando divide() recibe 0, imprime Error: Division by zero, deja result sin cambios y lo devuelve
  • clear() vuelve a establecer result en 0.0 y lo devuelve
  • get_result() devuelve result

El código proporcionado lee cuántos comandos siguen y, después, un comando por línea, como add 5, divide 0 o clear. Después de cada comando, imprime el nombre del comando y el valor que devolvió el método y, al final, el resultado final. Para add 5, multiply 3, subtract 2, divide 0 y divide 2, imprime:

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

Escribe tu código en calculator.gd. main.gd contiene el código proporcionado de entrada/salida y no se puede editar.

Pruébalo tú mismo

extends Node

func _ready():
	# Código de entrada/salida proporcionado: mantenlo tal como está
	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())

Todas las lecciones de Programación orientada a objetos

Practica por tu cuenta: Compilador de GDScript online