Menu
CoddyTech

Revisão - Calculadora simples

Parte da seção Programação orientada a objetos do Journey de GDScript da Coddy. Lição 8 de 65.

challenge icon

Desafio

Médio

Escreva a classe Calculator em calculator.gd. Ela mantém um resultado acumulado na propriedade float result, que começa em 0.0.

  • add(number), subtract(number), multiply(number) e divide(number) aplicam a operação a result usando number, armazenam o novo resultado e o retornam
  • Quando divide() recebe 0, imprime Error: Division by zero, mantém result inalterado e o retorna
  • clear() define result novamente como 0.0 e o retorna
  • get_result() retorna result

O código fornecido lê quantos comandos virão em seguida e, então, um comando por linha, como add 5, divide 0 ou clear. Após cada comando, imprime o nome do comando e o valor retornado pelo método e, no final, o resultado final. Para add 5, multiply 3, subtract 2, divide 0 e 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

Seu código deve ficar em calculator.gd. main.gd contém o código fornecido de entrada/saída e não pode ser editado.

Experimente você mesmo

extends Node

func _ready():
	# Código de entrada/saída fornecido: mantenha-o 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 as lições de Programação orientada a objetos

Pratique por conta própria: Compilador de GDScript online