החנות "חלץ לך חולצה" מוכרת חולצות של מותגים שונים באמצעות האינטרנט. לשם כך הוגדרו המחלקות Shirt ו-Storage.
החנות "חלץ לך חולצה" מוכרת חולצות של מותגים שונים באמצעות האינטרנט. לשם כך הוגדרו המחלקות Shirt ו-Storage.
המחלקה Shirt מייצגת חולצה. למחלקה ארבע התכונות הבאות:
- קוד מתנה – code – מטיפוס מספר שלם, int
- שם מותג – brand – מטיפוס מחרוזת, string
- מחיר – price – מטיפוס ממשי, float
- סוג חולצה (למי מיועדת החולצה) – type – מטיפוס תו, char. התכונה יכולה לקבל אחת משלוש האפשרויות הבאות: 'F' – חולצות לנשים, 'M' – לגברים, 'K' – לילדים.
כתבו פעולה set_type(self, type). הפעולה מעדכנת את התכונה type בהתאם לפרמטר. אם הפרמטר שהפעולה מקבלת אינו תקין, העדכון לא מתבצע.
המחלקה Storage מייצגת את המחסן של החנות. למחלקה שתי התכונות הבאות:
- רשימת חולצות – shirts – רשימה של עצמים מטיפוס Shirt
- רשימת מותגים שהחנות מוכרת – brands – רשימה של מחרוזות
כתבו במחלקה Storage פעולה המקבלת שם מותג וסוג חולצה. הפעולה תחזיר רשימת חולצות של אותו מותג וסוג. כותרת הפעולה:
def shirts_by_brand(self, brand, type)
אם בחנות אין חולצות מתאימות, הפעולה תחזיר רשימה ריקה.
החנות רוצה להכריז על מבצע המיועד למשפחות: כל מי שמזמין שתי חולצות של אותו מותג (אחת לנשים ואחרת לגברים), יכול לקבל חולצה לילד (של אותו המותג) במתנה. כתבו במחלקה Storage פעולה המדפיסה שמות של כל המותגים אשר יוכלו להשתתף במבצע. כותרת הפעולה:
def print_names(self)
מהי סיבוכיות זמן הריצה של הפעולה שכתבת בסעיפים ב' ו-ג'? הסבירו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.