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

נתונות שתי הפעולות what ו-secret, ושתי פעולות העזר why ו-mystery.

def secret(a, s):
    s %= len(a)
    mystery(a, 0, len(a) - 1)
    mystery(a, 0, s - 1)
    mystery(a, s, len(a) - 1)

def mystery(a, start, end):
    while start < end:
        temp = a[start]
        a[start] = a[end]
        a[end] = temp
        start += 1
        end -= 1

def what(a, d):
    why(a, d, 0)

def why(a, d, i):
    if i < len(a):
        j = (i + d) % len(a)
        rest = a[j]
        why(a, d, i + 1)
        a[i] = rest

נתונה הרשימה arr של מספרים שלמים (אינדקסים 0-6), משמשת לסעיפים א'-ד'.

index:  0   1   2   3   4   5   6
arr:   10   3   6   8   2  11   5
סעיף א

עקבו אחרי זימון הפונקציה mystery(arr, 1, 4) ורשמו מה יהיה תוכן הרשימה אחרי הזימון.

סעיף ב

עקבו אחרי זימון הפונקציה secret(arr, 3) ורשמו מה יהיה תוכן הרשימה אחרי הזימון.

סעיף ג

מה מבצעת הפונקציה secret(a, d) עבור רשימה של מספרים שלמים a ומספר שלם וחיובי d?

סעיף ד

עקבו אחרי זימון הפונקציה what(arr, 3) ורשמו מה יהיה תוכן הרשימה אחרי הזימון. יש להראות את ערכי המשתנים בכל זימון רקורסיבי.

סעיף ה

אחרי זימון הפונקציה what(brr, 2) התקבלה הרשימה brr: [10, 20, 30, 40, 50, 60]. מה היה תוכן הרשימה brr לפני זימון הפונקציה?

סעיף ו

מה מבצעת הפונקציה what(a, d) עבור רשימה של מספרים שלמים a ומספר שלם וחיובי d?

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

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

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

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