Presentation is loading. Please wait.

Presentation is loading. Please wait.

ניתוח מערכות מידע תכנות ב C#

Similar presentations


Presentation on theme: "ניתוח מערכות מידע תכנות ב C#"— Presentation transcript:

1 ניתוח מערכות מידע תכנות ב C#
נעים להכיר...

2 תוכנית ראשונה ב C# using System; class FirstProgram {
static void Main(string[] args) Console.WriteLine("Let's Learn C#"); }

3 ; בסוף כל פקודה יש ;

4 משתנים (variables) משתנה הוא שם של מקום בזכרון.
משתנה מוגדר ע"י הגדרת השם שלו והטיפוס שלו. טיפוס – מתאר את סוג המידע שהמשתנה יחזיק. int total; int count, temp, result; (data type)טיפוס (variable name) שם ניתן לאתחל משתנים בהצהרה ניתן אף לאתחל מספר משתנים יחד int sum = 0; int base = 32, max = 149;

5 השמה (assignment) השמה משנה ערך של משתנה אופרטור ההשמה הוא הסימן =
total = 25; total מקבל את הערך 25. הערך שהיה בתוךtotal נמחק אפשר לשים רק ערך שמתאים לטיפוס של המשתנה.

6 דוגמא משתנים והשמה להוסיף... using System; class Program {
static void Main(string[] args) int x = 5; int y; y = 2 * x; Console.WriteLine(y); } להוסיף...

7 פקודת הקלט והערות ReadLine – קורא שורה רישום הערות
השורה נקראת כמחרוזת (String) אם רוצים לקרוא מספר יש להמיר (נראה בהמשך) ניתן להשתמש בסוף תוכנית כדי לגרום למסך הריצה להשאר יצא כשנלחץ return רישום הערות // this is a comment /* this is a comment On more than one line*/

8 דוגמא - טיפול בקלט ופלט using System; class IOProgram {
דוגמא - טיפול בקלט ופלט using System; class IOProgram { static void Main(string[] args) Console.WriteLine("Please Type Something:"); String x; x = Console.ReadLine(); Console.WriteLine("You typed {0}" , x ); Console. ReadKey(); }

9 WriteLine מדפיס למסך את מה שנמצא בין גרשיים "XXX"
ניתן לשלב טיפול במשתנים הם ממוספרים לפי סדר הופעתם Console.WriteLine("You typed {0}" , x ); ידפיס את הערך של x Console.WriteLine("You typed {0,1}" , x , y ); ידפיס את הערך של x ואז את הערך של y ניתן לשרשר מחרוזות ע"ישימוש ב + Console.WriteLine("You typed “ + x + y); ידפיס גם כן את הערך של x ואז את הערך של y

10 קלט של מספרים using System; class numberProgram {
static void Main(string[] args) String x; int y; Console.WriteLine("Enter a number:"); x = Console.ReadLine(); y = int.Parse(x); Console.WriteLine("You typed {0}" ,x); Console.WriteLine("Adding 2 makes: {0} or {1}", x+2, y+2 ); Console. ReadKey(); }

11 טיפוסים integers - מספרים שלמים
byte, short, int, long… floating point - מספרים בעלי נקודה עשרונית float, double… strings - מחרוזות String כל דבר בין " " אוטומטית יוגדר מחרוזת characters - תוים בודדים char, ‘a’ ‘\0’ ‘\n’ … boolean - בוליאני Boolean(מקבל ערך true אוfalse )

12 טבלת תוים מיוחדים לשימוש במחרוזות
משמעות התו Single Quote \’ Double Quote \” Backslash \\ Null, not the same as the C# null value \0 Bell \a Backspace \b form Feed \f Newline \n Carriage Return \r Horizontal Tab \t Vertical Tab \v

13 ביטויים מתמטים פעולות מתמטיות
מוגדרות על טיפוסים מסוג integer ו- floating point + (חיבור) - (חיסור) * (כפל) / (חילוק) (כמו \ ב VB) % (שארית, נקרא גם מודולוס) (כמו Mod ב VB)

