סעיף א
נתונה הפעולה what המקבלת מספר שלם חיובי n:
public static boolean what(int n) {
if (n < 10) return true;
return what(n / 10, n % 10);
}
private static boolean 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 באופן כללי עבור מערך של מספרים שלמים חיוביים?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.