טוען...
טוען...
נתונה המחלקה TourPackage – חבילת סלולר לטסים לחו"ל, ולה חמש תכונות:
id – מספר זיהוי של לקוח, מטיפוס שלםprice – מחיר החבילה, מטיפוס שלםmaxTime – מספר דקות השיחה הכלול בחבילה, מטיפוס שלםmaxData – נפח הנתונים (ב־ Giga) לגלישה באינטרנט הכלול בחבילה, מטיפוס שלםextra – הסכום לתשלום על חריגה ממספר הדקות ומנפח הנתונים הכלולים בחבילה הבסיסית, מטיפוס שלםתעריפי החריגה הם שקל אחד בעבור כל דקת שיחה נוספת, ו־ 2 שקלים בעבור כל Giga נוסף בנפח הגלישה.
הניחו שקיימות פעולות get לתכונות המחלקה.
(1) כתבו פעולה בונה במחלקה TourPackage, המקבלת את מספר הזיהוי של לקוח – id, את מחיר החבילה – price, את מספר דקות השיחה הכלול בחבילה – maxTime, ואת נפח הנתונים – maxData.
הפעולה מאתחלת את תכונות המחלקה. התכונה extra מאותחלת ל־0.
(2) כתבו פעולה פנימית במחלקה TourPackage ששמה setExtra, המקבלת את מספר דקות השיחה שבהן השתמש הלקוח בפועל בחו"ל – minutes (מטיפוס שלם), ואת נפח הגלישה שבו השתמש הלקוח בפועל בחו"ל – usage (מטיפוס שלם).
הפעולה קובעת ערך לתכונה extra בהתאם לחריגה מן החבילה הבסיסית (ככל שיש) ולתעריפי החריגה.
הערה
extraהיא 0 לפני הפעולה.
נתון מערך מלא – packages מטיפוס TourPackage, שבו נתונים על לקוחות שונים (לאחר שכבר חושב ועודכן הסכום לתשלום עבור חריגה מן החבילה הבסיסית בתכונה extra).
(1) כתבו פעולה חיצונית ששמה calculate המקבלת את המערך packages ומחזירה את כמות הלקוחות שצריכים לשלם תוספת על חריגה מן החבילה הבסיסית.
(2) כתבו פעולה חיצונית ששמה customers, המקבלת את המערך packages.
הפעולה מחזירה מערך מטיפוס שלם שבו מספרי הזיהוי של הלקוחות (id) שצריכים לשלם תוספת על חריגה מן החבילה הבסיסית (גודל המערך הוא לפי כמות האנשים שחרגו). אין חשיבות לסדר ההופעה במערך.
⚠ הערה — אילוץ מחייב
חובה להיעזר בפעולה שכתבתם בסעיף ב(1).
נתונה המחלקה TourPackage – חבילת סלולר לטסים לחו"ל, ולה חמש תכונות:
id – מספר זיהוי של לקוח, מטיפוס שלםprice – מחיר החבילה, מטיפוס שלםmaxTime – מספר דקות השיחה הכלול בחבילה, מטיפוס שלםmaxData – נפח הנתונים (ב־ Giga) לגלישה באינטרנט הכלול בחבילה, מטיפוס שלםextra – הסכום לתשלום על חריגה ממספר הדקות ומנפח הנתונים הכלולים בחבילה הבסיסית, מטיפוס שלםתעריפי החריגה הם שקל אחד בעבור כל דקת שיחה נוספת, ו־ 2 שקלים בעבור כל Giga נוסף בנפח הגלישה.
הניחו שקיימות פעולות get לתכונות המחלקה.
(1) כתבו פעולה בונה במחלקה TourPackage, המקבלת את מספר הזיהוי של לקוח – id, את מחיר החבילה – price, את מספר דקות השיחה הכלול בחבילה – maxTime, ואת נפח הנתונים – maxData.
הפעולה מאתחלת את תכונות המחלקה. התכונה extra מאותחלת ל־0.
(2) כתבו פעולה פנימית במחלקה TourPackage ששמה setExtra, המקבלת את מספר דקות השיחה שבהן השתמש הלקוח בפועל בחו"ל – minutes (מטיפוס שלם), ואת נפח הגלישה שבו השתמש הלקוח בפועל בחו"ל – usage (מטיפוס שלם).
הפעולה קובעת ערך לתכונה extra בהתאם לחריגה מן החבילה הבסיסית (ככל שיש) ולתעריפי החריגה.
הערה
extraהיא 0 לפני הפעולה.
נתון מערך מלא – packages מטיפוס TourPackage, שבו נתונים על לקוחות שונים (לאחר שכבר חושב ועודכן הסכום לתשלום עבור חריגה מן החבילה הבסיסית בתכונה extra).
(1) כתבו פעולה חיצונית ששמה calculate המקבלת את המערך packages ומחזירה את כמות הלקוחות שצריכים לשלם תוספת על חריגה מן החבילה הבסיסית.
(2) כתבו פעולה חיצונית ששמה customers, המקבלת את המערך packages.
הפעולה מחזירה מערך מטיפוס שלם שבו מספרי הזיהוי של הלקוחות (id) שצריכים לשלם תוספת על חריגה מן החבילה הבסיסית (גודל המערך הוא לפי כמות האנשים שחרגו). אין חשיבות לסדר ההופעה במערך.
⚠ הערה — אילוץ מחייב
חובה להיעזר בפעולה שכתבתם בסעיף ב(1).