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

החברה "סע לך" מוכרת כרטיסי טיסה ליעדים שונים ברחבי העולם. לצורך אחסון נתוני כרטיסים שנמכרו הוגדרה מחלקה בשם Destination ולה 3 תכונות:

  • שם היעד — name, מסוג מחרוזת (string).
  • מחיר כרטיס — price, מסוג מספר ממשי (float).
  • מספר כרטיסים שנמכרו — num, מסוג מספר שלם (int).

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

def __init__(self, name = None, price = None, num = None):
    if name is None:
        self.name = "New York"
        self.price = 100.0
        self.num = 10
    else:
        self.name = name
        self.price = price
        self.num = num
סעיף א

כתבו פעולה המחשבת ומחזירה את ההכנסה הכוללת ממכירת כרטיסים ליעד (מחיר כולל של כל הכרטיסים שנמכרו ליעד).

total(self)

סעיף ב

לפניכם קטע קוד המשתמש במחלקה Destination:

d1 = Destination()
print(d1.name, d1.total())
d1.name = "London"
d1.num = 200
d1.price = 300.0
print(d1.name, d1.total())
d1.num = 50
d2 = Destination(d1.name, 100.0, d1.num)
print(d2.name, d2.total())

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

סעיף ג

כתבו פעולה המקבלת רשימת יעדים dest ומחזירה שם יעד שההכנסה הכוללת ממכירת הכרטיסים אליו היא הכי נמוכה.

get_not_popular(dest)

סעיף ד

כתבו פעולה המקבלת רשימה dest ומחיר max_price. הפעולה תחזיר את רשימת שמות היעדים אשר מחיר כרטיס טיסה אליהם הינו נמוך מ-max_price. אם אין אף יעד כזה, הפעולה תחזיר רשימה ריקה.

cheap_dests(dest, max_price)

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

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

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

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