On this page
מערך שיעור: פונקציות (מתודות)
משך: 2 שעות אקדמיות (90 דקות).
מטרת השיעור: הסטודנטים יכתבו פונקציות עם פרמטרים וערכי החזרה, ויבינו למה Overloading קיים.
בסוף השיעור הסטודנטים צריכים: לכתוב פונקציה עם פרמטרים וסוג החזרה נכון, להבדיל בין void לפונקציה עם ערך מוחזר, ולהסביר מתי Overloading משתלם.
דגש קריטי: התחילו תמיד מהעתק-הדבק כואב (אותו קוד בשלושה מקומות) לפני שמציגים פונקציות בכלל — זה מה שהופך את הפתרון למוחשי.
מהלך השיעור
| חלק בשיעור | משך | הערות ודגשים |
|---|---|---|
| פתיחה וחיבור | 5 דקות | הראו קוד עם אותו חישוב מועתק 3 פעמים |
| הבעיה: תחזוקת קוד כפול | 10 דקות | “עכשיו יש באג בחישוב — כמה מקומות צריך לתקן?” |
| הרעיון: פונקציה עם return | 20 דקות | חילוץ הקוד הכפול לפונקציה אחת, קריאה מ-3 מקומות |
| void מול ערך מוחזר | 15 דקות | הראו את שניהם, הדגישו ש-void לא ניתן לשמירה במשתנה |
| Overloading | 20 דקות | דוגמת CalculateAverage בשתי צורות |
| תרגול מודרך | 20 דקות | תרגיל 1+2 |
דגשים להעברת השיעור
- ודאו שסטודנטים מבדילים בבירור בין הגדרת הפונקציה (החתימה) לקריאה לה (Call) — בלבול נפוץ אצל מתחילים.
- “not all code paths return a value” היא שגיאת קומפילציה נפוצה מאוד בהתחלה — שווה להדגים אותה בכוונה (למשל
ifבליelseבפונקציה שאמורה להחזיר תמיד ערך). - Overloading — הדגישו שההבדל חייב להיות במספר או בטיפוס הפרמטרים, לא רק בטיפוס ההחזרה.
מושגים
Method — בלוק קוד עם שם, ניתן לקריאה מכמה מקומות.
Parameter — משתנה קלט בהגדרת הפונקציה.
Argument — הערך האמיתי שנשלח בקריאה בפועל.
Return Value — הערך שהפונקציה מחזירה עם return.
void — טיפוס החזרה שמסמן “אין ערך מוחזר”.
Overloading — כמה מתודות באותו שם, נבדלות בפרמטרים.
תרגיל חשיבה
שאלת פתיחה: “יש לכם קוד שמחשב ממוצע במקום אחד בקוד. עכשיו צריך לחשב אותו גם במקום שני. מה שתי הדרכים האפשריות, ולמה אחת מהן עדיפה?”
מהלך: צפו לשתי תשובות — “להעתיק-להדביק” ו-“לכתוב פונקציה”. תנו לסטודנטים לנמק למה פונקציה עדיפה (תחזוקה, מקום אחד לתקן, קריאות). הדגישו שהאינטואיציה הזו — “לא לחזור על עצמך” (DRY — Don’t Repeat Yourself) — תחזור לאורך כל הקורס.
מה המרצה מראה בסוף: קחו קוד עם באג בחישוב שמופיע פעמיים (Copy-Paste). “תקנו” את הבאג רק במופע הראשון, והראו שהשני עדיין שגוי — כי הוא עותק נפרד. עכשיו הראו את אותו תיקון על גרסה עם פונקציה אחת — תיקון במקום אחד, שתי הקריאות מתוקנות מיד.