תרגול קריאת קוד: שיטת מעקב עם פתרון
מאת ארז ברזאני · תרגול מקורי של GammaCyber
קריאת קוד היא עבודה עם מצב, סדר ותנאים. נשתמש בדוגמה קטנה שאפשר לפתור ביד ולאמת ב־Python 3, ואחר כך נבדוק כיצד שינוי קלט בוחן את ההבנה.
הדוגמה
הפונקציה הבאה מחזירה סכום רק עד המספר השלילי הראשון. השאלה אינה כמה מספרים חיוביים יש ברשימה, משום ש־break מסיים את הלולאה כולה. סמנו כל שינוי ב־total וכל החלטה אם להמשיך.
def sum_prefix(xs):
total = 0
for x in xs:
if x < 0:
break
total += x
return totalפתרון עקבה
לקלט [2,0,3,-1,9], מתחילים ב־total=0. אחרי 2 הסכום הוא 2; אחרי 0 הוא נשאר 2; אחרי 3 הוא 5. ב־-1 מתבצע break ולכן 9 אינו נבדק. התוצאה היא 5. החלפת break ב־continue הייתה מדלגת על השליליים וממשיכה, ובקלט הזה הייתה נותנת 14. זה שינוי בחוזה, לא רק שינוי סגנון.
שלוש בדיקות המשך
רשימה ריקה מחזירה 0 מפני שגוף הלולאה אינו רץ. רשימה שמתחילה במספר שלילי מחזירה 0; אל תוסיפו את השלילי לפני שבודקים את התנאי. רשימה ללא שליליים מחזירה את סכום כל האיברים. עכשיו נסו לתאר במשפט איזה חלק מהקלט תורם לפלט לפני שאתם פותחים שוב את הקוד.
תרגול עצמאי עם הסברים
נסו לענות לפני פתיחת ההסבר. אפשר לעבוד ללא שעון או לבחור זמן אימון משלכם.
שאלה 1: מה מוחזר עבור [4,-2,8]?
- 12
- 4
- 10
תשובה והסבר
4: עוצרים לפני צבירת -2; 8 אינו מעובד.
הכפתור מסמן סיום לפי הדיווח שלכם; פתיחת פתרון אינה בדיקת ידע.
הצעד הבא בלמידה
בחרו עיקרון אחד שעדיין לא ברור, חזרו לדוגמה ונסו להסביר אותה במילים שלכם.
לשיעור הקשור בקורסלמפת הקורס וחלוקת התוכןהמשאבים בעמוד הזה פתוחים. חלק משיעורי הקורס זמינים בתצוגה מקדימה, וגישה מלאה בתשלום.
להמשך תרגול
מקורות טכניים וגבולות התרגול
המקורות מסבירים טכנולוגיה. הם אינם אסמכתה למבנה מיון צבאי. התוכן כאן עצמאי; הנחיות הזימון האישי הן הקובעות. מצאתם שגיאה? כתבו לנו.