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

החנות "חלץ לך חולצה" מוכרת חולצות של מותגים שונים באמצעות האינטרנט. לשם כך הוגדרו מחלקות Shirt ו-Storage.

המחלקה Shirt מייצגת חולצה. למחלקה ארבע התכונות הבאות:

  • קוד מתנה – code – מטיפוס מספר שלם, int
  • שם מותג – brand – מטיפוס מחרוזת, String
  • מחיר – price – מטיפוס ממשי, double
  • סוג חולצה (למי מיועדת החולצה) – type – מטיפוס תו, char

התכונה יכולה לקבל אחת משלוש אפשרויות: 'F' – חולצות לנשים, 'M' – לגברים, 'K' – לילדים. במחלקה הוגדרו פעולה בונה ופעולות get לכל תכונה.

סעיף א

כתבו פעולה void setType(char type). הפעולה מעדכנת את התכונה type בהתאם לפרמטר. אם הפרמטר שהפעולה מקבלת אינו תקין, העדכון לא מתבצע.

סעיף ב

המחלקה Storage מייצגת מחסן של חנות. למחלקה שתי התכונות הבאות:

  • מערך חולצות – shirts – מערך עצמים מסוג Shirt
  • מערך מותגים שהחנות מוכרת – brands – מערך של מחרוזות

כתבו במחלקה Storage פעולה המקבלת שם מותג וסוג חולצה. הפעולה תחזיר מערך חולצות של אותו מותג וסוג. כותרת הפעולה: public Shirt[] shirtsByBrand(String brand, char type) אם בחנות אין חולצות מתאימות, הפעולה תחזיר ערך null.

סעיף ג

החנות רוצה להכריז על מבצע המיועד למשפחות: כל מי שמזמין שתי חולצות של אותו מותג (אחת לנשים ואחרת לגברים), יכול לקבל חולצה לילד (של אותו המותג) במתנה. כתבו במחלקה Storage פעולה המדפיסה שמות של כל המותגים אשר יוכלו להשתתף במבצע. כותרת הפעולה: public void print()

סעיף ד

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

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

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

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

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