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

נתונות הפעולות sod, secret הבאות (ראו קוד). הפעולה sod מקבלת מספר שלם וחיובי (גדול מ-0).

סעיף א

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

public static double sod (int n)
{
    return sod (n,0,0);
}
private static double sod (int n, int c, double a)
{
    if (n == 0 && c == 0) return 0;
    else
        if(n == 0) return a/c;
        else return sod (n/10, c+1, a+ (n % 10));
}

public static boolean secret (int[] a)
{
   return secret (a, a.length-1);
}
public static  boolean secret (int[] a, int m)
{
    if(m==0) return true;
    else
     return secret(a, m-1) && (sod(a[m]) - sod(a[m-1]) == 1);
}

עקבו אחרי זימון sod(3234) ורשמו את תוצאת הזימון. יש להראות מעקב!

סעיף ב

מה מבצעת הפעולה sod(n) עבור מספר שלם וחיובי (גדול מ-0) n, באופן כללי?

סעיף ג

נתון מערך a בגודל 6 הבא:

012345
1758645177789

עקבו אחרי זימון secret(a) ורשמו את תוצאת הזימון. יש להראות מעקב! אין צורך במעקב אחרי הפעולה sod.

סעיף ד

שנו את סדר האיברים במערך a (מסעיף ג') כך שזימון secret(a) יחזיר את התוצאה ההפוכה לזו שהתקבלה בסעיף ג'.

סעיף ה

מה מבצעת הפעולה secret(a) עבור מערך a של מספרים שלמים גדולים מ-0, באופן כללי?

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

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

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

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