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

הגדרה: רשימה נקראת "רשימה ממוינת בסדר יורד" אם כל איבר (פרט לאיבר הראשון) קטן מהאיבר הקודם לו או שווה לו.

נתונה הפונקציה secret המקבלת רשימת מספרים שלמים ממוינת בסדר יורד ומספר שלם נוסף:

def secret(arr, num):
    i = 0
    j = len(arr) - 1
    while i < j:
        s = arr[i] + arr[j]
        if s > num:
            i += 1
        else:
            if s < num:
                j -= 1
            else:
                return True
    return False
סעיף א

נתונה הרשימה arr=[20, 16, 9, 4, 2].

  1. עקבו בעזרת טבלת מעקב אחר הזימון secret(arr, 12), ורשמו מה תחזיר הפונקציה.
  2. תנו דוגמה לפרמטר num כך שזימון secret(arr, num) יחזיר תוצאה שונה מהתוצאה שהתקבלה בסעיף א1. שימו לב: אין לשנות את הרשימה arr!
סעיף ב

מה מבצעת הפונקציה secret באופן כללי?

סעיף ג

האם ההנחה שרשימה arr ממוינת בסדר יורד היא הכרחית לביצוע תקין של הפונקציה secret? אם לא – תסבירו למה דרישה זו מיותרת, ואם כן – כתבו פונקציה חדשה המבצעת את אותה המשימה עבור כל רשימה של מספרים שלמים (גם ממוינת וגם לא ממוינת).

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

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

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

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