נתונה מחלקה Stam שיש לה תכונה אחת: matrix — מערך דו-ממדי מטיפוס שלם, שגדלו נקבע ביצירתו. בנייתה, הפעולות שהוגדרו הן:
| כותרת הפעולה | תיאור |
|---|---|
public Stam(int row, int col) | הבונה עצם Stam עם matrix, וקולטת מספרים שלמים וגדולים או שווים ל-0 למלא במערך matrix בגודל row×col. |
public boolean isDistinct() | מחזירה true אם כל איברי המערך matrix שונים זה מזה, אחרת — false. |
public int rowNum(int num) | מקבלת מספר num שנמצא במערך, ומחזירה את השורה שהעמודה בה נמצא המופע הראשון של המספר. |
public int colNum(int num) | מקבלת מספר num שנמצא במערך, ומחזירה את העמודה שבה נמצא המופע הראשון של המספר. |
public int min() | מחזירה את המספר הקטן ביותר במערך matrix. |
לפניך תיאור ההוראה: Stam s = new Stam(4,5) יוצר עצם עם matrix דו-ממדי בגודל 4×5, ותקלוט ערכים למערך:
0 1 2 3 4
2 7 12 3 17
27 22 4 0 1
9 2 8 13 9
1 5 2 20 10
תת-מערך-מספרי של איבר k,j של מערך, הנמצא במטריצה matrix, הוא מערך דו-ממדי שגודלו כגודל מערך matrix, שהאיבר k,j שלו הוא הפינה השמאלית העליונה שלו, והפינה הימנית התחתונה שלו היא הפינה הימנית התחתונה של המערך (כלומר: משתרע מהשורה k ומהעמודה j עד סוף המערך). לדוגמה, במערך שבעצם s, של האיבר 1,1 מסומן באפור (שורות 1-3, עמודות 1-4).
תת-מערך-מספרי זוגי של איבר k,j הוא תת-מערך-מספרי, שכל איבריו זוגיים (כולל האיבר k,j עצמו).
תרשים העצם s: המשתנה s מפנה לעצם מסוג Stam, שהתכונה matrix שלו מפנה למערך בגודל 4×5:
s -> Stam -> matrix -> [4x5 grid: 2 7 12 3 17 / 27 22 4 0 1 / 9 2 8 13 9 / 1 5 2 20 10]
כתוב ב-Java פעולה במחלקה Stam, שתקבל: מספר שלם k המציין שורה במערך, מספר שלם j המציין עמודה במערך. הפעולה תחזיר true אם תת-המערך-המספרי של האיבר k,j הוא תת-מערך-מספרי-זוגי, אחרת תחזיר false.
public boolean isEvenSubArray(int k, int j)
כתוב פעולה ראשית במחלקה Program, אשר תקלוט שני מספרים שלמים ותיצור עצם מסוג Stam, שהמספר הראשון שנקלט הוא מספר השורות שבמערך שלו והמספר השני הוא מספר העמודות שבו. הפעולה תבדוק אם התת-מערך-המספרי של האיבר שהוא המספר הקטן ביותר במערך הוא תת-מערך-מספרי זוגי. אם כן — תדפיס הודעה מתאימה, אם לא — תדפיס הודעה מתאימה אחרת.
public static void main(String[] args)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.