אתם מתרגלים שאלה מתוך מה"ט אלגוריתמיקה ותכנות — הנדסאי תוכנהמבחן 2026 · אביב מועד ב · שאלה 10כל שאלות המבחן ←
אלגוריתמים בסיסייםרקורסיה

סעיף א

נתונה הפעולה what המקבלת מספר שלם חיובי n:

public static boolean what(int n) {
    if (n < 10) return true;
    return what(n / 10, n % 10);
}
private static boolean what(int n, int k) {
    if (n == 0) return true;
    if (n % 10 <= k) return false;
    return what(n / 10, n % 10);
}
  1. מה תהיה תוצאת זימון הפעולה what(8652)? יש להראות מעקב.
  2. תנו דוגמה למספר תלת-ספרתי n שעבורו תוצאת זימון הפעולה what(n) תהיה true.
  3. מה מבצעת הפעולה what(n) באופן כללי עבור מספר שלם חיובי n?
סעיף ב

נתונה הפעולה secret המקבלת מערך מספרים שלמים:

public static void secret(int[] a) {
    secret(a, 0, a.length-1);
}
private static void secret(int[] a, int low, int high) {
    if (low < high) {
        if (what(a[low])) {
            secret(a, low + 1, high);
        } else if (!what(a[high])) {
            secret(a, low, high - 1);
        } else {
            int temp = a[low];
            a[low] = a[high];
            a[high] = temp;
            secret(a, low + 1, high - 1);
        }
    }
}
  1. עקבו אחרי זימון הפעולה secret(a) עבור המערך הבא: int[] a = {17, 863, 19, 542, 123,542}; רשמו מה תהיה התוצאה של הזימון. יש להראות מעקב.
  2. תנו דוגמה של מערך b הכולל חמישה מספרים תלת-ספרתיים, כך שזימון הפעולה secret(b) לא יגרום לשינוי במערך.
  3. תנו דוגמה של מערך c הכולל חמישה מספרים תלת-ספרתיים, כך שזימון הפעולה secret(c) יגרום להפיכת סדר איברים במערך.
  4. מה מבצעת הפעולה secret באופן כללי עבור מערך של מספרים שלמים חיוביים?
שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי