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

נתונה פעולה רקורסיבית secret המקבלת שני מספרים שלמים אי-שליליים, ולאחר מכן פעולה רקורסיבית bigSecret המקבלת מערך מספרים שלמים אי-שליליים ומחזירה מערך חדש, בעזרת פעולת עזר רקורסיבית mystery.

public static bool Secret (int n1, int n2)
{
    if (n1 < 10)
        return (n1 == n2);
    if (n1%10 == n2)
        return true;
    return Secret (n1 / 10, n2);
}

public static int[] BigSecret (int[] arr)
{
    int[] temp = new int [arr.Length];
    Mystery(arr, temp, 0, 0, temp.Length-1);
    return temp;
}

private static void Mystery (int[] arr, int[] temp, int k, int low, int high)
{
  if (k < arr.Length)
  {
    if (Secret (arr[k] / 10, arr[k] % 10))
    {
      temp[high] = arr[k];
      Mystery (arr, temp, k+1, low, high-1);
    }
    else
    {
      temp[low] = arr[k];
      Mystery (arr, temp, k+1, low+1, high);
    }
  }
}
סעיף א-1

עקוב אחר הזימון הבא: secret(528, 5).

סעיף א-2

מה מבצעת הפעולה secret?

סעיף ב-1

נתון מערך חד-ממדי arr={424, 57547, 130, 57675, 12}. עקוב אחר ביצוע הפעולה bigSecret(arr) ורשום את הערך המוחזר. הערה: אין צורך להראות מעקב אחר הפעולה secret.

סעיף ב-2

מה מבצעת הפעולה bigSecret?

שאלות ותגובות על השאלה

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

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

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