אתם מתרגלים שאלה מתוך מה"ט אלגוריתמיקה ותכנות בפייתון — הנדסאי תוכנהמבחן 2024 · אביב מועד א · שאלה 7כל שאלות המבחן ←
תכנות מונחה עצמים›מחלקות ואובייקטים

נתונה המחלקה Book שיש לה שלוש תכונות:

  • קוד ספר – code, מטיפוס שלם, int
  • שנת הוצאה – year, מטיפוס שלם, int
  • האם כתוב בעברית – isHebrew, מטיפוס בוליאני, bool

במחלקה הוגדרה פעולה הבונה (בנאי, constructor)

def __init__(self, code, year, is_hebrew):
    self.code = code
    self.year = year
    self.is_hebrew = is_hebrew
סעיף א

כתבו פעולה המקבלת מספר שלם וחיובי year1 המציין שנה ובודקת אם עברו יותר מעשר שנים משנת ההוצאה עד לשנה year1 (כולל). אם כן – הפעולה תחזיר ערך True, ולא, הפעולה תחזיר ערך False. כותרת הפעולה: old_book(self, year1)

סעיף ב

הפעולה old_book(self, year1) מסעיף א' מחזירה True אם עברו יותר מעשר שנים משנת ההוצאה עד לשנה year1 (כולל), ואחרת False.

עקבו בעזרת טבלת המעקב אחרי ביצוע קטע הקוד הבא ורשמו מה יהיה הפלט.

b1 = Book(1122, 1998, False)
b2 = Book(2233, 2010, True)
# כאן יש להוסיף פקודה/פקודות בסעיף ג' (*)
if b1.old_book(2014) and not b1.is_hebrew:
    print("###")
else:
    print("***")
if b2.old_book(2015):
    print("!!!")
else:
    if b2.is_hebrew:
        print("???")
סעיף ג

נא השלימו בקוד בסעיף ב' במקום (*) פקודה או פקודות כך שפלט קטע הקוד יהיה *** בלבד.

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי