לפניכם המחלקה Train הכוללת מערך קרונות השומר את מספר הנוסעים בקרון ברגע נתון וכן את מספר הנוסעים המקסימלי בקרון. המחלקה כוללת פעולה הבונה רכבת ריקה מנוסעים ושתי פעולות נוספות:
לפניכם המחלקה Train הכוללת מערך קרונות השומר את מספר הנוסעים בקרון ברגע נתון וכן את מספר הנוסעים המקסימלי בקרון. המחלקה כוללת פעולה הבונה רכבת ריקה מנוסעים ושתי פעולות נוספות:
- הפעולה AddToCarr המוסיפה numPass לקרון carrNum (תיקון לשאלון מ-3.7.2022: בנוסח המקורי נכתב «לקרון carrId»).
- הפעולה CarrNumber המקבלת מספר נוסעים ומחזירה את מספר קרון היכול לאכלס את מספר הנוסעים הזה. אם אין מספיק מקום באף קרון הפעולה תחזיר -1.
public class Train {
private int[] carr; // מערך הקרונות
private int maxInCarr; // מספר נוסעים מקסימלי בקרון
public Train (int n, int max){ // פעולה בונה
this.maxInCarr = max;
this.carr = new int[n];
}
public void AddToCarr(int carrNum, int numPass){
this.carr[carrNum -1] = this.carr[carrNum -1] + numPass;
}
public int CarrNumber(int numPass) {. . . . .}
}
סעיף א
נתונה מחלקה Run הבאה:
public class Run {
public static void Main(string[] args){
Train t = new Train(5,20);
int carrNum;
int pass = int.Parse(Console.ReadLine());
while(pass > 0)
{
carrNum = t.CarrNumber(pass);
if(carrNum == -1)
Console.WriteLine("No seats left");
else
{
t.AddToCarr(carrNum, pass);
Console.WriteLine ("Your seats in "+ carrNum);
}
pass = int.Parse(Console.ReadLine());
}//while
}
}
עקבו בעזרת טבלת מעקב אחר הפעולה Main עבור הקלט הבא (משמאל לימין): 10, 2, 12, 4, 15, 3, 15, 4, 8, 2, 10, 3, -99 עליכם לכלול בטבלה עמודה לכל משתנה (כולל עמודה לעצם t), עמודה לתנאי הלולאה (pass>0) ועמודה לפלט.
סעיף ב
ממשו את הפעולה CarrNumber.
public int CarrNumber(int numPass)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.