14 פקודת if פקודת if נכתבת באופן הבא:
הביטוי (condition) חייב להיות ביטוי בוליאני – כלומר ערכו אמת - true או שקר - false if מילה שמורה if ( condition ) statement; אם הביטוי (condition) אמת (true) מבוצעת ההצהרה (statement) אם הביטוי (condition) שקר (false) מדלגים על ההצהרה (statement)

15 פקודת if-else ניתן להוסיף לפקודה if פקודת else ולייצר פקודת if-else.
if ( condition ) statement1; else statement2; אם ערך הביטוי conditionהואtrue בצע את statement1 אם ערך הביטוי conditionהואfalse בצע את statement2 יבוצע או statement1 או statement2 אבל לא שניהם

16 דוגמא - if using System; class ifProgram {
static void Main(string[] args) string x; x = Console.ReadLine(); if (x == "a" || x == "A") Console.WriteLine("A is for apple"); else if (x == "b" || x == "B") Console.WriteLine("B is for Boy"); else Console.WriteLine("Not defined"); Console.ReadKey(); }

17 ביטויים בוליאנים אופרטורים של השוואה המחזירים ערך בוליאני
== equal to (שווה) != not equal to (לא שווה) < less than (קטו מ) > greater than (גדול מ) <= less than or equal to (קטן או שווה ל) >= greater than or equal to (גדול או שווה ל) שימו לב להבדל בין האופרטור = לאופרטור ==

18 אופרטורים לוגיים בביטויים בוליאנים אפשר להשתמש גם באופרטורים לוגיים.
! Logical NOT && Logical AND || Logical OR האופרטורים הלוגיים מקבלים אופרנדים בוליאנים ומחזירים תוצאה בוליאנית האופרטור NOT הוא אופרטור אונרי -פועל רק על אופרנד אחד האופרטורים AND, OR הם אופרטורים בינרים כלומר פועלים על שני אופרנדים

19 הבדלים בין אופרטורים של VB ל C#
VB.NET Purpose / \ Integer division % Mod Modulus (division returning only the remainder) n/a ^ Exponentiation /= \= Integer division Assignment += &= NEW Concatenate %= Modulus &= Bitwise-AND ^= Bitwise-exclusive-OR |= Bitwise-inclusive-OR == = Equal != <> Not equal Is Compare two object reference variables x is Class1 TypeOf x Is Class1 Compare object reference type + & Concatenate strings && AndAlso Shortcircuited Boolean AND || OrElse Shortcircuited Boolean OR . and base . Scope resolution

20 הבדלים בין אופרטורים של VB ל C# המשך...
VB.NET Purpose [ ] () Array element (type) Cint, CDbl, ..., CType Type cast ++ n/a Postfix increment -- Postfix decrement ! Not Logical-NOT ~ One's complement Prefix increment Prefix decrement sizeof Size of type & And Bitwise-AND ^ Xor Bitwise-exclusive-OR | Or Bitwise-inclusive-OR && Logical-AND || Logical-OR ?: If Function () Conditional . (Unsafe mode only) Pointer to member

21 קבוצת הצהרות ניתן לקבץ יחד מספר הצהרות שיבוצעו אם הביטוי בפקודת ה if הוא אמת. נשתמש בסוגריים { } על מנת לתחום את ההצהרות. ניתן גם בפקודות אחרות ב C# לקבץ מספר הצהרות באותו אופן. if (total > MAX) { Console.WriteLine ("Error!!"); errorCount++; }

22 לפני תחילת ביצוע הלולאה איטרציה (סיבוב של הלולאה)
לולאת for סינטקס של פקודת for: initialization אתחול מבוצע פעם אחת לפני תחילת ביצוע הלולאה statement הצהרה מבוצעת עד שהתנאי condition נהיה שקר for ( initialization ; condition ; increment ) statement; increment הוספה מבוצעת בסוף כל איטרציה (סיבוב של הלולאה)

23 הגדרת משתנה באתחול ניתן להגדיר משתנה בתוך חלק האתחול.
for (int count=1; count <= 5; count++) Console.WriteLine(count); ניתן להגדיר משתנה בתוך חלק האתחול.

24 דוגמא - for using System; class ifProgram {
static void Main(string[] args) for (int i = 0; i < 100; i++) Console.WriteLine("The square root of {0} is {1} ", i, Math.Sqrt(i) ); Console.ReadKey(); }

25 הוספה (increment) בלולאת for
for (int num=0; num < 100; num ++) Console.WriteLine (num); בחלק הוספה ניתן לבצע כל פעולה for (int num=0; num <100; num += 5) Console.WriteLine (num); for (int num=100; num > 0; num -= 5) Console.WriteLine (num);

26 לולאת while סינטקס של פקודת while: while ( condition ) statement;
אח"כ התנאי נבדק שוב אם ערכו עדיין 'אמת' ההצהרה מבוצעת שוב ההצהרה מבוצעת שוב ושוב עד שהתנאי נהיה 'שקר' int count = 1; while (count <= 5) { Console.WriteLine(count); count++; }

27 דוגמא לשימוש בלולאה – בדיקת קלט
הבעיה: רוצים לקלוט מספרים מהמשתמש דרוש לקלוט מספרים בטווח מסויים פתרון: נשתמש בלולאה כל עוד לא קיבלנו קלט מתאים נבקש ונקלוט קלט נוסף

28 דוגמא - while int won; double ratio;
using System; class FirstProgram { static void Main(string[] args) int NUM_GAMES = 12; int won; double ratio; Console.WriteLine("Enter num of games won (0 to {0})", NUM_GAMES); string tmp = Console.ReadLine(); won = int.Parse(tmp); while (won < 0 || won > NUM_GAMES) Console.WriteLine ("Invalid input. Please reenter: "); tmp = Console.ReadLine(); } ratio = (double)won / NUM_GAMES; Console.WriteLine ("Winning percentage is: {0}", ratio);

29 דוגמא ללולאת do יודפס הגוף של לולאת do מבוצע לפחות פעם אחת! 1 2 3 4 5
int count = 0; do { count++; Console.WriteLine (count); } while (count < 5); יודפס הגוף של לולאת do מבוצע לפחות פעם אחת!

30 פקודת switch switch ( expression ) { case value1 : statement-list1
jump-statement case value2 : statement-list2 case value3 : statement-list3 ... } switch וגם case מילים שמורות אם expression מתאים לvalue2- הבקרה עוברת לכאן

31 שימוש ב break, default בתוך switch
למשל break, continue ניתן ומקובל לייצר מקרה של ברירת מחדל בשם default גם כאן יש להשתמש בפקודת קפיצה switch (option) { case 'A': aCount++; break; case 'B': bCount++; case 'C': cCount++; default: }

32 int grade, category; Console.WriteLine("Enter a numeric grade (0 to 100): "); string tmp = Console.ReadLine(); grade = int.Parse(tmp); category = grade / 10; switch (category) { case 10: Console.WriteLine("Perfect score. Well done."); break; case 9: Console.WriteLine("Well above average. Excellent."); case 8: Console.WriteLine("Above average. Nice job."); case 7: Console.WriteLine("Average."); default: Console.WriteLine("Study some more."); }

33 מערכים בC#

34 מערך (תזכורת?) נניח שרוצים אוסף של משתנים מאותו הסוג
למשל: רשימת ציונים, רשימת סטודנטים מתאים להשתמש במערך grades students Id: 333 Liat 2 courses Id: 444 Sivan 0 courses Id:111 Michal Id: 222 Ronit 3 courses

35 מערך – הצהרה ויצירה ניתן להצהיר על מערך באופן הבא: int[] scores;
הצהרה כנ"ל מגדירה רק קיום של מערך ללא המערך עצמו scores מצביע כעת לכתובת null אם רוצים לייצר מופע (instance) של המערך נשתמש ב new: scores = new int[10]; זה יגדיר מערך של 10 int

36 דוגמאות להצהרה ויצירה int[] prices = new int[500]; bool[] flags;
int length = 20; flags = new bool[length]; char[] codes = new char[1750]; מערך שגודלו נקבע בזמן ריצה: int n = int.Parse(Console.ReadLine()); int[] a = new int[n];

