יסודות מדעי המחשב C# 1 תקציר הוראות השפה בC# - טיפוסי משתנים בסיסיים )פרימיטיבים( בשפת :C# מספרי שלם int )בתחום (±2,147,483,648 long מספרי שלם ארוך double מספר ממשי char תו string מחרוזת קבועים של המחלקה ):(static ; ערך-הקבוע = שם-הקבוע טיפוס-נתונים static const דוגמא: ;static const int N = 10 ;static const double X = 2.34 הגדרת משתנים: ;int a, b ;double x, y מבנה התכנית בשפת :C# ;using System שם-המחלקה public class { )public static void Main(String[] args { ;הגדרת המשתנים ;הוראה ;הוראה } } הערות הערת שורה // הערת קטע הנמשכת על פני כמה שורות */ */הערה */ */ • ב C# -יש חשיבות לגודל אות )(case sensitive www.kadman.net הילה קדמן יסודות מדעי המחשב קלט/פלט: C# 2 מחרוזות הפלט יכתבו במחשב באנגלית .במחברת הבחינה אפשר גם בעברית ;)"מחרוזת"( Console.Write ;)"מחרוזת"( Console.WriteLine פלט מחרוזת ;)שם-משתנה( Console.Write ;)שם-משתנה + " " +שם-משתנה( Console.Write הדפסת תוכן משתנה ;)שם-משתנה( Console.WriteLine ;)שם-משתנה + " " +שם-משתנה( Console.WriteLine ;)" מחרוזת " +שם-משתנה( Console.Write ;)" מחרוזת " +שם-משתנה " +מחרוזת"( Console.Write הדפסת משתנים ומחרוזות ;)" מחרוזת " +שם-משתנה( Console.WriteLine ;)"מחרוזת"+שם-משתנה "+מחרוזת"( Console.WriteLine ;))(int a = int.Parse (Console.ReadLine קלט מספר שלם ;))(double x = double.Parse (Console.ReadLine קלט מספר ממשי ;)(char tav = (char)Console.ReadLine קלט מספר תו ;)(string str = Console.ReadLine קלט מחרוזת דגשים • בכל הוראת קלט ניתן לקלוט בדיוק משתנה אחד. • לפני כל הוראת קלט יש להציג בקשה: ;)" → הקש מספר שלם"( Console.Write ;))(int a = int.Parse (Console.ReadLine הוראות השמה: מספר אתחול בהגדרה הצבת קבוע מחרוזת תו ;int a = 0 מחרוזת ריקה String str = "" ; // תו רווח char ch = ' '; // ;a = 5 ;"str = "hello ; 'ch = 'b פעולות חישוביות: נתונים המשתנים הבאים: ;int a, b, c ;double x, y, z חיבור ;c = a + b חיסור ;c = a – b כפל ;c = a * b www.kadman.net הילה קדמן יסודות מדעי המחשב C# 3 שלם /שלם ← שלם חילוק: ממשי /ממשי ← ממשי שלם /ממשי ← ממשי שלם /שלם) ← (doubleממשי חילוק בממשיים לפחות אחד המשתנים המשתתפים // • המרה מפורשת בפעולה החישוב חייב להיות ממשי // ;z = x / y ;z = (double)a / b ;c = a / b חילוק בשלמים )מנה( ;c = a % b שארית • המרה -ניתן להמיר משלם לממשי ולהיפך בהמרה מפורשת ).(casting קיצורים: הגדלה עצמית ; a ++ הקטנה עצמית ; a -- הוראות השפה: סוגי יחס שווה == שונה =! גדול מ> - גדול או שווה => קטן מ< - קטן או שווה => בלוק הוראות: { בלוק הוראות } אם ... )הוראה יחידה( אם ... )בלוק הוראות( www.kadman.net )פסוק-לוגי( if ;ביצוע )if (a > 5 ;b = b + 1 )פסוק-לוגי( if { ;הוראה ;הוראה } )if (a = = 3 { ;c = b * 2 ;)"התוצאהConsole.WriteLine (c + " : } הילה קדמן C# 4 יסודות מדעי המחשב if (a != 5) b = b + 1; else b = b – 1; if (לוגי-)פסוק 1;ביצוע else 2;ביצוע ... אחרת...אם if (a > 3) { Console.Write (";)" → הקש מספר b = int.Parse (Console.ReadLine()); } else { b = a; c = c + 1; } if (לוגי-)פסוק { 1;הוראה 2;הוראה } else { 3;הוראה 4;הוראה } ... אחרת...אם switch (a) { case 1 : Console.WriteLine ("one") ; case 2 : Console.WriteLine ("two") ; break ; case 3 : case 4 : case 5 : Console.WriteLine ("five") ; case 6 : Console.WriteLine ("six") ; break ; default: Console.WriteLine ("bigger then six") ; } ()הוראה יחידה ()בלוק הוראות switch ()משתנה { case 1- ערך: 1;ביצוע break; case 2- ערך: 2;ביצוע break; case 3- ערך: ;הוראה ;הוראה break; case 4- ערך: 4;ביצוע :הפלט break; default : 5;ביצוע break; } ברירת החלטה • המשתנה הנבדק הוא מטיפוס :סדור מספר שלם או תו ההוראות -מתבצעות עד ה break ניתן לבחון רק ערכים בדידים ניתן לבחוןC# -ב גם מחרוזות קשרים לוגיים && וגם || או ! לא if ( a > 3 && (b = = 5 || c != 0) ) … הילה קדמן www.kadman.net C# 5 יסודות מדעי המחשב :משתנה בוליאני :השמה למשתנה בוליאני bool b = (num1 > num2); :ביטויים שקולים bool b; if (num1 > num2) b = true ; else b = false ; bool found = … ; // true אוfalse ; if (found) … if (found = = true) … ביטויים שקולים if ( ! found ) … if (found = = false) … ביטויים שקולים :לולאות for (תחילי = אינדקס-סיום =< אינדקס ; ערך-אינדקס ; ערך-)קידום { ;הוראה ;הוראה } --------------int a, sum - 0; for ( i = 1 ; i <= 5 ; i++) { Console.Write (";)" → מספר שלם a = int.Parse (Console.ReadLine()); sum = sum + a; } for (תחילי = אינדקס-סיום => אינדקס ; ערך-אינדקס ; ערך-)הקטנת { ;הוראה ;הוראה } --------------double x, sum = 0; for ( i = 5 ; i >= 1 ; i --) { Console.Write (" ;)" → מספר ממשי x = double.Parse (Console.ReadLine()); sum = sum + x; } Console.WriteLine (sum + " :;)"סכום המספרים הילה קדמן for לולאת ()לולאה עולה for לולאת ()לולאה יורדת www.kadman.net C# 6 יסודות מדעי המחשב while (לוגי-)ביטוי { ;הוראה ;הוראה } --------------int sum = 0; Console.Write (";)" → מספר ראשון int a = int.Parse (Console.ReadLine()); while (a != 999) { sum = sum + a; Console.Write (";)" → עוד מספר a = int.Parse (Console.ReadLine()); } Console.WriteLine (sum + " :;)"סכום המספרים while לולאת :פונקציות מתמטיות דוגמא תחביר מתקבל מוחזר int b = Math.Abs(a); double y = Math.Abs(x); Math.Abs(x) שלם ממשי שלם ממשי if (Math.Sqrt (x) > y) … Math.Sqrt (x) שלם ממשי ממשי double p = Math.Pow (x, b); Math.Pow (x, y) שלם ממשי ממשי Console.WriteLine ( Math.Round (7.853) ); Math.Round (x) שלם שלם ארוך עיגול לשלם הקרוב (4 ← 3.67) ממשי שלם ארוך עיגול החלק העשרוני double y = Math.Round(3.57,1); Math.Round (x, d) 3.6 יושםy -ב טיפוס הערך |x| ערך מוחלט x שורש ריבועי xy חזקה מספר אקראי Random rnd = new Random(); :הגדרת העצם n עד0 מספר שלם בתחום 0≤x<n ()לא כולל int x = rnd.next (n); int x = rnd.next (n) + 1; int x = rnd.next (a, b); ( )כוללn עד1 מספר שלם בתחום 1≤x≤n ( )לא כוללb עדa מספר שלם בתחום a הילה קדמן b www.kadman.net C# 7 יסודות מדעי המחשב שים לב! שם פעולה מתחיל באות גדולה static void ProcName ()פרמטרים { פעולות פעולה שאינה מחזירה ערך } (void )מוחזר ערך static void Aaa (int a, int b, double x) { int i; : } static מוחזר- טיפוסFuncName ()פרמטרים { פעולה המחזירה ערך : return ;ערך להחזרה } static double Sum (int a, int b, double x) { double total ; total = a + b + x; return total; } נתונים- ][ טיפוסarr = new נתונים-[טיפוס10]; int [] a = new int [7] ; double [] x = new double [N]; char [] arrChar = new char [25]; הגדרה x[2] = 2 * a[0] ; 0 1 ממדי-מערך חד פנייה לתא 2 3 4 5 6 a for (int i = 0 ; i < a.Length ; i ++) a[i] = i; סריקת מערך המערך-שם.Length גודל המערך הוא Length - 1 מספר התא האחרון במערך הוא הילה קדמן www.kadman.net C# 8 יסודות מדעי המחשב נתונים-[ טיפוס,] arr = new נתונים-[טיפוס5,7]; מערך ממדי-דו ()מטריצה int [,] mat = new int [6,7] ; double [,] x = new double [N,M]; :סכום התא ה"ראשון" והתא ה"אחרון" במערך פניה לתא mat[3,4] = mat [0,0] + mat [5,6]; Ö מספר השורות במטריצה Ö מספר העמודות במטריצה mat.GetLength(0) mat.GetLength(2) סריקת המערך for (int i = 0 ; i < mat.GetLength(0) ; i++) for (int j = 0 ; j < mat.GetLength(1) ; j++) mat [i,j] = …. string str ; מחרוזות str = "bla-bla-bla" ; str = new string ("bla-bla-bla") ; string str1 = Console.ReadLine(); קלט num = str.Length ; אורך // תכונה ולא פעולה str = st1 + str2 + "aaa" ; שרשור bool equal = str1.Equals(str2) ; if (str1 = = str2) equal = true; else equal = false; השוואה :ואפשר גם int n = str1.CompareTo (str2) ; str1 > str2 Ö n > 0 str1 < str2 Ö n < 0 str1 = = str2 Ö n = 0 ch = str[i] ; 0 ≤ i < str.Length() במחרוזתi תו int place = str.IndexOf (ch) ; חיפוש תו int place = str.IndexOf (ch, from) ; // 0 ≤ from < str.Length int place = str.IndexOf (subStr); int place = str.IndexOf (subStr, from) ; הילה קדמן מהיכן להתחיל לחפש מחרוזת-חיפוש תת // 0 ≤ from < str.Length מהיכן להתחיל לחפש www.kadman.net יסודות מדעי המחשב תת-מחרוזת 9 מ from-עד לסוף המחרוזת String str2 = str1.Substring (from); // מ len , from -תווים // 0 ≤ from + len < str1.Length החלפת תווים במחרוזת החלפת תת-מחרוזת במחרוזת אחרת C# ;)Srting str3 = str1.Substring (from, len מחליף את כל מופעי ch1בString str2 = str1.Replace (ch1, ch2); // ch2 - מחליף את כל המופעים String str2 = str1.Replace (oldStr, newStr); // שימו לב שלא קיימת פעולה המחליפה תת-מחרוזת בתו מחיקת תת-מחרוזת str1במחרוזת :strהחלף את str1במחרוזת ריקה: ;)"" string str2 = str.Replace (str1, www.kadman.net הילה קדמן
© Copyright 2024 Paperzz