סעיף א
נתונה הפעולה What המקבלת מספר שלם חיובי n:
public static bool What(int n) {
if (n < 10) return true;
return What(n / 10, n % 10);
}
private static bool What(int n, int k) {
if (n == 0) return true;
if (n % 10 <= k) return false;
return What(n / 10, n % 10);
}
- מה תהיה תוצאת זימון הפעולה
What(8652)? יש להראות מעקב. - תנו דוגמה למספר תלת-ספרתי n שעבורו תוצאת זימון הפעולה
What(n)תהיה true. - מה מבצעת הפעולה
What(n)באופן כללי עבור מספר שלם חיובי n?
סעיף ב
נתונה הפעולה Secret המקבלת מערך מספרים שלמים:
public static void Secret(int[] a) {
Secret(a, 0, a.Length-1);
}
private static void Secret(int[] a, int low, int high) {
if (low < high) {
if (What(a[low])) {
Secret(a, low + 1, high);
} else if (!What(a[high])) {
Secret(a, low, high - 1);
} else {
int temp = a[low];
a[low] = a[high];
a[high] = temp;
Secret(a, low + 1, high - 1);
}
}
}
- עקבו אחרי זימון הפעולה
Secret(a)עבור המערך הבא:int[] a = {17, 863, 19, 542, 123,542};רשמו מה תהיה התוצאה של הזימון. יש להראות מעקב. - תנו דוגמה של מערך b הכולל חמישה מספרים תלת-ספרתיים, כך שזימון הפעולה
Secret(b)לא יגרום לשינוי במערך. - תנו דוגמה של מערך c הכולל חמישה מספרים תלת-ספרתיים, כך שזימון הפעולה
Secret(c)יגרום להפיכת סדר איברים במערך. - מה מבצעת הפעולה Secret באופן כללי עבור מערך של מספרים שלמים חיוביים?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.