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 אונליין