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

החנות "Gift4U" מוכרת מתנות דרך אינטרנט. לשם כך הוגדרה המחלקה Gift המייצגת מתנה. למחלקה שלוש תכונות: code - קוד מתנה, מטיפוס מספר שלם int; price - מחיר מתנה, מטיפוס ממשי double; type - למי מיועדת המתנה, מטיפוס תו char. התכונה יכולה לקבל אחת מארבע אפשרויות: 'M' - לגברים, 'F' - לנשים, 'U' - גם לגברים וגם לנשים, 'K' - לילדים. במחלקה הוגדרו פעולה בונה ופעולות get לכל תכונה.

סעיף א

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

public void SetType(char type)

סעיף ב

כתבו פעולה isForMan() בוליאנית. הפעולה מחזירה true אם המתנה מתאימה לגברים, אחרת הפעולה תחזיר false.

public bool IsForMan()

סעיף ג

כתבו פעולה חיצונית המקבלת מערך מתנות (עצמים מטיפוס Gift) arr, וסכום כסף sum. הפעולה תבדוק אם יש שלוש מתנות שונות המתאימות לגברים שהסכום שלהן שווה ל-sum. אם כן — הפעולה תדפיס את הקודים של שלוש המתנות, אם לא — הפעולה תדפיס הודעה מתאימה. הערה: אם קיימות כמה אפשרויות לבחירת שלוש מתנות, יש להדפיס את כולן.

public static void ThreeGifts(Gift[] arr, double sum)

סעיף ד

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

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

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

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

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