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

לפניך שתי פעולות:

```csharp
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 bool 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 הבא:

אינדקס012345
a654321

(המערך a שהודפס בשאלון מכיל עוד תאים בהמשך — 0,1,4,7,3,12,10,2 — שאינם נחוצים לזימון check(a,0,5) עצמו, שנוגע רק לתאים 0..5; מובאים כאן רק התאים הרלוונטיים לזימון הנבדק בסעיף זה.)

סעיף ב

ערוך מעקב ורשום מה מחזירה הפונקציה secret(a, 0) עבור המערך a:

אינדקס0123456789
a432108341017
סעיף ג

תן דוגמה למערך b שיש בו לפחות שישה איברים כך שזימון secret(b,0) יחזיר "אמת".

סעיף ד

תן דוגמה למערך c שיש בו לפחות שישה איברים כך שזימון secret(c,0) יחזיר "שקר".

סעיף ה

מה מבצעת הפעולה secret, ומה מבצעת הפעולה check? הסבר בקצרה.

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

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

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

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