משך: 1.5 שעות אקדמיות (68 דקות).

מטרת השיעור: הסטודנטים ידעו לקבל קלט מהמשתמש ולהמיר אותו בבטחה לטיפוס הנדרש.

בסוף השיעור הסטודנטים צריכים: להשתמש ב-Console.ReadLine לקבלת קלט, להסביר למה נדרשת המרה מפורשת, ולהעדיף TryParse על פני Parse בקוד שמטפל בקלט משתמש.

דגש קריטי: תמיד להדגים תרחיש קלט שגוי ("abc" במקום מספר) בזמן ההרצה — זו הנקודה שהופכת את הצורך ב-TryParse למוחשי, לא תיאורטי.


מהלך השיעור

חלק בשיעורמשךהערות ודגשים
פתיחה וחיבור5 דקותהראו Console.ReadLine() בפעולה — משהו “קורה” רק אחרי הקלדה+Enter
הבעיה: string לא int10 דקותנסו לחבר תוצאת ReadLine למספר — שגיאת קומפילציה
הרעיון: המרה מפורשת10 דקותint.Parse — הדגימו על קלט תקין
הבעיה: קלט שגוי מקריס10 דקותהזינו "abc" ל-int.Parse בשידור חי — התוכנית קורסת
הרעיון: TryParse15 דקותפתרון: TryParse + out — בלי קריסה
תרגול מודרך15 דקותתרגיל 1+2 מדף השיעור
שאלות + סיכום3 דקותחיזרו על “כל קלט ממשתמש = TryParse כברירת מחדל”

דגשים להעברת השיעור

  • הקריסה החיה על int.Parse("abc") היא הרגע הכי משכנע בשיעור — אל תדלגו עליה, גם אם זה “מיותר” מבחינתכם.
  • out יילמד בפירוט בשיעור נפרד — כאן מספיק להראות אותו כ"תחביר שצריך כדי לקבל תשובה בטוחה מ-TryParse", בלי להסביר לעומק את מנגנון ה-reference שמאחוריו.
  • Interpolated strings ($"...") שווה להראות בהשוואה לחיבור עם + — ההבדל בקריאות בולט מיד.

מושגים

Console.ReadLine() — קריאת שורת טקסט מהמשתמש; מחזירה string. int.Parse — המרת string ל-int; זורקת חריגה על קלט לא תקין. int.TryParse — המרה בטוחה; מחזירה bool הצלחה/כישלון. Interpolated String — מחרוזת עם $ שמטמיעה ביטויי C# בתוכה עם {}.


תרגיל חשיבה

שאלת פתיחה: “אם אתם בונים אפליקציית קופה שמקבלת מהקופאי סכום כסף בהקלדה — מה קורה אם הוא ילחץ בטעות על אות במקום מספר? מה אתם רוצים שיקרה?”

מהלך: תנו לסטודנטים לחשוב על 2-3 תרחישי כישלון אפשריים (הקלדה שגויה, שדה ריק, רווחים מיותרים). הובילו לתובנה: קלט ממשתמש הוא תמיד בלתי-אמין, ולכן הטיפול בו חייב להיות מוגן מראש, לא “אחרי שזה קרס בפעם הראשונה”.

מה המרצה מראה בסוף: הריצו קוד עם int.Parse על קלט שגוי — קריסה עם FormatException לא ידידותי. מיד אחר כך, אותו תרחיש בדיוק עם TryParse — הודעת שגיאה מנוסחת יפה, והתוכנית ממשיכה לרוץ כרגיל.