חזרה – מחשבון פשוט
חלק מהיחידה תכנות מונחה עצמים במסלול ה-GDScript של Coddy. שיעור 8 מתוך 65.
אתגר
בינוניכתבו את המחלקה 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())
כל השיעורים ביחידה תכנות מונחה עצמים
1יסודות התכנות מונחה העצמים
קבצים חיצונייםמבוא ל-OOPמחלקות לעומת אובייקטיםמילת המפתח selfמתודותמאפייניםבנאי (_init)חזרה – מחשבון פשוט2מאפייני מחלקה
משתני מופע לעומת משתנים סטטייםפונקציות סטטיותקובעי מאפייניםמאחזרי מאפייניםפרטיים לפי מוסכמהסיכום – מנהל חשבון בנק5כימוס
איברים ציבוריים ופרטייםאימות באמצעות Settersהסתרת מידעמאפיינים לקריאה בלבדסיכום – מערכת לניהול רשומות תלמידיםתרגלו בעצמכם: קומפיילר GDScript אונליין