לפניך שתי פעולות:
לפניך שתי פעולות:
```java
public static double check(int[] a, int p, int q)
{
if(p==q) return a[p];
else
if(p+1==q) return (double)(a[p]+a[q])/2;
else return check(a, p+1, q-1);
}
public static boolean secret(int[] a, int p)
{
if (p==a.length-1) return true;
else
return a[p] > check(a, p+1, a.length-1) && secret(a, p+1);
}
סעיף א
וערך מעקב ורשום מה תחזיר הפעולה check(a,0,5) עבור מערך a הבא:
| אינדקס | 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| a | 6 | 5 | 4 | 3 | 2 | 1 |
(המערך a שהודפס בשאלון מכיל עוד תאים בהמשך — 0,1,4,7,3,12,10,2 — שאינם נחוצים לזימון check(a,0,5) עצמו, שנוגע רק לתאים 0..5; מובאים כאן רק התאים הרלוונטיים לזימון הנבדק בסעיף זה.)
סעיף ב
ערוך מעקב ורשום מה מחזירה הפונקציה secret(a, 0) עבור המערך a:
| אינדקס | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|
| a | 4 | 3 | 2 | 1 | 0 | 8 | 3 | 4 | 10 | 17 |
סעיף ג
תן דוגמה למערך b שיש בו לפחות שישה איברים כך שזימון secret(b,0) יחזיר "אמת".
סעיף ד
תן דוגמה למערך c שיש בו לפחות שישה איברים כך שזימון secret(c,0) יחזיר "שקר".
סעיף ה
מה מבצעת הפעולה secret, ומה מבצעת הפעולה check? הסבר בקצרה.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.