נתונה המחלקה Student הבאה:
נתונה המחלקה Student הבאה:
public class Student
{
private String id; // תעודת זהות
private int[] arrGradesSemesterA; // מערך ציוני סמסטר א'
private int[] arrGradesSemesterB; // מערך ציוני סמסטר ב'
}
המחלקה מתארת את ציוניו של סטודנט בסמסטר א' ובסמסטר ב'. התכונה id מחזיקה את תעודת הזהות של הסטודנט. המערכים arrGradesSemesterA ו-arrGradesSemesterB מחזיקים את ציוני הסטודנט בסמסטר א' ו-ב' בהתאמה, עבור הקורסים בסמסטר א' וסמסטר ב', שני המערכים באותו האורך. אם מקצוע מסוים לא נלמד בסמסטר א' או בסמסטר ב', בתא המתאים במערך מופיע מספר 1-, ולא מופיע ציון הגדול או שווה לאפס. במחלקה הוגדרו פעולות get/set לכל התכונות. סטודנט נחשב "משתפר" אם הוא שיפר את הישגיו בסמסטר השני או לפחות לא חלה ירידה בשום מקצוע בסמסטר השני, כלומר מספיק מקצוע אחד שבו ירדו הישגיו בסמסטר ב' כדי לא להיחשב סטודנט משתפר. אם מקצוע מסוים נלמד רק בסמסטר אחד, אין צורך בבדיקת שיפור במקצוע זה.
כתבו את הפעולה public boolean isImproved(). הפעולה מחזירה true אם סטודנט הוא "סטודנט משתפר" ואם לא, הפעולה מחזירה false. אם אין אף מקצוע שנלמד בשני סמסטרים, הפעולה תחזיר false. לדוגמה: אם נתון מערך ציוני מחצית א' [60,50,80,-1,60,70] (אינדקסים 0-5) ומערך ציוני מחצית ב' [80,90,90,75,-1,70] — הפעולה isImproved תחזיר true, כיוון שעבור כל ציון במחצית א' שיש לו מקביל במחצית ב', הציון המתאים במחצית ב' לא היה נמוך יותר. ואילו אם מערך ציוני מחצית ב' היה [80,90,50,75,-1,70] — הפעולה isImproved תחזיר false, מכיוון שעבור המקצוע במיקום 2 הציון בסמסטר ב' (50) היה נמוך יותר מהציון של סמסטר א' (80).
כתבו פעולה חיצונית אשר מקבלת מערך עצמים מסוג Student. הפעולה תחזיר מערך תעודות הזהות של כל הסטודנטים ה"משתפרים". אם אין אף סטודנט "משתפר", הפעולה תחזיר null.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.