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

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

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

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

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

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

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

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

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

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

שאלה 1

הגדרה: סדרת מספרים נקראת "עולה – יורדת" אם עד מספר מסוים המספרים הולכים וגדלים וממספר זה ואילך, הם הולכים וקטנים.

לדוגמה, הסדרה שלפניכם היא סדרה "עולה – יורדת": 4, 9, 13, 20, 45, 33, 18, 1

סעיף א

כתבו פעולה המקבלת מחסנית של מספרים שלמים. הפעולה תבדוק אם הערכים שבמחסנית מהווים סדרה "עולה – יורדת". אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false. יש לשמור על שלמות המחסנית בסוף הפעולה. כותרת הפעולה:

public static boolean isUpDown(Stack<Integer> st)
סעיף ב

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

שאלה 2
סעיף א

כתבו פעולה המקבלת הפניה לחוליה הראשונה בשרשרת חוליות של מספרים שלמים ומספר שלם חיובי pos. הפעולה תחזיר איבר שנמצא במקום pos בשרשרת. אם אין מקום pos בשרשרת, הפעולה תחזיר ערך (-1). יש להניח כי המיקום נספר החל מ-1, כאשר pos = 1 מתייחס לחוליה הראשונה.

public static int valueAt(Node<Integer> ch, int pos)
סעיף ב

כתבו פעולה המקבלת שתי הפניות לחוליות הראשונות של שתי שרשראות של מספרים שלמים ch1 ו – ch2. הפעולה תיצור שרשרת חדשה לפי הכלל הבא:

  • ראשית מכניסים את האיבר הראשון מהשרשרת ch1, ואחריו – את האיבר האחרון מהשרשרת ch2;
  • מכניסים את האיבר השני מהשרשרת ch1, ואחריו את האיבר שלפני האחרון מהשרשרת ch2;
  • וכך הלאה.

הפעולה תחזיר הפניה לחוליה הראשונה של השרשרת החדשה. אפשר להניח שאורכן של שתי השרשראות שווה. כותרת הפעולה:

public static Node<Integer> merge (Node<Integer>ch1, Node<Integer>ch2)
סעיף ג

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

שאלה 3

בפרויקט פיתוח רכב אוטונומי הוגדרו שלושה ממשקים ושתי מחלקות:

public interface Steering {
    void turnLeft();
    void turnRight(int degrees);
}
public interface Navigation{ void setDestination(String dest); }
public interface Sensing { void activateLidar(); }
public class AutonomousCar implements Steering, Navigation, Sensing {
    private String modelName;
    private double batteryLevel;
    // ...
}
public class TestDrive {
    public static void main(String[] args) {
        AutonomousCar car1 = new AutonomousCar("Tesla Y", 98.5);
        AutonomousCar car2 = new AutonomousCar("Waymo One");
        // ( *****)
    }
}
סעיף א

השלימו את המחלקה AutonomousCar: כתבו כותרות לפעולות החסרות בה, כולל כל הפעולות הבונות (constructors) הנדרשות כדי שהקוד בפעולה main יהיה תקין, וכן את כל הפעולות הנדרשות למימוש הממשקים. אין צורך לממש את גוף הפעולות.

סעיף ב

בכל אחד מסעיפים הבאים השורה (*****) תוחלף בשורת קוד משורות הקוד 1–6 מהטבלה הבאה. עבור כל אחד מהסעיפים, כתבו אם הקוד תקין או לא. אם הקוד אינו תקין – יש להסביר למה הוא אינו תקין, יש לציין את סוג השגיאה (קומפילציה או זמן ריצה). שימו לב: אין קשר בין סעיפים.

  1. Steering s1 = car1; s1.turnRight(45);

  2. Navigation n2 = new Navigation(); n2.setDestination("Tel Aviv");

  3. Navigation n3 = new AutonomousCar("Audi A8", 60.0); Steering s3 = (AutonomousCar)n3;

  4. Navigation n4 = new AutonomousCar("Mercedes"); n4.activateLidar();

  5. Steering s5 = new AutonomousCar("Ford"); Sensing sn5 = (Sensing) s5 ; sn5.activateLidar();

  6. Sensing sn6 = new AutonomousCar("Nissan", 70.0); ((AutonomousCar) sn6).turnLeft(); ((Navigation) sn6).setDestination("Haifa");

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

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

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

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

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

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