אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — יסודות (שאלון 899371)מבחן 2015 · קיץ מועד א · שאלה 20כל שאלות המבחן ←
תכנות בסיסימערכים דו-ממדיים

נתונה מחלקה 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()

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי