נתונה הפעולה הרקורסיביות what המקבלת רשימה מספרים שלמים הממוינת בסדר עולה ומספר שלם וחיובי num:
def what(arr, num, found = False):
if len(arr)<2 :
return found
if arr[0] + arr[-1] < num :
return what(arr[1:], num, found)
if arr[0] + arr[-1] > num:
return what(arr[: -1], num, found)
print(arr[0], arr[-1])
return what(arr[1:-1], num, True)
(א)נתונה הרשימה הבאה של מספרים שלמים:
arr = [2,4,7,13,18,21,30]
עקבו אחרי זימון what(a, 20) רשמו את תוצאת הזימון. יש להראות מעקב!
arr = [2,4,7,13,18,21,30]
עקבו אחרי זימון what(a, 20) רשמו את תוצאת הזימון. יש להראות מעקב!
(ב)מה מבצעת הפעולה what באופן כללי?
(ג)נתונה הפעולה הרקורסיביות why המקבלת רשימה מספרים שלמים הממוינת בסדר עולה ומספר שלם וחיובי num:
```python
def why(arr, num, count = 0, left = 0, right = 1):
if left == len(arr)-1 or right == len(arr):
return count
if arr[right] - arr[left] < num :
return why(arr, num, count, left, right+1)
if arr[right] - arr[left] > num:
return why(arr, num, count, left+1, right)
print(arr[left], arr[right])
return why(arr, num, count+1, left+1, right+1)
```
נתונה הרשימה הבאה של מספרים שלמים:
arr=[2,4,7,13,18,21,30]
האם קיים מספר num שעבורו זימון why(a, num) יחזיר 2? אם כן, תנו דוגמה למספר כזה וציינו מה יהיה הפלט, ולא – הסבירו למה הדבר אינו אפשרי.
```python
def why(arr, num, count = 0, left = 0, right = 1):
if left == len(arr)-1 or right == len(arr):
return count
if arr[right] - arr[left] < num :
return why(arr, num, count, left, right+1)
if arr[right] - arr[left] > num:
return why(arr, num, count, left+1, right)
print(arr[left], arr[right])
return why(arr, num, count+1, left+1, right+1)
```
נתונה הרשימה הבאה של מספרים שלמים:
arr=[2,4,7,13,18,21,30]
האם קיים מספר num שעבורו זימון why(a, num) יחזיר 2? אם כן, תנו דוגמה למספר כזה וציינו מה יהיה הפלט, ולא – הסבירו למה הדבר אינו אפשרי.
(ד)מה מבצעת הפעולה why באופן כללי?
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות
שאלו כאן — ותקבלו מענה מוסמך.
רוצים לתרגל אלפי שאלות נוספות?
המשיכו לתרגול מלא עם משוב אישי ←מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות