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

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

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

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

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

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

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

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

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

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

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

שאלה 1

נתונות פעולות רקורסיביות mystery ו-secret:

public static int mystery(String s1, String s2)
{
    if (s1.length() == 0 && s2.length() == 0) return 0;
    if (s1.length() == 0) return -1;
    if (s2.length() == 0) return 1;
    if (s1.charAt(0) < s2.charAt(0)) return -1;
    if (s1.charAt(0) > s2.charAt(0)) return 1;
    return mystery(s1.substring(1), s2.substring(1));
}

public static String[] secret(String[] arr, String s)
{
    String[] temp = new String[arr.length];
    secretHelp(arr, temp, s, 0, 0, temp.length - 1);
    return temp;
}

private static void secretHelp(String[] arr, String[] temp, String s, int i, int left, int right)
{
    if (i < arr.length)
    {
        if (mystery(arr[i], s) < 0)
        {
            temp[left] = arr[i];
            secretHelp(arr, temp, s, i + 1, left + 1, right);
        }
        else
        {
            temp[right] = arr[i];
            secretHelp(arr, temp, s, i + 1, left, right - 1);
        }
    }
}
סעיף א

עקבו אחרי זימון mystery("HELLO","HELP") ורשמו את תוצאת הזימון. יש להראות מעקב!

סעיף ב

מה מבצעת הפעולה mystery(s1, s2) עבור שתי מחרוזות s1,s2?

סעיף ג

נתון מערך מחרוזות: String[] arr = {"HELLO", "WORLD", "GOOD", "DAY","FOR","TEST"} עקבו אחרי הזימון secret(arr, "JAVA") ורשמו את תוצאות הזימון. יש להראות מעקב אחרי הפעולה secret, אין צורך במעקב אחרי הפעולה mystery.

סעיף ד

מה מבצעת הפעולה secret(arr, s) עבור מערך מחרוזות arr ומחרוזת s?

שאלה 2

נתונות ההגדרות: מערך דו-ממדי של מספרים שלמים נקרא "מערך מסודר" אם הוא עונה על שלושת התנאים האלה:

  • מספר השורות במערך שווה למספר העמודות (מערך ריבועי).
  • כל האיברים במערך הם מספרים חיוביים.
  • כל איבר בעמודה 0 כולל את הספרה 0, כל איבר בעמודה 1 כולל את הספרה 1 וכן הלאה. לדוגמה, המערך שלפניכם הוא "מערך מסודר":
שורה\עמודה0123
010312122031
16051134213
2701521305
31003601200203
סעיף א

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

סעיף ב

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

שאלה 3

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

אינדקס012345678
ערך5341133127

כי 13=3+1+2+7=5+3+4+1

סעיף א

כתבו פעולה המקבלת מערך של מספרים שלמים חיוביים arr. אם המערך יפה – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false. כותרת הפעולה: public static boolean isNice(int[] arr)

סעיף ב

כתבו פעולה המקבלת מספר שלם אי-זוגי size. הפעולה תיצור מערך של מספרים שלמים בגודל size (אפשר להניח ש-size>4) ותמלא אותו במספרים אקראיים תלת-ספרתיים חיוביים כך שיתקבל "מערך יפה". כותרת הפעולה: public static int[] doItNice(int size)

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

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

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

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

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

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