נושא 11: פעולות (סטטיות/חיצוניות)
צפו בסרטון ההסבר, ואז בחרו תת־נושא לתרגול.
סיכומון תחביר נושא 11: פעולות (סטטיות/חיצוניות)
פעולה ראשונה: כתיבה וקריאה
פעולה נכתבת מחוץ ל‑Main. בכותרת: static, טיפוס הערך המוחזר, שם, וסוגריים. void אומר שהפעולה לא מחזירה כלום. התוכנית מתחילה תמיד ב‑Main, ופעולה מתבצעת רק כשקוראים לה: שם הפעולה, סוגריים ונקודה‑פסיק. כשהפעולה מסתיימת, הקוד ממשיך מהשורה שאחרי הקריאה.
class Program
{
static void PrintHi()
{
Console.WriteLine("Hi");
}
static void Main(string[] args)
{
PrintHi();
Console.WriteLine("Middle");
PrintHi();
}
}
הפלט:
Hi
Middle
Hi
ארבעת סוגי הפעולות
- לא מקבלת, לא מחזירה:
static void A() - מקבלת, לא מחזירה:
static void B(int x) - לא מקבלת, מחזירה:
static int C() - מקבלת ומחזירה:
static int D(int x)
פעולה שמקבלת ערכים
בסוגריים של הכותרת כותבים פרמטרים: טיפוס ושם לכל אחד, ופסיק ביניהם. בקריאה שולחים ערכים, והם נכנסים לפרמטרים לפי הסדר. אפשר לשלוח מספר, משתנה או חישוב.
static void PrintAvg(double a, double b)
{
double avg = (a + b) / 2;
Console.WriteLine(avg);
}
PrintAvg(6, 7.2);
הפלט:
6.6
פעולה שמחזירה ערך
במקום void כותבים את טיפוס הערך המוחזר, ובגוף הפעולה return. return מסיים את הפעולה מיד, גם מתוך לולאה.
static int Bigger(int n1, int n2)
{
if (n1 > n2)
{
return n1;
}
else
{
return n2;
}
}
שימוש בערך המוחזר
הקריאה לפעולה "הופכת" לערך שהוחזר. אפשר לשמור אותו במשתנה, להדפיס אותו, או להשתמש בו בחישוב ובתנאי.
int m = Bigger(6, 7);
Console.WriteLine(m);
Console.WriteLine(Bigger(2, 1) * 10);
הפלט:
7
20
בקריאה כמו Bigger(6, 7); לבדה, הערך המוחזר לא נשמר ולא מודפס, והוא הולך לאיבוד.
פעולה שמחזירה bool
"מחזירה האם..." פירושו פעולה שמחזירה bool: או true או false. משתמשים בה בתנאי: if (IsPositive(x) == true).
static bool IsPositive(int n)
{
if (n > 0)
{
return true;
}
else
{
return false;
}
}
משתנים ופרמטרים
משתנה שנוצר בתוך פעולה קיים רק בה: Main לא מכיר אותו, והפעולה לא מכירה את המשתנים של Main. פרמטר הוא עותק של הערך שנשלח, ולכן שינוי שלו בתוך הפעולה לא משנה את המשתנה המקורי. מידע עובר רק דרך הפרמטרים ודרך return.
מילים שחובה להבחין ביניהן
- מדפיסה:
Console.WriteLine. מחזירה:return. - קולטת:
Console.ReadLine()מהמקלדת. מקבלת: פרמטר בסוגריים של הכותרת. - כתבו תוכנית: כותבים בתוך
Main. כתבו פעולה: פעולה שמתחילה ב‑static, מחוץ ל‑Main.
תרגול
-
11.1
פעולות — מבוא ופעולה שלא מקבלת ערך ולא מחזירה ערך
25 רמות
לתרגול ‹
מה מתרגלים ב־פעולות — מבוא ופעולה שלא מקבלת ערך ולא מחזירה ערך
- למה צריך פעולות חיצוניות
- מיקום הפעולה מחוץ ל‑
Main - כותרת הפעולה
static voidושם - גוף הפעולה בסוגריים מסולסלים
- קריאה לפעולה בשמה עם סוגריים ונקודה‑פסיק
- ה‑
Mainכנקודת ההתחלה של התוכנית - קריאה חוזרת לאותה פעולה
- קוד שממשיך אחרי הקריאה
- קריאה לפעולה מתוך לולאה
- קלט ותנאים ולולאות בתוך הפעולה
- ההבדל בין "כתבו תוכנית" ל"כתבו פעולה"
- משתנים שנוצרים בתוך פעולה ואינם נגישים מחוץ לה
-
11.2
פעולות — פעולה שמקבלת ערך ולא מחזירה ערך
14 רמות
לתרגול ‹
מה מתרגלים ב־פעולות — פעולה שמקבלת ערך ולא מחזירה ערך
- פרמטרים בכותרת הפעולה עם טיפוס ושם
- שליחת ערכים בקריאה לפעולה
- התאמה לפי סדר בין הערכים שנשלחו לפרמטרים
- פרמטרים מכמה טיפוסים
- שליחת משתנים וביטויים חשבוניים
- קריאה לפעולה מתוך לולאה עם ערך משתנה
- ההבדל בין "מקבלת" ל"קולטת"
- הפרמטר כמשתנה נפרד מהמשתנה שנשלח מה‑
Main
-
11.3
פעולות — פעולה שלא מקבלת ערך ומחזירה ערך
13 רמות
לתרגול ‹
מה מתרגלים ב־פעולות — פעולה שלא מקבלת ערך ומחזירה ערך
- טיפוס הערך המוחזר בכותרת במקום
void - הפקודה
return - הקריאה לפעולה הופכת לערך שהוחזר
- שמירת הערך המוחזר במשתנה או הדפסתו ישירות
- שימוש בערך המוחזר בתוך ביטוי
- פעולה שקולטת קלט ומחזירה תוצאה
- קריאה שהערך שלה לא נשמר
returnבתוך תנאי ובתוך לולאה שמסיים את הפעולה מיד- פעולה שמחזירה
bool - ההבדל בין "מחזירה" ל"מדפיסה"
- טיפוס הערך המוחזר בכותרת במקום
-
11.4
פעולות — פעולה שמקבלת ערך ומחזירה ערך
20 רמות
לתרגול ‹
מה מתרגלים ב־פעולות — פעולה שמקבלת ערך ומחזירה ערך
- כותרת עם טיפוס מוחזר ופרמטרים
- החזרת תוצאה שמחושבת מהפרמטרים
- שימוש בערך המוחזר בתוך ביטוי ובתוך תנאי
- קריאה לפעולה בתוך קריאה אחרת
- פעולה שמחזירה
boolכתשובה לשאלת "האם" - לולאה בתוך פעולה מחזירה
returnבתוך לולאה שמסיים את הפעולה מיד- הפרמטר כעותק של הערך שנשלח
- פעולה שקוראת לפעולה אחרת
- מבנה של פעולה ותוכנית ראשית שמשתמשת בה