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

המסעדה "Chef4U" מציעה משלוח מנות שף קטנות במחיר מוזל עד לבית הלקוח.

המחלקה Food מייצגת מנה. למחלקה 4 תכונות:

  • שם המנה — name, מטיפוס מחרוזת (string).
  • מחיר המנה — price, מטיפוס מספר ממשי (float).
  • מנה חלבית? — isMilk, מטיפוס בוליאני (boolean) — true = מנה חלבית, false = לא.
  • דירוג המנה — raiting, מטיפוס מספר שלם (int). דירוג המנה הוא מספר שלם מ-1 (הכי נמוך) עד 10 (הכי גבוה). (הניחו שקיימות פעולות get/set עבור תכונות המחלקה.)
סעיף א

לפעמים המסעדה נאלצת להחליף את המנה הנוכחית (self) למנה אחרת (other). אפשר להחליף בין המנות אם שתיהן מאותו סוג (חלבי או לא), יש להן אותו דירוג, ומחיר המנה other אינו גבוה ממחיר המנה self. כתבו פעולה המקבלת מנה אחרת (הפנייה לעצם מטיפוס Food). הפעולה תבדוק אם ניתן להחליף מנה self למנה other. אם כן — הפעולה תחזיר ערך True, ולא — הפעולה תחזיר ערך False.

can_change(self, other)

סעיף ב

כתבו פעולה המקבלת רשימת מנות arr ומנה new_food. הפעולה תדפיס את שמות כל המנות שאפשר להחליף אותן למנה new_food.

changes(arr, new_food)

סעיף ג

המסעדה הכריזה על המבצע: שתי מנות שונות בפחות מ-100 ₪. כתבו פעולה המקבלת רשימת מנות ומדפיסה את כל הצירופים האפשריים של שתי מנות שונות שעולות יחד פחות מ-100 ₪.

offers(arr)

סעיף ד

מהי סיבוכיות הפעולות שכתבתם בסעיפים ב' ו-ג'? הסבירו את תשובתכם.

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

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

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

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