אתם מתרגלים שאלה מתוך מה"ט אלגוריתמיקה ותכנות — הנדסאי תוכנהמבחן 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 bool Secret (int[] a)
{
   return Secret (a, a.Length-1);
}
public static  bool Secret (int[] a, int m)
{
    if(m==0) return true;
    else
     return Secret(a, m-1) && (Sod(a[m]) - Sod(a[m-1]) == 1);
}
סעיף א

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

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 bool Secret (int[] a)
{
   return Secret (a, a.Length-1);
}
public static  bool 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 מסעיף ג':

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

סעיף ה

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

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

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

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

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