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

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

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

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

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

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

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

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

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

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

שאלה 1

שתי פעולות נפרדות, כל אחת מקבלת הפניה לחוליה ראשונה בשרשרת חוליות של מספרים שלמים ו"מכפילה" את השרשרת, כל אחת בצורה שונה.

סעיף א' (first): לפני — 1→2→3→4→null. אחרי — 1→1→2→2→3→3→4→4→null (כל איבר משוכפל במקומו, השרשרת מוכפלת פי 2 באורכה).

לפני: 1 → 2 → 3 → 4 → null
אחרי: 1 → 1 → 2 → 2 → 3 → 3 → 4 → 4 → null

סעיף ב' (second): לפני — 11→2→30→4→null. אחרי — 11→2→30→4→11→2→30→4→null (כל השרשרת המקורית משוכפלת ומוצמדת בסופה).

לפני: 11 → 2 → 30 → 4 → null
אחרי: 11 → 2 → 30 → 4 → 11 → 2 → 30 → 4 → null
סעיף א

כתבו פעולה המקבלת הפנייה לחוליה ראשונה בשרשרת חוליות של מספרים שלמים ו"מכפילה" את השרשרת בצורה הבאה: אם לפני זימון הפעולה השרשרת הייתה [1,2,3,4], אז אחרי זימון הפעולה היא תהיה [1,1,2,2,3,3,4,4].

public static void first(Node<Integer> chain)

סעיף ב

כתבו פעולה המקבלת הפנייה לחוליה ראשונה בשרשרת חוליות של מספרים שלמים ו"מכפילה" את השרשרת בצורה הבאה: אם לפני זימון הפעולה השרשרת הייתה [11,2,30,4], אז אחרי זימון הפעולה היא תהיה [11,2,30,4,11,2,30,4].

public static void second(Node<Integer> chain)

שאלה 2

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

דוגמה: מחסנית 5,7,10,2,12,6 (ראש..תחתית); ממוצע=7=(5+7+10+2+12+6)/6. אחרי הפעולה: 10,12,7,6,2,5 (ראש..תחתית) — 10,12 (גדולים מ-7) בחלק העליון; 7,6,2,5 (קטנים או שווים ל-7) בחלק התחתון. הסדר בתוך כל חלק אינו משנה (לפי הערת המחוון).

לפני (ראש..תחתית): 5, 7, 10, 2, 12, 6
אחרי (ראש..תחתית): 10, 12, 7, 6, 2, 5
סעיף א

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

public static void reorderByAverage(Stack<Integer> s)

סעיף ב

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

שאלה 3

סעיף א': קטע קוד מופשט 'A x = new B(t, s); h.g(n, d);' שרץ ללא שגיאות — שישה היגדים כלליים לבדוק. סעיף ב' (אין קשר לסעיף א'): מחלקה A עם a1()/a2() (a2 קוראת ל-a1), מחלקה B יורשת מ-A ודורסת את a1 להדפיס "Bye B" — מה מדפיסה a2 על עצם B?

public class A {
    protected void a1() {
        System.out.println("Hello A");
    }
    protected void a2() {
        a1();
    }
}

public class B extends A {
    protected void a1() {
        System.out.println("Bye B");
    }
}
סעיף א

נתון קטע קוד שרץ ללא שגיאות: A x = new B(t, s); h.g(n, d); עבור כל אחד מההיגדים 1-6 ציינו האם הוא נכון או אינו נכון. הסבירו את תשובתכם.

  1. הפעולה g חייבת להיות ציבורית (public).
  2. t הוא בהכרח משתנה מטיפוס פשוט (כמו: int, double וכד').
  3. h הוא בהכרח אובייקט.
  4. d יכול להיות שם של פעולה.
  5. B היא בהכרח מחלקה שיורשת מ-A (גם אם לא ישירות).
  6. ייתכן ש-A היא מחלקה שיורשת מ-B.
סעיף ב

(אין קשר לסעיף א') נתונה המחלקה A הבאה (a1 מדפיסה "Hello A"; a2 קוראת ל-a1). בקובץ נפרד, הגדירו מחלקה נוספת B שיורשת מהמחלקה A. במחלקה B ביצעו דריסה לפעולה a1 והיא מדפיסה "Bye B". מה יקרה אם נפעיל על אובייקט מסוג B את הפעולה a2?

  1. הפלט יהיה: Hello A
  2. הפלט יהיה: Bye B
  3. הפלט יהיה: Hello A / Bye B
  4. הפלט יהיה: Bye B / Hello A

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

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

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

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

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

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