פרק 2 - קלט ופלט
עד עכשיו כתבנו ערכים ישירות בתוך הקוד. זה טוב להתחלה, אבל תוכנית אמיתית צריכה גם להציג מידע למשתמש וגם לקבל ממנו נתונים. לשני הדברים האלה אנחנו קוראים פלט ו-קלט.
1. מה זה פלט ומה זה קלט?
פלט (Output): מידע שהתוכנית מציגה החוצה, בדרך כלל למסך.
קלט (Input): מידע שהתוכנית מקבלת מהמשתמש, למשל שם, גיל או ציון.
כשאנחנו כותבים Console.WriteLine(), אנחנו מבקשים מהתוכנית להדפיס משהו למסך.
זהו פלט. בהמשך הפרק נלמד איך לקלוט נתונים מהמשתמש בעזרת Console.ReadLine().
2. פלט למסך עם WriteLine
הפקודה הנפוצה ביותר להצגת מידע למסך היא Console.WriteLine().
כל מה שנכתוב בתוך הסוגריים יודפס למסך, ולאחר מכן הסמן יעבור לשורה הבאה.
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("שלום עולם");
Console.WriteLine("אני לומד C#");
}
}
" ". בלי מרכאות C# תחשוב
שמדובר בשם של משתנה, ותקבלו שגיאה.
3. מה ההבדל בין Write ל-WriteLine?
שתי הפקודות מדפיסות למסך, אבל הן לא מתנהגות בדיוק אותו דבר.
| פקודה | מה היא עושה? | דוגמה |
|---|---|---|
Console.WriteLine() |
מדפיסה ואז יורדת לשורה חדשה | Console.WriteLine("Hi"); |
Console.Write() |
מדפיסה ונשארת באותה שורה | Console.Write("Hi"); |
Console.Write("שלום ");
Console.WriteLine("כיתה י'");
הפלט שיתקבל יהיה:
שלום כיתה י'
4. הדפסת משתנים
לא חייבים להדפיס רק טקסט קבוע. אפשר גם להדפיס משתנים שכבר יצרנו.
int age = 16;
string name = "Dana";
Console.WriteLine(name);
Console.WriteLine(age);
אפשר גם לשלב טקסט ומשתנים באותה שורת פלט בעזרת הסימן +.
int grade = 95;
Console.WriteLine("הציון שלך הוא " + grade);
+ מחבר בין קטעי טקסט ויוצר
מחרוזת אחת ארוכה להצגה.
5. קלט מהמשתמש עם Console.ReadLine
כדי שהמשתמש יוכל להקליד נתונים, נשתמש ב-Console.ReadLine().
הפעולה הזו קוראת שורת טקסט שהמשתמש הקליד ושומרת אותה בתוך משתנה.
string name = Console.ReadLine();
Console.ReadLine() תמיד מחזירה טקסט.
לכן ברוב המקרים נקלוט קודם לתוך string, ואם צריך מספר נמיר אחר כך.
6. קריאת מחרוזת מהמשתמש
אם נרצה לקלוט טקסט שלם, נשתמש ישירות ב-Console.ReadLine().
using System;
class Program
{
static void Main(string[] args)
{
Console.Write("הכנס את שמך: ");
string name = Console.ReadLine();
Console.WriteLine("שלום " + name);
}
}
שימו לב לסדר:
1. מדפיסים שאלה למשתמש.
2. קולטים את התשובה לתוך משתנה.
3. משתמשים במשתנה בהמשך התוכנית.
7. קריאת מספר שלם
ב-C# קלט מהמקלדת מגיע כטקסט. לכן אם נרצה לקלוט מספר שלם, נשתמש ב-int.Parse().
using System;
class Program
{
static void Main(string[] args)
{
Console.Write("הכנס את הגיל שלך: ");
int age = int.Parse(Console.ReadLine());
Console.WriteLine("בעוד שנה תהיה בן/בת " + (age + 1));
}
}
Console.ReadLine() מחזירה טקסט, אנחנו צריכים להמיר אותו למספר.
בשביל מספר שלם נשתמש כאן ב-int.Parse().
8. דוגמה מלאה: קלט ופלט ביחד
הנה תוכנית קצרה שמשלבת טקסט, מספר, קלט ופלט. זה כבר דומה מאוד לשאלות בסיסיות שמופיעות בתרגול של תיכון.
using System;
class Program
{
static void Main(string[] args)
{
Console.Write("הכנס שם: ");
string name = Console.ReadLine();
Console.Write("הכנס ציון: ");
int grade = int.Parse(Console.ReadLine());
Console.WriteLine("התלמיד/ה " + name + " קיבל/ה " + grade);
}
}
9. טעויות נפוצות שכדאי להכיר
שכחתם using System: בלי השורה הזאת לא תוכלו להשתמש ב-Console בצורה רגילה.
שכחתם המרה למספר: אם תנסו לשמור את Console.ReadLine() ישירות בתוך int, תקבלו שגיאה.
שכחתם מרכאות: טקסט חייב להיות בתוך " ".
שכחתם ; גם כאן כל פקודה מסתיימת ב-;.
TryParse כדי לבדוק קלט בצורה בטוחה יותר,
אבל כרגע int.Parse() מספיק בהחלט לרמת ההתחלה.
🎓 זווית הבגרות
איך זה מופיע בבגרות: כמעט כל שאלת "כתבו תוכנית ש..." בבגרות בנויה מקלט → עיבוד → פלט - חשוב לזהות אילו משתנים מגיעים מהמשתמש ואילו מחושבים בתוך התוכנית.
סוג שאלה טיפוסי: קלט/פלט כמעט אף פעם לא נשאל בפני עצמו, אלא הוא המסגרת שבתוכה מוטמעת השאלה האמיתית (תנאים, לולאות, מערכים וכו').
טעות נפוצה: לשכוח ש-Console.ReadLine() תמיד
מחזירה טקסט - ולנסות לשמור אותה ישירות בתוך משתנה int בלי int.Parse.
מה לזכור למבחן: כל קלט מספרי חייב לעבור המרה מפורשת
(int.Parse) - אין המרה אוטומטית כמו ב-Java.
10. תרגול
מה יודפס למסך על ידי הקוד הבא?
int x = 3;
Console.Write("x = ");
Console.WriteLine(x);
כתבו את הפקודה שמדפיסה למסך את הטקסט Hello, באמצעות WriteLine.
כתבו שורת קוד שקולטת טקסט לתוך משתנה בשם name.
כתבו שורת קוד שקולטת מספר שלם לתוך משתנה בשם age, באמצעות int.Parse.
באמצעות WriteLine, כתבו פקודה שמדפיסה את הטקסט שלום ורווח אחריו, ואז את המשתנה name - הכל באותה שורה.