המשימה
המחלקה Hour נתונה לך **מוכנה** — אל תשנה אותה. יש לה שעה, דקות,
ופעולה toMinutes שמחזירה כמה דקות עברו מתחילת היממה.
בנה מחלקה בשם Parking שמייצגת חנייה אחת:
• תכונה פרטית id (מחרוזת — מספר הרכב).
• שתי תכונות פרטיות מטיפוס **Hour**: שעת כניסה ושעת יציאה.
• בנאי שמקבל id ושתי שעות.
• פעולות מאחזרות ל-id ולשעת הכניסה.
• פעולה totalMinutes שמחזירה כמה דקות ארכה החנייה.
ובנוסף, **פעולה חיצונית** (סטטית) שמקבלת מערך חניות ומחזירה את
החנייה הארוכה ביותר.
דוגמה: כניסה 08:30, יציאה 10:00 → 90 דקות.
הנחיות:
• תכונה יכולה להיות עצם, לא רק מספר או מחרוזת. זו הנקודה של התרגיל.
• אל תשכפל את החישוב של Hour בתוך Parking — קרא ל-toMinutes.
אורך החנייה הוא הפרש שתי התוצאות.
• הנח שהיציאה מאוחרת מהכניסה, באותה יממה.
• הפעולה החיצונית מחזירה את **העצם** Parking, לא את מספר הדקות.
```ds:table
{"title":"החניות שבדוגמה","rows":[["רכב","כניסה","יציאה","דקות"],["11-111-11","08:30","10:00","90"],["22-222-22","09:00","09:45","45"],["33-333-33","06:00","12:00","360"]]}
```
קוד הפתיחה
using System;
// ── נתון, אל תשנה ─────────────────────────────────────────────
class Hour {
private int hour;
private int minutes;
public Hour(int hour, int minutes) {
this.hour = hour;
this.minutes = minutes;
}
public int GetHour() { return this.hour; }
public int GetMinutes() { return this.minutes; }
/** כמה דקות עברו מתחילת היממה. */
public int ToMinutes() { return this.hour * 60 + this.minutes; }
}
// ──────────────────────────────────────────────────────────────
class Parking {
// הגדר כאן את התכונות — id, ושתי שעות
public Parking(string id, Hour inHour, Hour outHour) {
// אתחל את התכונות
}
public string GetId() {
return "";
}
public Hour GetIn() {
return null;
}
/** כמה דקות ארכה החנייה. */
public int TotalMinutes() {
// כתוב את הפתרון כאן — היעזר ב-ToMinutes
return 0;
}
}
class Program {
/** מחזירה את החנייה הארוכה ביותר במערך. */
static Parking Longest(Parking[] arr) {
// כתוב את הפתרון כאן
return arr[0]; // מציב זמני
}
static void Main() {
Parking[] lot = {
new Parking("11-111-11", new Hour(8, 30), new Hour(10, 0)),
new Parking("22-222-22", new Hour(9, 0), new Hour(9, 45)),
new Parking("33-333-33", new Hour(6, 0), new Hour(12, 0))
};
Console.WriteLine(lot[0].TotalMinutes()); // 90
Console.WriteLine(lot[1].TotalMinutes()); // 45
Console.WriteLine(Longest(lot).GetId()); // 33-333-33
Hour inHour = Longest(lot).GetIn();
Console.WriteLine(inHour == null ? "null" : "" + inHour.GetHour()); // 6
Parking zero = new Parking("00-000-00", new Hour(7, 0), new Hour(7, 0));
Console.WriteLine(zero.TotalMinutes()); // 0
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.