נתונה מחלקה Stam שיש לה תכונה אחת: matrix — מערך דו-ממדי מטיפוס שלם, שגדלו נקבע ביצירתו. בנייתה, הפעולות שהוגדרו הן:
נתונה מחלקה 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 עצמו).
(ב-C#: bool IsDistinct(), int RowNum(int num), int ColNum(int num), int Min().)
דיאגרמת עצם נקייה (וקטורית, InDesign): תיבת 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 או ב-C# פעולה במחלקה Stam, שתקבל: מספר שלם k המציין שורה במערך, מספר שלם j המציין עמודה במערך. הפעולה תחזיר true אם תת-המערך-המספרי של האיבר k,j הוא תת-מערך-מספרי-זוגי, אחרת תחזיר false.
public bool IsEvenSubArray(int k, int j)
כתוב פעולה ראשית במחלקה Program, ב-Java וב-C#, אשר תקלוט שני מספרים שלמים ותיצור עצם מסוג Stam, שהמספר הראשון שנקלט הוא מספר השורות שבמערך שלו והמספר השני הוא מספר העמודות שבו. הפעולה תבדוק אם התת-מערך-המספרי של האיבר שהוא המספר הקטן ביותר במערך הוא תת-מערך-מספרי זוגי. אם כן — תדפיס הודעה מתאימה, אם לא — תדפיס הודעה מתאימה אחרת.
public static void Main()
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.