לפניכם המחלקה Train הכוללת מערך קרונות השומר את מספר הנוסעים בקרון ברגע נתון וכן את מספר הנוסעים המקסימלי בקרון. המחלקה כוללת פעולה הבונה רכבת ריקה מנוסעים ושתי פעולות נוספות:
לפניכם המחלקה Train הכוללת מערך קרונות השומר את מספר הנוסעים בקרון ברגע נתון וכן את מספר הנוסעים המקסימלי בקרון. המחלקה כוללת פעולה הבונה רכבת ריקה מנוסעים ושתי פעולות נוספות:
- הפעולה addToCarr המוסיפה numPass לקרון carrNum. [כתוב במקור "לקרון carrId" — תוקן רשמית ל-carrNum ב-3.7.2022, ראו official_erratum_he; שם הפרמטר בקוד עצמו תמיד היה carrNum.]
- הפעולה 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){
Scanner in = new Scanner((System.in));
Train t = new Train(5,20);
int carrNum;
int pass = in.nextInt();
while(pass > 0)
{
carrNum = t.carrNumber(pass);
if(carrNum == -1)
System.out.println("No seats left");
else
{
t.addToCarr(carrNum, pass);
System.out.println ("Your seats in "+ carrNum);
}
pass = in.nextInt();
}//while
}
}
עקבו בעזרת טבלת מעקב אחר הפעולה main עבור הקלט הבא (משמאל לימין): 10, 2, 12, 4, 15, 3, 15, 4, 8, 2, 10, 3, -99 עליכם לכלול בטבלה עמודה לכל משתנה (כולל עמודה לעצם t), עמודה לתנאי הלולאה (pass>0) ועמודה לפלט.
סעיף ב
ממשו את הפעולה carrNumber.
public int carrNumber(int numPass)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.