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

נתונות שלוש הפעולות הבאות (הקוד המלא מובא כאן).

public static int what ( int[] arr )
{
    int answer = -1;
    for (int k = 0; k < arr.length-1 && answer  == -1; k++)
        if (arr[k] < arr[k+1])
            answer = k;
    return answer;
}

public static void something ( int[] arr, int k )
{
    int temp = arr[k];
    arr[k] = arr[k+1];
    arr[k+1] = temp;
}

public static void secret ( int[] arr )
{
    int k = what( arr );
    while (k != -1)
    {
        something( arr, k );
        k = what( arr );
    }
}
סעיף א

עקבו בעזרת טבלת המעקב ורשמו מה יחזיר זימון הפעולה what(a) עבור המערך int[] a={17, 9, 4, 8, -3, 1, 4}.

סעיף ב

מה יחזיר זימון הפעולה what(b) עבור המערך int[] b={-5, -3, 0, 11, 13, 15, 18}?

סעיף ג

תנו דוגמה למערך c בגודל שישה תאים שעבורו הזימון what(c) יחזיר 1-.

סעיף ד

נתון מערך int[] d={7, 9, 2, 8, 3, 1}. עקבו בעזרת טבלת המעקב ורשמו מה יהיה תוכן המערך אחרי זימון הפעולה secret(d). אין צורך להראות מעקב אחרי הפעולות something ו-what.

סעיף ה

מה מבצעת הפעולה secret(arr) באופן כללי? הסבירו את התשובה.

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

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

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

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