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

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

המחלקה Truck מייצגת משאית:

class Truck {
    private string plateNumber; // מספר רישוי
    private int weight; // משקל המשאית (בטונות)
    private int cargoValue; // ערך המטען של המשאית (בשקלים)
}

אפשר להניח שבמחלקה הוגדרו בנאי ופעולות Get לכל התכונות.

סעיף א

הגדירו מחלקה בשם Ferry (מעבורת) המתארת את ריכוז המשאיות שעליה. למחלקה שתי תכונות:

  • תור של משאיות (Queue<Truck> trucks);
  • משקל מקסימלי שהמעבורת יכולה לשאת (maxCapacity). כתבו פעולה בונה (המקבלת כפרמטר את המשקל המרבי) ומאתחלת מעבורת ריקה (ללא משאיות).
סעיף ב

מטעמי בטיחות וניהול סיכונים בלב ים, המעבורת תיחשב "מעבורת תקנית" אם היא עומדת בשני התנאים הבאים:

  1. מגבלת משקל כולל: המשקל המצטבר של כל המשאיות שעל המעבורת אינו עולה על המשקל המקסימלי המותר (maxCapacity).
  2. סדר ערך המטען: מטעמי ביטוח, המשאית הראשונה שתצא מהאונייה (זו שנמצאת ראש התור) חייבת להיות בעלת המטען הזול ביותר, והערך עולה ככל שמתקרבים לסוף התור. לכן, ערך המטען (cargoValue) של כל משאית בתור חייב להיות נמוך או שווה לערך המטען של המשאית שנמצאת אחריה. כתבו פעולה פנימית בתוך המחלקה Ferry הבודקת האם המעבורת היא "מעבורת תקינה" לפי שני התנאים לעיל. שימו לב: בסיום הפעולה מצב התור (סדר וערך האיברים) חייב לחזור לקדמותו. כותרת הפעולה:
public bool IsValid()
סעיף ג

כתבו פעולה המקבלת משאית (אובייקט מסוג Truck). על הפעולה לנסות להוסיף את המשאית לסוף התור של המעבורת. ההוספה תתבצע רק אם המעבורת תישאר "מעבורת תקינה" לאחר ההוספה.

  • אם ההוספה בוצעה - הפעולה מוסיפה את המשאית ומחזירה true.
  • אם הוספת המשאית תהפוך את המעבורת ל"לא תקינה" - אין להוסיף את המשאית והפעולה תחזיר false. כותרת הפעולה:
public bool AddTruck(Truck t)
שאלות ותגובות על השאלה

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

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

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