בנמל אשדוד עומדת מעבורת מטען המיועדת להובלת משאיות לאירופה. המשאיות עולות למעבורת בזו אחר זו ומסתדרות בטור. המשאית שנכנסה ראשונה למעבורת חונה קרוב לפתח היציאה, ולכן תהיה הראשונה לצאת מהאונייה בנמל היעד.
המחלקה Truck מייצגת משאית:
class Truck {
private String plateNumber; // מספר רישוי
private int weight; // משקל המשאית (בטונות)
private int cargoValue; // ערך המטען של המשאית (בשקלים)
}
אפשר להניח שבמחלקה הוגדרו בנאי ופעולות get לכל התכונות.
(א)הגדירו מחלקה בשם Ferry (מעבורת) המתארת את ריכוז המשאיות שעליה. למחלקה שתי תכונות:
- תור של משאיות (`Queue<Truck> trucks`);
- משקל מקסימלי שהמעבורת יכולה לשאת (`maxCapacity`).
כתבו פעולה בונה (המקבלת כפרמטר את המשקל המרבי) ומאתחלת מעבורת ריקה (ללא משאיות).
- תור של משאיות (`Queue<Truck> trucks`);
- משקל מקסימלי שהמעבורת יכולה לשאת (`maxCapacity`).
כתבו פעולה בונה (המקבלת כפרמטר את המשקל המרבי) ומאתחלת מעבורת ריקה (ללא משאיות).
(ב)מטעמי בטיחות וניהול סיכונים בלב ים, המעבורת תיחשב "מעבורת תקנית" אם היא עומדת בשני התנאים הבאים:
1. מגבלת משקל כולל: המשקל המצטבר של כל המשאיות שעל המעבורת אינו עולה על המשקל המקסימלי המותר (maxCapacity).
2. סדר ערך המטען: מטעמי ביטוח, המשאית הראשונה שתצא מהאונייה (זו שנמצאת ראש התור) חייבת להיות בעלת המטען הזול ביותר, והערך עולה ככל שמתקרבים לסוף התור. לכן, ערך המטען (cargoValue) של כל משאית בתור חייב להיות נמוך או שווה לערך המטען של המשאית שנמצאת אחריה.
כתבו פעולה פנימית בתוך המחלקה Ferry הבודקת האם המעבורת היא "מעבורת תקינה" לפי שני התנאים לעיל. שימו לב: בסיום הפעולה מצב התור (סדר וערך האיברים) חייב לחזור לקדמותו.
כותרת הפעולה:
```java
public boolean isValid()
```
1. מגבלת משקל כולל: המשקל המצטבר של כל המשאיות שעל המעבורת אינו עולה על המשקל המקסימלי המותר (maxCapacity).
2. סדר ערך המטען: מטעמי ביטוח, המשאית הראשונה שתצא מהאונייה (זו שנמצאת ראש התור) חייבת להיות בעלת המטען הזול ביותר, והערך עולה ככל שמתקרבים לסוף התור. לכן, ערך המטען (cargoValue) של כל משאית בתור חייב להיות נמוך או שווה לערך המטען של המשאית שנמצאת אחריה.
כתבו פעולה פנימית בתוך המחלקה Ferry הבודקת האם המעבורת היא "מעבורת תקינה" לפי שני התנאים לעיל. שימו לב: בסיום הפעולה מצב התור (סדר וערך האיברים) חייב לחזור לקדמותו.
כותרת הפעולה:
```java
public boolean isValid()
```
(ג)כתבו פעולה המקבלת משאית (אובייקט מסוג Truck). על הפעולה לנסות להוסיף את המשאית לסוף התור של המעבורת. ההוספה תתבצע רק אם המעבורת תישאר "מעבורת תקינה" לאחר ההוספה.
- אם ההוספה בוצעה - הפעולה מוסיפה את המשאית ומחזירה true.
- אם הוספת המשאית תהפוך את המעבורת ל"לא תקינה" - אין להוסיף את המשאית והפעולה תחזיר false.
כותרת הפעולה:
```java
public boolean addTruck(Truck t)
```
- אם ההוספה בוצעה - הפעולה מוסיפה את המשאית ומחזירה true.
- אם הוספת המשאית תהפוך את המעבורת ל"לא תקינה" - אין להוסיף את המשאית והפעולה תחזיר false.
כותרת הפעולה:
```java
public boolean addTruck(Truck t)
```
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות
שאלו כאן — ותקבלו מענה מוסמך.
רוצים לתרגל אלפי שאלות נוספות?
המשיכו לתרגול מלא עם משוב אישי ←מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות