תקציר פקודות השפה - אתר מדעי המחשב של הילה קדמן

‫יסודות מדעי המחשב‬
‫‪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‬‬
‫הילה קדמן‬