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

סעיף א

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

public static bool What(int n) {
    if (n < 10) return true;
    return What(n / 10, n % 10);
}
private static bool 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 באופן כללי עבור מערך של מספרים שלמים חיוביים?
שאלות ותגובות על השאלה

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

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

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