divicidivici·איזיפס·פשוט להצליח

מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנה — קיץ 2022 מועד ב' (97105)

תאריך הבחינה: לא ידוע

טופס המבחן המלא להורדה — ומפתח התשובות עם פתרון מפורט לכל שאלה, אונליין. פתחו שאלה למטה: בשאלה סגורה בוחרים תשובה, בשאלה פתוחה נפתח הפתרון המלא (כניסה מהירה וחינם).

פתרו את המבחן אונליין — בשפה שלכם:JavaC#

למגמת הנדסת תוכנה — מבנה נתונים ותכנות מונחה עצמים. נבחנים ב-Java או ב-C#, ובוחרים שפה בכניסה למבחן.

✓ פתרון מלא לכל שאלה · ✓ הסברים מלאים וחומרי לימוד · ✓ ליווי מורה AI · ✓ התחלה חינם

פתרון מפורט לכל שאלה — לא רק התשובה: הסבר שלב-אחר-שלב וניתוח הטעויות הנפוצות.

שאלות לדוגמה מהמבחן — פתרו עכשיו

בשאלה סגורה בוחרים תשובה; בשאלה פתוחה פותחים את הפתרון המלא (כניסה מהירה וחינם). אלו 3 מתוך 11 שאלות המבחן — את כולן תוכלו לפתור אונליין.

שאלה 1

מחסנית "שוות סכומים" היא מחסנית של מספרים שלמים המכילה מספר אי-זוגי של איברים, כך שכל שני איברים קיצוניים (ראשון+אחרון, שני+לפני אחרון וכו') שווים בסכומם לאיבר האמצעי של המחסנית. לדוגמה, המחסנית (מהראש לסוף, כלומר לפי סדר ה-pop): 7,22,10,12,21,25,4,13,15,3,18 — האיבר האמצעי הוא 25, וכל זוג קיצוני שווה 25.

המחסנית לדוגמה (סדר לפי pop, מהראש לסוף המחסנית): 18,3,15,13,4,25,21,12,10,22,7 — כלומר ה-pop הראשון מחזיר 18 (ה"ראשון") וה-pop האחרון מחזיר 7 (ה"אחרון"); באיור עצמו הסדר המצויר הוא 7,22,10,12,21,25,4,13,15,3,18 (מראש המחסנית לסופה). אומת מול תמונת עמוד 2 (150dpi+300dpi).

ראש (pop ראשון) → 18,3,15,13,4,[25],21,12,10,22,7 ← סוף (pop אחרון)
סעיף א

כתבו פעולה בשם equalSums המקבלת מחסנית של מספרים שלמים. הפעולה מחזירה true אם המחסנית היא מחסנית "שווה סכומים", ואם היא אינה "שוות סכומים", הפעולה תחזיר false. כותרת הפעולה (לפי החתימה המרומזת בשאלון): public static boolean equalSums(Stack<Integer> st)

סעיף ב

מהי הסיבוכיות של הפעולה שכתבתם בסעיף א'? הסבירו את תשובתכם.

שאלה 2

נגדיר "רשימת מקטעים": שרשרת חוליות של מספרים שלמים ריקה, או כשרשרת חוליות שבה כל אחת מהחוליות מכילה ערך קטן או שווה למספר החוליות העוקבות לה (הנמצאות אחריה בשרשרת). לדוגמה, בשרשרת 2→3→2→1→(-4)→1→0: ערך האיבר הראשון (2) קטן ממספר האיברים שאחריו (6); ערך האיבר החמישי (-4) קטן ממספר האיברים שאחריו (2).

השרשרת לדוגמה ("רשימת מקטעים") — 7 חוליות. אומתה מול תמונת עמוד 2.

2 → 3 → 2 → 1 → -4 → 1 → 0 → null
סעיף א

כתבו פעולה חיצונית בשם numNodesFollowing המקבלת הפנייה לחוליה בשרשרת כלשהי ומחזירה את מספר החוליות העוקבות לה. כותרת הפעולה: public static int numNodesFollowing(Node<Integer> node)

סעיף ב

כתבו פעולה חיצונית בשם isSection המקבלת הפניה לשרשרת חוליות מטיפוס שלם. הפעולה מחזירה true אם השרשרת היא "רשימת מקטעים", ואם לא, הפעולה תחזיר false. כותרת הפעולה: public static boolean isSection(Node<Integer> head)

שאלה 3

ארבע מחלקות A,B,C ומחלקת בדיקה TestABC עם main. השאלה מודפסת ללא סעיפים נפרדים (סעיף יחיד, 15 נק') — יש לעקוב אחרי כל הפעולה הראשית ולרשום את הפלט המלא, כולל ערכי התכונות של כל עצם.

public class A {
    protected int x;
    public A() { this.x = 1; }
    public A(int x) { this.x = x; }
    public void change() { this.x = this.x * 2; }
    public String toString() { return "X=" + this.x; }
}

public class B extends A {
    protected int y;
    public B(int y) { this.y = -y; }
    public B(int x, int y) { super(x); this.y = -y; }
    public String toString() { return super.toString() + " Y=" + this.y; }
}

public class C extends B {
    private int z;
    public C(int x, int y, int z) { super(x, y); this.z = z; }
    public void change() {
        this.x = 3 * this.x;
        this.y = 3 * this.y;
        this.z = 3 * this.z;
    }
    public String toString() { return super.toString() + " Z=" + this.z; }
}

public class TestABC {
    public static void main(String[] args) {
        A[] data = new A[5];
        data[0] = new A(5);
        data[1] = new B(5,10);
        data[2] = new C(5,10,15);
        data[3] = data[0];
        data[4] = new B(5);

        for (int i = 0; i < data.length; i++)
            System.out.println(data[i]);

        for (int i = 0; i < data.length; i++)
            data[i].change();
        for (int i = 0; i < data.length; i++)
            System.out.println(data[i]);
    }
}
סעיף א

עקבו אחרי ביצוע הפעולה הראשית (main) של המחלקה TestABC ורשמו מה יהיה הפלט של הפעולה הראשית. חובה להציג עבור כל עצם שנוצר בפעולה את ערכי התכונות שלו.

הנושאים הרשמיים בבחינה 97105

לפי תוכנית הלימודים הרשמית של מה"ט (מבנה נתונים ותכנות מונחה עצמים) — אלו הנושאים שהבחינה נשענת עליהם:

המקור: תוכנית הלימודים הרשמית של מה"ט (משרד העבודה).

פתרו את המבחן המלא — עם משוב על כל תשובה

כל שאלות המבחן, פתרון מפורט, משוב אישי ומעקב התקדמות. בדיוק מה שצריך כדי לעבור.

התחילו לתרגל — חינם ←