37 מערכים – גישה לתא בודד scores מתיחסים לתא בודד במערך ע"י [ ] (סוגריים מרובעים) למשל scores[3] מתיחס לתא הרביעי במערך, וערכו 82. התא הראשון הוא scores[0] המערך הזה הוא של int ולכן בתא בודד ניתן להשתמש כמו כל int אחר int a = scores[2]; mean = (scores[0] + scores[1])/2; Console.WriteLine ("Top = " + scores[5]);

38 אורך מערך Length מייצג את מספר האיברים במערך ידפיס 10 שימו לב:
int a = scores.Length; ל a יהיה הערך 10 Console.WriteLine(scores.Length); ידפיס 10 שימו לב: Length מכיל את מספר האיברים ולא האינדקס הכי גבוה! האינדקס הכי גבוה הוא Length-1

39 רשימת אתחול ניתן ליצור מערך ולמלא בו ערכים ע"י שימוש ברשימת אתחול
ניתן ליצור מערך ולמלא בו ערכים ע"י שימוש ברשימת אתחול int[] units = {147, 323, 89, 933, 540, 269, 97, 114} char[] letterGrades = {'A', 'B', 'C', 'D', 'F'}; הערכים מופרדים ע"י פסיק גודל המערך נקבע לפי אורך הרשימה אין צורך להשתמש ב new אפשר להשתמש ברשימת אתחול רק בזמן הגדרת המערך

40 דוגמא 1 - הדפסת כל האיברים במערך
יש לעבור על המערך (נעבור על כל התאים שלו) אורכו arr.Length נדפיס את התוכן של התא int[] arr = {1,2,3,4,5}; for(int i =0; i<arr.Length; i++) { Console.WriteLine(arr[i]); }

41 דוגמא 2 – שימוש בפונקציה נגדיר מערך נמלא במספרים את המערך
נשתמש בפונקציה לחיפוש במערך הפונקציה תחזיר לנו את המיקום של איבר במערך נדפיס את מיקום האיבר שחיפשנו

42 דוגמא 2 - main שימו לב! נגדיר פונקציה שמחפשת במערך
static void Main(string[] args) { int[] arr; //define array pointer arr = new int[10]; // allocate space for array //fill array for (int i = 0; i < 10; i++) arr[i] = i*10; //look for a number in the array, and print its place int result, num1 = 20; result = find(arr, num1); //call the function find if (result != -1) {//check the result returned from the function Console.WriteLine(" the number {0} is in place {1}", num1, result); } שימו לב! נגדיר פונקציה שמחפשת במערך

43 דוגמא 2 - הפונקציה static int find(int[] arr, int num) {
for(int i=0; i<arr.Length; i++) if (arr[i] == num) return i; } return -1;

44 דוגמא 2 – איך מרכיבים את הכל?
class Program { static int find(int[] arr, int num) התוכן של הפונקציה find } static void Main(string[] args) התוכן של הפונקציה Main

45 פתיחת פרויקט C#

46

47 הסברים נוספים לטבלת תווים מיוחדים לשימוש במחרוזות
Single Quote – מוסיף גרש במחרוזת \’ Double Quote – מוסיף גרשיים במחזורת \” Backslash – מוסיף קו לכסוני במחרוזת \\  null value – תו ריק באמצע המחרוזת, נראה כמו רווח. \0 Bell – גורם לצלצול \a Backspace – מוחק תו אחד במחרוזת \b form Feed - מעבר לדף הבא – רלוונטי בהדפסה \f - Newline עובר שורה חדשה במחרוזת \n Carriage Return – חוזר לתחילת שורה \r Horizontal Tab – מוסיף רווח של טאב \t Vertical Tab – אמור לרדת למטה – הוראה למדספת \v

48 ביטויים מתמטיים – הערה על חילוק
/ (חילוק) (כמו \ ב VB) אם רוצים שהתוצאה לא תתעגל צריך להמיר לטיפוס עשרוני int x = 5; int y =3; int z = 4; double ans; ans= x / y; Console.WriteLine("answer is: " + ans); ans = (double)x / y; Console.WriteLine("casting to double is: " + ans);

49 הערה על = ו == = פירושו השמה == פירושו השוואה
לכן הקומפיילר מודיע על שגיאה אם כותבים if (x=y) נכון לרשום: if (x==y)


Download ppt "ניתוח מערכות מידע תכנות ב C#"

Similar presentations


Ads by Google