סעיף א
נתונה מחרוזת s="aMrAdDYrM". עקבו בעזרת טבלת המעקב אחרי זימון הפעולה why(s) ורשמו מהי תוצאת הזימון.
def why(s):
while len(s) > 1:
if s[0] < 'A' or s[0] > 'Z':
s = s[1:]
elif s[-1] < 'A' or s[-1] > 'Z':
s = s[:-1]
elif s[0] != s[-1]:
return False
else:
s = s[1:-1]
print(s)
return True
סעיף ב
נתונה הפעולה what הבאה:
def what(s):
while len(s) > 1:
if s[0] != s[-1]:
return False
s = s[1:-1]
return True
תנו דוגמה למחרוזת s באורך שישה תווים כך שזימון what(s) יחזיר ערך true.
סעיף ג
נתונה הפעולה where הבאה. הפעולה משתמשת בפעולה what:
def where(s):
str = ""
for i in range(len(s)):
if s[i] >= 'A' and s[i] <= 'Z':
str = str + s[i]
return what(str)
האם הפעולה where שקולה (מבצעת בדיוק אותו הדבר) לפעולה why? אם כן, הסבירו מה מבצעות שתי הפעולות באופן כללי, ולא – תנו דוגמה של מחרוזת s שעבורה תוצאות הזימונים why(s) ו-where(s) יהיו שונות.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.