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

בשאלה זו שתי פעולות רקורסיביות נפרדות, שכל אחת מהן מקבלת רשימה של מספרים שלמים arr ושני מספרים נוספים begin ו-end.

הרשימה brr (לסעיף א').

index:  0   1   2  3  4   5
brr:    8  10  16  3  5  15

תוכן הרשימה crr לאחר ביצוע where(crr, 0, len(crr)-1) (לסעיף ב').

index:  0  1   2   3   4  5
crr:    3  7  -2  -1  -2  1
סעיף א-1

נתונה הפעולה what המקבלת רשימה של מספרים שלמים, ושני מספרים נוספים:

def what(arr, begin, end):
    if begin < end:
        what(arr, begin + 1, end)
        arr[begin] = arr[begin] - arr[begin + 1]

עקבו אחר זימון what(brr, 0, len(brr) - 1) עבור הרשימה brr, וציינו מה יהיה תוכן הרשימה בסיום ביצוע הפעולה.

סעיף א-2

מהי מטרת הפעולה what? בתשובה יש להתייחס לרשימה שהפעולה מקבלת כפרמטר.

סעיף ב-1

נתונה פעולה אחרת, where, המקבלת רשימה של מספרים שלמים, ושני מספרים נוספים:

def where(arr, begin, end):
    if begin < end:
        arr[begin] = arr[begin] - arr[begin + 1]
        where(arr, begin + 1, end)

אחרי זימון where(crr, 0, len(crr) - 1) תוכן הרשימה crr הוא כפי שמוצג למעלה. מה היה תוכן הרשימה crr לפני ביצוע הזימון?

סעיף ב-2

מהי מטרת הפעולה where? בתשובה יש להתייחס לרשימה שהפעולה מקבלת כפרמטר.

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

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

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

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