הגדרה: רשימה נקראת "רשימה ממוינת בסדר יורד" אם כל איבר (פרט לאיבר הראשון) קטן מהאיבר הקודם לו או שווה לו.
הגדרה: רשימה נקראת "רשימה ממוינת בסדר יורד" אם כל איבר (פרט לאיבר הראשון) קטן מהאיבר הקודם לו או שווה לו.
נתונה הפונקציה 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].
- עקבו בעזרת טבלת מעקב אחר הזימון secret(arr, 12), ורשמו מה תחזיר הפונקציה.
- תנו דוגמה לפרמטר num כך שזימון secret(arr, num) יחזיר תוצאה שונה מהתוצאה שהתקבלה בסעיף א1. שימו לב: אין לשנות את הרשימה arr!
סעיף ב
מה מבצעת הפונקציה secret באופן כללי?
סעיף ג
האם ההנחה שרשימה arr ממוינת בסדר יורד היא הכרחית לביצוע תקין של הפונקציה secret? אם לא – תסבירו למה דרישה זו מיותרת, ואם כן – כתבו פונקציה חדשה המבצעת את אותה המשימה עבור כל רשימה של מספרים שלמים (גם ממוינת וגם לא ממוינת).
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.