אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — יסודות (שאלון 899371)מבחן 2023 · קיץ מועד א · שאלה 5כל שאלות המבחן ←
תכנות מונחה עצמים›מחלקות ואובייקטים

המחלקה MyTime מייצגת זמן, ולה שתי תכונות:

  • myMinute – מספר שלם חיובי בין 0 ל-59 (כולל), המייצג דקה
  • myHour – מספר שלם חיובי בין 7 ל-23 (כולל), המייצג שעה

הניחו שקיימות פעולות get ו-set עבור תכונות המחלקה, ופעולה בונה המקבלת ערכים עבור תכונות המחלקה.

לפניכם ממשק המחלקה (אפשר להשתמש בפעולות המחלקה בלי לממש אותן):

  • before(MyTime other): מחזירה true אם זמן העצם הנוכחי מוקדם מזמן העצם other, אחרת (הזמן שווה לו או מאוחר ממנו) מחזירה false.
  • diff(MyTime other): מחזירה את ההפרש בדקות בערך מוחלט בין זמן העצם הנוכחי ובין זמן העצם other.

המחלקה Parking מציגה מידע על מכונית שחנתה בחניון, ולה שלוש תכונות:

  • id – מספר לוחית רישוי של המכונית, מטיפוס מחרוזת
  • in – זמן כניסת המכונית לחניון, מטיפוס MyTime
  • out – זמן יציאת המכונית מן החניון, מטיפוס MyTime

הניחו שקיימות פעולות get ו-set עבור תכונות המחלקה, ושתכונות המחלקה אינן null.

נתון מערך חד-ממדי cars מטיפוס Parking המכיל מידע על כל המכוניות שחנו בחניון ביממה מסוימת (החניון נפתח ב-07:00 ונסגר ב-23:59). המערך אינו ממוין ואינו מכיל ערכי null.

סעיף א

כתבו פעולה חיצונית ששמה first המקבלת את המערך cars, ומדפיסה את מספר לוחית הרישוי של המכונית שנכנסה ראשונה לחניון. הניחו שאין שתי מכוניות שנכנסו לחניון בדיוק באותו הזמן.

public static void first (Parking[] cars)

סעיף ב(1)

המחיר בחניון נקבע על פי משך החניה. בשעתיים הראשונות (120 דקות) החניה חינם והחל מהדקה ה-121 התעריף הוא שקל אחד לכל דקת חניה. כתבו פעולה פנימית במחלקה Parking ששמה total המחזירה את סך כל מספר הדקות שהמכונית חנתה בחניון.

public int total ()

סעיף ב(2)

כתבו פעולה חיצונית ששמה sumMoney המקבלת את המערך cars, ומחזירה את הסכום הכולל ששילמו כל בעלי המכוניות. אפשר להשתמש בפעולה שכתבתם בסעיף ב(1).

public static int sumMoney (Parking[] cars)

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

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

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

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