Menu
CoddyTech

復習 - シンプルな電卓

CoddyのGDScriptジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 8/65。

challenge icon

チャレンジ

中級

calculator.gdにクラスCalculatorを記述してください。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のようなコマンドを1行ずつ読み取ります。各コマンドの後に、コマンド名とメソッドが返した値を出力し、最後に最終結果を出力します。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オンラインコンパイラ