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

נתונות ארבע פעולות:

public static double one(int num)
{
    return two(num, 0, 0);
}

private static double two(int num, int s, int c)
{
    if (num == 0) return (double)s / c;
    return two(num / 10, s + (num % 10), c + 1);
}

public static int[] three(int[] arr, int p)
{
    int n = arr.length;
    int[] temp = new int[n];
    four(arr, temp, 0, 0, n - 1, p);
    return temp;
}

private static void four(int[] arr, int[] temp, int k, int left, int right, int p)
{
    if (k < arr.length)
    {
        if (one(arr[k]) > one(arr[p]))
        {
            temp[right] = arr[k];
            four(arr, temp, k + 1, left, right - 1, p);
        }
        else
        {
            temp[left] = arr[k];
            four(arr, temp, k + 1, left + 1, right, p);
        }
    }
}
סעיף א
  1. עקבו אחרי זימון הפעולה one(6123) ורשמו את תוצאת הזימון. יש להראות מעקב!
  2. תנו דוגמה של מספר שלם וחיובי גדול מ-100 שעבורו הפעולה תחזיר ערך חמש.
  3. מה מבצעת הפעולה one(num) עבור מספר שלם num?
סעיף ב

נתון המערך int[] a = {24, 126, 9, 35, 2684, 8941}

  1. עקבו אחרי זימון הפעולה three(a, 3) ורשמו מה תהיה תוצאת הזימון. יש להראות מעקב אחרי ביצוע הפעולה three, אין צורך להראות מעקב אחרי הפעולות one ו-two.
  2. האם קיים ערך p שעבורו זימון הפעולה three(a, p) יגרום לשגיאה? הסבירו את תשובתכם.
  3. תנו דוגמה של מערך arr בגודל שישה תאים כך שזימון הפעולה three(arr, p) יחזיר מערך זהה ל-arr עבור כל ערך p תקין. אם הדבר אינו אפשרי, הסבירו מדוע.
  4. מה מבצעת הפעולה three(a, p) עבור מערך של מספרים שלמים arr וערך שלם p?
שאלות ותגובות על השאלה

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

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

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