הקדמה
שפת #C (מבוטא סי שארפ) היא שפת תכנות שפותחה ע”י מיקרוסופט ונחשבת לאחת משפות התכנות הפופולריות בעולם. היא מיועדת לפיתוח כללי של מגוון אפליקציות בכל התחומים. התחביר והעקרונות שלה הם פשוטים מצד אחד אך עשירים ביכולות מצד שני.
ידיעת השפה #C היא תנאי הכרחי לצורך שימוש במגוון טכנולוגיות כגון:
- פיתוח תוכנות Command Line) Console Applications)
- פיתוח תוכנות בעלות ממשק משתמש גרפי בעזרת WinForms או WPF
- פיתוח מערכות לאתרי אינטרנט מתקדמים בעזרת ASP.NET ו- HTML5
- פיתוח אפליקציות למכשירי Windows Phone ול- Windows 8
במדריך זה אנו נלמד על הלולאות for & while ודם בנוסף נלמד על הפונקציה בשם math ונלמד מה הפעולות שהיא מבצעת
מה זה לולאה?
לולאה היא קטע קוד שנרצה שיתבצע מספר פעמים.
לדוגמה תארו לכם שנרצה להדפיס למסך 3 פעמים את המשפט “Welcome”, אופציה אחת היא לכתוב תוכנית שמשתמשת בפונקציה Console.WriteLine 3 פעמים:
Console.WriteLine("Welcome");
Console.WriteLine("Welcome");
Console.WriteLine("Welcome");
אופציה זו היא יחסית סבירה, אבל מה יקרה אם נרצה להדפיס זאת 30 פעמים? או 300?
בשביל זה נשתמש בלולאה שבה יהיה כתוב מה רוצים לבצע ומספר הפעמים הדרוש.
לולאת for
לולאת for היא הסוג הפשוט ביותר של לולאות הקיים בשפת #C.
ראשית נראה דוגמה לשימוש בלולאת for, בתוכית הבאה אנו מבצעים הדפסה של המחרוזת “Welcome to C#” 3 פעמים:
for (int i = 0; i < 3; ++i) { Console.WriteLine("Welcome to C#"); }
נסביר כעת את דוגמה זו:
קטע הקוד: int i = 0 מתבצע פעם אחת בלבד בתחילת הלולאה (ברגע כניסת המערכת לבשל ביצוע הלולאה), פה אנו מגדירים ומאתחלים משתנה חדש מטיפוס int בשם i שיספור כמה פעמים גוף הלולאה כבר התבצע, בהתחלה משתנה זה מכיל את הערך 0 .
קטע הקוד i < 3 מתבצע לפני כל ריצה של גוף הלולאה, אם הערך הוא true גוף הלולאה מתבצע, אחרת התוכנית מפסיקה את הלולאה ועוברת לקטע קוד שמופיע אחריה.
קטע הקוד ++i מתבצע אחרי כל ריצה של גוף הלולאה, תפקידו לקדם את הערך במשתנה i כדי לספור כמה פעמים התבצע גוף הלולאה.
לבסוף, קטע הקוד Console.WriteLine משמש בתור גוף הלולאה, זהו הקוד שנרצה שירוץ בכל פעם.
אפשר גם לשנות את האפשריות למעלה כלומר יכול להיות שנציב i שווה ל 3 ונקטין אותו עד שיגיע לאפס למשל:
for (int i = 3; i >= 0; --i) { Console.WriteLine("Welcome to C#"); }
באופן כללי, לולאת for נראית בצורה הבאה:
for (before-statement; condition; after-statement)
{
//loop-body
}
דוגמאות נוספות לשימוש בלולאת for
- קליטת שם משתמש והדפסתו 10 פעמים
Console.Write("Enter name: "); string name = Console.ReadLine(); for (int i = 0; i < 10; ++i) { Console.WriteLine("Your name is " + name); }
- הדפסת המספרים הזוגיים בין 1 ל 10:
for (int i = 0; i <= 10; i += 2) { Console.WriteLine(i); }
- הדפסת סכום 1+2+3 וכו’ עד 10:
int sum = 0; for (int i = 1; i <= 10; ++i) { sum += i; } Console.WriteLine("Sum is: " + sum);
לולאת while
לולאת while הינה עוד סוג של לולאה בשפת #C, כלומר היא נשתמש בה כאשר נרצה לבצע קטע קוד מספר לא ידוע מראש כלשהוא של פעמים.
ללולאת while יש את המבנה הבא:
while (condition)
{
statements
}
במבנה הזה הביטוי condition הוא תנאי שהלולאה בודקת לפני ביצוע גוף הלולאה. גוף הלולאה מתבצע רק אם הביטוי condition מחזיר ערך true.
הביטוי statements הוא גוף הלולאה.
לדוגמא, התוכנית הבאה מבצעת הדפסה של המחרוזת “Using while loop” 3 פעמים:
int i = 0; while (i < 3) { ++i; Console.WriteLine("Using while loop"); }
נעיר כי תוכנית זו יכלה גם להשתמש בלולאת for כפי שראינו בחלק הקודם.
להלן דוגמא נוספת, בה אנו קולטים שמות מהמשתמש ומדפיסים הודעת “Welcome” לכל אחד מהשמות, עד אשר המשתמש מכניס שם ריק “”:
Console.WriteLine("Enter name: "); string name = Console.ReadLine(); while (name != "") { Console.WriteLine("Welcome " + name + "!"); name = Console.ReadLine(); }
שימו לב שבדוגמא זו לא ידוע מראש כמה פעמים גוף הלולאה יתבצע, מאחר וזה תלוי בקלט של המשתמש.
while או for?
באופן כללי, כל לולאת for ניתן לכתוב גם כלולאת while ולהיפך, שכן קטעי הקוד הבאים שקולים:
לולאת for כללית:
for (before-statement; condition; after-statement)
{
loop-body
}
לולאת while שקולה:
before-statement
while (condition)
{
loop-body
}
after-statement
בדרך כלל נבחר להשתמש בלולאת for כאשר ידוע מספר הפעמים שגוף הלולאה יתבצע ואילו נשתמש בלולאת while כאשר מספר הפעמים לא ידוע מראש ותלוי באיזשהו תנאי מורכב יותר.
המחלקה Math מכילה בתוכה קבועים ופונקציות סטטיות מתמטיות, טריגונומטריות ולוגריתמיות. מכיוון שמחלקה זו מוגדרת כסטטית אין צורך (וגם לא ניתן) ליצור ממנה אובייקט חדש.
כל הפונקציות במחלקה מחזירות ערכים מספריים שונים שהינם תוצאות של חישוב המתבצע על הפרמטרים המוזנים לפונקציות. למשל, העלאה בחזקה של מספר נתון, עיגול מספרים וכו’.
פונקציות עיקריות במחלקת Math
ערך מוחלט –
Math.Abs(מספר)
פונקציה זו מקבלת מספר ומחזירה את הערך המוחלט של המספר. לדוגמה:
double num = Math.Abs(-2.6);
Console.WriteLine(num);
פלט: 2.6
העלאה בחזקה –
Math.Pow(מספר, מספר)
פונקציה זו מקבלת 2 מספרים ומחזירה את המספר הראשון בחזקת המספר השני. לדוגמה:
double num = Math.Pow(2, 3);
Console.WriteLine(num);
פלט: 8
שורש ריבועי –
Math.Sqrt(מספר)
פונקציה זו מקבלת מספר ומחזירה את השורש הריבועי שלו. לדוגמה:
double num = Math.Sqrt(9);
Console.WriteLine(num);
פלט: 3
עיגול מספרים עשרוניים (לא שלמים) למספרים שלמים
קיימות 3 פונקציות לעיגול מספר לא שלם למספר שלם: עיגול כלפי השלם הקרוב, עיגול כלפי מעלה ועיגול כלפי מטה.
השלמת מספר למספר השלם הקרוב ביותר –
Math.Round(מספר עשרוני)
פונקציה זו מקבלת מספר ומעגלת את המספר למספר השלם הקרוב אליו לפי הכללים המתמטיים. לדוגמה:
double num = Math.Round(2.49);
Console.WriteLine(num);
פלט: 2
להשלים את המספר כלפי מעלה –
Math.Ceiling(מספר עשרוני)
פונקציה זו מקבלת מספר ומחזירה את השלם הקרוב ביותר שגדול או שווה למספר שניתן (עיגול המספר כלפי מעלה). לדוגמה:
double num = Math.Ceiling(4.2);
Console.WriteLine(num);
פלט: 5
השלמה כלפי מטה –
Math.Floor(מספר עשרוני)
פונקציה זו מקבלת מספר ומחזירה את השלם הקרוב ביותר שקטן או שווה למספר שניתן (עיגול המספר כלפי מטה). לדוגמה:
double num = Math.Floor(4.8);
Console.WriteLine(num);
פלט: 4
השוואת שני מספרים
Math.Max(מספר, מספר)
פונקציה זו מקבלת 2 מספרים ומחזירה את המספר הגדול מביניהם. לדוגמה:
double num = Math.Max(2, 6);
Console.WriteLine(num);
פלט: 6
Math.Min(מספר, מספר)
פונקציה זו מקבלת 2 מספרים ומחזירה את המספר הקטן מביניהם. לדוגמה:
double num = Math.Min(2, 6);
Console.WriteLine(num);
פלט: 2
קבועים של Math
בנוסף לפונקציות, מחלקת Math מכילה גם 2 קבועים:
- PI (יחס ההיקף של עיגול – 3.14)
- E (הבסיס לוגריתמי הטבעי – 2.71)
הקבוע PI –
Math.PI
קבוע זה מחזיר את הערך של פי עד לדיוק של 14 ספרות אחרי הנקודה. לדוגמה:
double num = Math.PI;
Console.WriteLine(num);
פלט: 3.14159265358979
Published: Apr 1, 2020
Latest Revision: Apr 2, 2020
Ourboox Unique Identifier: OB-762205
Copyright © 2020