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

מה"ט אלגוריתמיקה ותכנות — אביב 2026 מועד א'

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

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

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

טופס מקורי (מה"ט) ↗

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

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

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

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

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

שאלה 1

"מספר מתחלף" הוא מספר שלם חיובי שבו כל זוג ספרות שכנות (צמודות) הוא בעל זוגיות שונה. כלומר אם ספרה אחת זוגית, הספרה הסמוכה לה תהיה אי-זוגית, ולהפך. מספר חד ספרתי הוא "מספר מתחלף".

לדוגמה:

  • המספר 18345 הוא מספר מתחלף.
  • המספר 2347 הוא מספר מתחלף.
  • המספר 4 הוא מספר מתחלף.
  • המספר 23441 אינו מספר מתחלף.
  • המספר -1234 אינו מספר מתחלף.
סעיף א

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

סעיף ב

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

שאלה 2

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

המחלקה "רכב חברה" (CompanyCar) ולה התכונות:

  • מספר הרישוי (licensePlate) – מחרוזת, String
  • היצרן (manufacturer) – מחרוזת, String
  • שם החברה שהרכב משויך אליה (company) – מחרוזת, String

המחלקה "מגבלת חברה" (CompanyLimit) ולה התכונות:

  • שם החברה (companyName) – מחרוזת, String
  • המגבלה המקסימלית (companyLimit) – מספר שלם, int

בכל מחלקה הוגדרה פעולה בונה המקבלת ערכים לכל התכונות והפעולות get/set ו-toString.

סעיף א
  1. הגדירו מחלקה בשם "חניון חברות" (Parking) הכוללת את התכונות הבאות:

    • מערך של רכבים (cars) – מערך של עצמים מסוג "רכב חברה" בגודל מקסימלי של 150.
    • מערך של מקומות חניה (parkingSpots) – מערך של מחרוזות (String) באותו הגודל, המציין את מקום החניה של הרכב המתאים (לדוגמה: "Q21", "A4", "P10").
    • מספר הרכבים הנוכחי בחניה (currentCars) – מספר שלם, int.
    • מגבלות חניה (limits) – מערך של עצמים מסוג CompanyLimit, המכיל את המכסות לכל חברה.
  2. כתבו במחלקה Parking פעולה בונה, המקבלת מערך limits מאותחל (עם החברות והמגבלות שלהן), ומייצרת חניון ללא רכבים, כלומר מאתחלת את מערכי הרכבים ומקומות החניה בגודל 150 ואת התכונה currentCars ל-0.

סעיף ב

כתבו במחלקה "חניון חברות" פעולה המקבלת מקום בחניה (spot). הפעולה תבדוק אם מקום זה פנוי. אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false. כותרת הפעולה: public boolean checkSpot(String spot)

סעיף ג

כתבו במחלקה "חניון חברות" פעולה המקבלת את פרטי הרכב ואת מקום החניה (spot) ומנסה לחנות אותו:

  • אם החניה spot תפוסה על ידי רכב אחר, הפעולה תדפיס הודעה מתאימה ותחזיר false.
  • אם החברה כבר ניצלה את המכסה שלה, הפעולה תדפיס הודעה מתאימה ותחזיר false.
  • אם המכסה לא נוצלה במלואה, הפעולה תייצר רכב חדש (עצם מסוג CompanyCar) עם הפרטים שקיבלה, תוסיף את הרכב ותחזיר true. כותרת הפעולה: public boolean parkCar(String license, String manufacturer, String company, String spot) אפשר להניח שיש מקומות פנויים בחניון, והרכב (עם מספר רישוי הנתון) כבר לא נמצא בחניון.
שאלה 3

הגדרה: מערך נקרא "מערך ממוין בסדר יורד" אם כל איבר (פרט לאיבר הראשון) קטן מהאיבר הקודם לו או שווה לו.

נתונה הפעולה secret המקבלת מערך מספרים שלמים ממוין בסדר יורד ומספר שלם נוסף.

public static boolean secret(int[] arr, int num)
{
    int i = 0;
    int j = arr.length-1;
    int s;
    while(i < j)
    {
        s = arr[i] + arr[j];
        if(s > num)
        {
            i++;
        }
        else
        {
            if(s < num)
            {
                j--;
            }
            else
            {
                return true;
            }
        }
    }
    return false;
}
סעיף א

נתון המערך int[] arr={20, 16, 9, 4, 2}

  1. עקבו בעזרת טבלת מעקב אחר הזימון secret(arr, 12), ורשמו מה תחזיר הפעולה.
  2. תנו דוגמה לפרמטר num כך שזימון secret(arr, num) יחזיר תוצאה שונה מהתוצאה שהתקבלה בסעיף א.1 שימו לב: אין לשנות את המערך arr!
סעיף ב

מה מבצעת הפעולה secret באופן כללי?

סעיף ג

האם ההנחה שמערך arr ממוין בסדר יורד היא הכרחית לביצוע תקין של הפעולה secret? אם לא – תסבירו למה דרישה זו מיותרת, ואם כן – כתבו פעולה חדשה המבצעת את אותה המשימה עבור כל מערך של מספרים שלמים (גם ממוין וגם לא ממוין).

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

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

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

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

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

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