המשימה
נתונה המחלקה Competitor עם שם וזמן ריצה בשניות.
בנה מחלקה בשם Race שמנהלת את המתחרים במרוץ:
• תכונה פרטית: מערך של מתחרים בגודל קבוע (הגודל מתקבל בבנאי).
• תכונה פרטית: count — כמה מתחרים נרשמו בפועל.
• בנאי שמקבל את הגודל המרבי.
• פעולה add שמקבלת מתחרה ומוסיפה אותו. אם המערך מלא — אין להוסיף,
והפעולה מחזירה false. אחרת מוסיפה ומחזירה true.
• פעולה fastest שמחזירה את המתחרה המהיר ביותר, או null אם אין
מתחרים כלל.
• פעולה average שמחזירה את זמן הריצה הממוצע, או 0 אם אין מתחרים.
הנחיות:
• count אינו אורך המערך. הלולאות חייבות לרוץ עד count ולא עד
arr.length — אחרת יגיעו לתאים ריקים. זו הנקודה המרכזית כאן.
• מהיר ביותר = הזמן הנמוך ביותר.
• אל תשכח לקדם את count אחרי כל הוספה מוצלחת.
• בדוק מקרה של מרוץ ריק לפני שאתה ניגש לאיבר הראשון.
```ds:table
{"title":"המתחרים שבדוגמה","rows":[["שם","זמן"],["Dan","52.4"],["Rita","48.9"],["Omer","61.0"]]}
```
קוד הפתיחה
using System;
class Competitor {
private string name;
private double time;
public Competitor(string name, double time) {
this.name = name;
this.time = time;
}
public string GetName() { return this.name; }
public double GetTime() { return this.time; }
}
class Race {
// תכונות: מערך מתחרים, ומונה כמה נרשמו בפועל
public Race(int maxSize) {
// אתחל את המערך ואת המונה
}
/** מוסיפה מתחרה. false אם המרוץ מלא. */
public bool Add(Competitor c) {
// כתוב את הפתרון כאן
return false;
}
/** המתחרה עם הזמן הנמוך ביותר, או null אם אין מתחרים. */
public Competitor Fastest() {
// כתוב את הפתרון כאן
return null;
}
/** זמן ריצה ממוצע, או 0 אם אין מתחרים. */
public double Average() {
// כתוב את הפתרון כאן
return 0;
}
}
class Program {
static void Main() {
Race r = new Race(3);
Console.WriteLine(r.Fastest() == null); // True
Console.WriteLine(r.Average()); // 0
Console.WriteLine(r.Add(new Competitor("Dan", 52.4))); // True
Console.WriteLine(r.Add(new Competitor("Rita", 48.9))); // True
Console.WriteLine(r.Add(new Competitor("Omer", 61.0))); // True
Console.WriteLine(r.Add(new Competitor("Late", 40.0))); // False — מלא
Competitor f = r.Fastest();
Console.WriteLine(f == null ? "null" : f.GetName()); // Rita
Console.WriteLine(r.Average()); // 54.1
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.