שיעור 1 - עוברים לסי שארפ 511 Kb
Transcription
שיעור 1 - עוברים לסי שארפ 511 Kb
עוברים לסי שארפ 1 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים ?נראה מוכר /*This program prints “Hello C#” */ public class Test { public static void Main (string[] args) { //prints a sentence Console.WriteLine (“Hello C#”); }//end of main }//end of class © המרכז להוראת המדעים האוניברסיטה העברית בירושלים 2 לסישארפ כללים משלה • נקודה פסיק ; -מסיים פקודה • סוגריים מסולסלים :פותחים } וסוגרים { -מגדירים בלוק • איזון סוגריים: public class Test { … … 3 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים } )הבנת הנקרא – קונבנציות (מוסכמות (indentation) • הזחה :• חלוקה במקומות לוגיים ונוחים לקריאה /* This program prints “Hello C#” */ public class Test { public static void Main (string[] args) { //prints a sentence Console.WriteLine (“Hello C#”); }//end of main }//end of class © המרכז להוראת המדעים האוניברסיטה העברית בירושלים 4 ... אבל,אפשר היה גם ככה /* This program prints “Hello C#” */ public class Test{public static void Main (string[] C#”);}//end of main args){Console.WriteLine(“Hello }//end of class © המרכז להוראת המדעים האוניברסיטה העברית בירושלים 5 מה המשמעות של ה X-הזה? • שמות מחלקות מתחילים באותיות גדולות: … {public class TestProgram • שמות משתנים מתחילים באותיות קטנות: ;int numOfStudents = 5 • מילים שמורות -באותיות קטנות ).(lower case • שמות של פעולות מתחילים באותיות גדולות: … { )(double GetAverage 6 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים ?מה התכוונתי שהתוכנית הזו תעשה :(comments) • הערות /* …*/ או בקטע// בשורה /*This class prints quotes related to Albert Einstein*/ public class QuotesRelatedToEinstein{ //number of quotes the program prints int numberOfQuotes = 5; … } © המרכז להוראת המדעים האוניברסיטה העברית בירושלים 7 טיפוסים בסיסיים • מספרים: byte, short, int, long, float, double • טיפוס לוגי: bool • תווים: char ;’char theFirstLetterOfTheAlphaBet = ’a 8 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים איך הופכים intלdouble- המרה בין טיפוסי משתנים – Casting שום דבר לא ילך לאיבוד C# :תדאג להמרה אוטומטית ;double price = 14 9 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים איך הופכים doubleלint - המרה בין טיפוסי משתנים – Casting משהו פה עלול ללכת לאיבוד! ;int price = 0.8 בטיחות! ;)int price = (int)(0.8 10 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים כללי אצבע .1נקודה-פסיק בסוף כל פקודה. .2לשמור על איזון סוגריים. .3הקפדה על אינדנטציה .קוד מוזח נכון ,מחולק באופן לוגי ומסודר. .4שמות ברורים ובעלי משמעות. .5שם מחלקה ושם פעולה -מתחילים באות גדולה. .6שם משתנה -מתחיל באות קטנה וכל מילה נוספת בשם מתחילה באות גדולה. .7מילים שמורות נכתבות באותיות קטנות. .8המרה :הרחבת הנתון – אוטומטי ,צמצום הנתון -יש להיזהר! 11 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים תנאים ולולאות ()if-else,while,for 12 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים if-else מבנה כללי: )if (condition { ;statement : } else { ;statement : 13 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים } = אינו שווה ל == == משמש להשוואה בין ביטויים = משמש להצבה במשתנים )if (i=j לא יעבור את שלב ההידור )if (i= =j 14 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים Are you csharpholic? int cSharpCups; // get value from user if (cSharpCups <= 5) { Console.WriteLine (“You are not a csharpholic"); } else{ if ( cSharpCups > 5 && cSharpCups <= 9 ) { Console.WriteLine (“Careful!"); } else{ Console.WriteLine ("You’re a csharpholic! See a doctor" ); } © המרכז להוראת המדעים 15 } האוניברסיטה העברית בירושלים switch switch (expression) { case A : do something; break; case B : do something; break; default: do something; break; } © המרכז להוראת המדעים האוניברסיטה העברית בירושלים 16 ::לדוגמה לדוגמה int player; // a random number from 1 to 2 Random rnd = new Random(); player = rnd.Next (1,3); switch (player) { case 1 : Console.WriteLine (“Player 1 – it’s your turn”); break; case 2 : Console.WriteLine (“Player 2 – it’s your turn”); break; default: // there is no default in this example…. break; } © המרכז להוראת המדעים האוניברסיטה העברית בירושלים 17 while מבנה כללי: )while (boolean condition { ;statement1 ;statement2 : } 18 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים do-while מבנה כללי: do { ;statement1 ;statement2 : ;)} while (boolean condition 19 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים for loop מבנה כללי: )for ( initialization; condition; update { ;statement1 : ;statement7 } כל עוד התנאי מתקיים -הפעולות בבלוק יתבצעו. 20 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים Let’s count to 10 for (int i = 1; i > 11 ; i++ ) { Console.WriteLine (“count:” + i ); } … © המרכז להוראת המדעים האוניברסיטה העברית בירושלים 21 כללי אצבע 2 .1לסימן +יש שני שימושים :שרשור וחיבור. = .2להצבה ו == להשוואה. switch .3אחד עדיף על אלף .if-else .4לא לשכוח breakבפקודת .switch .5היזהרו מלולאות אינסופיות. 22 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים סביבת הפיתוח – Microsoft Visual C# 2005 Express Edition, Ink עיינו במדריך הטכני 23 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים זמן תרגול (שעה) 7בום +תיקון טעויות 24 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים קלט פלט • פקודת הקלט Console.ReadLineאו Console.Readקולטת תמיד מחרוזת .לכן יש לבצע התאמה של הקלט לטיפוס הרצוי בעזרת הפעלת הפקודה.Parse :הטיפוס הרצוי על פקודת הקלט. ;))(int.Parse(Console.ReadLine למשל: • בפקודת הפלט ניתן לשרשר פלטים מסוגים שונים, בעזרת הסימן + • תרגיל – מחשבון גרפי 25 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים עצמים 26 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים שיעור 1 תכנות מונחה עצמים 27 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים מה בשיעור? • • • • 28 מהו תכנות מונחה עצמים עצם תכונות של עצם פעולות של עצם © המרכז להוראת המדעים האוניברסיטה העברית בירושלים מה זה תכנות מונחה עצמים? 29 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים דוגמה 1 • מערכת לבקרת תנועה. • מדמה את זרימת התנועה ,פקקי תנועה.. • העצמים במערכת: • • • • • 30 תמרורים מכוניות משאיות הולכי רגל רמזורים © המרכז להוראת המדעים האוניברסיטה העברית בירושלים דוגמה 2 • מערכת לניהול שעות לימוד בבית ספר. • שיבוץ מורים ,מקצועות ,תלמידים ,כיתות... • העצמים במערכת: • • • • • 31 תלמידים כיתות חדרים מורים מקצועות לימוד © המרכז להוראת המדעים האוניברסיטה העברית בירושלים דוגמה 3 • מערכת גרפית לציור. • מאפשרת לצייר צורות גרפיות ולעבד אותן על המסך. • העצמים במערכת: • • • • 32 עיגולים מרובעים קווים פוליגונים © המרכז להוראת המדעים האוניברסיטה העברית בירושלים ממה מורכב עצם? תכונות :מתארות מצב פעולות :מתארות פעולות שניתן לבקש מהעצם לבצע 33 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים ממה מורכב עצם? תכונות )( attributes פעולות )(members )(methods 34 איברים © המרכז להוראת המדעים האוניברסיטה העברית בירושלים ממה מורכב עצם? פעולות: • מתארות התנהגות של העצם. • יכולות לשנות את התכונות של העצם. • יכולות לאחזר את התכונות של העצם. • יכולות לתקשר עם עצמים אחרים. 35 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים דוגמה – 1מרובע תכונות • רוחב 7 :ס"מ • אורך 5 :ס"מ • צבע מילוי" :אדום" • מיקום(3,6) : פעולות • מלא-בצבע()color • הזז()x,y • אחזר-אורך() •אחזר מיקום() 36 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים דוגמה – 2מכונית תכונות • דגם :פיאט אונו • מהירות 0 :קמ"ש • צבע" :אדום מטאלי" פעולות •סע() •עצור() •שנה-מהירות(מהירות רצויה) •אחזר-מהירות() 37 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים הטיפוס קופסה ()Box 38 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים ממשק תיאור הפעולה הפעולה הבונה של המחלקה קופסה .הפעולה מקבלת פרמטרים: אורך ,רוחב וגובה ובונה קופסה חדשה בהתאם לפרמטרים אלו כותרת הפעולה )Box (double length, double width, double height הפעולה מחזירה את האורך )(double GetLength הפעולה מחזירה את הרוחב )(double GetWidth הפעולה מחזירה את הגובה )(double GetHeight הפעולה משנה את האורך על פי הערך המתקבל כפרמטר )void SetLength (double newLength הפעולה משנה את הרוחב על פי הערך המתקבל כפרמטר )void SetWidth (double newWidth הפעולה משנה את הגובה על פי הערך המתקבל כפרמטר )void SetHeight (double newHeight הפעולה מחשבת את הנפח של הקופסה הפעולה מחזירה מחרוזת המתארת את הקופסה בפורמט: A Box: length,width,height © המרכז להוראת המדעים 39 האוניברסיטה העברית בירושלים )(double GetVolume )(string ToString הפעולה הבונה • מגדירה דרך לייצר עצם מטיפוס המחלקה • יצירת קופסה באורך ,5ברוחב 3.2ובגובה 10 ;)new Box(5, 3.2, 10 • יצירת קופסה באורך ,3ברוחב 2ובגובה 1.3 ;)new Box(3, 2, 1.3 40 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים הפניות ;Box b1 b1 ;)b1 = new Box(5,3,1.0 b1 41 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים הפניות public class Test { public static void Main (string[] args) { Box b1 = new Box (2, 4, 7); Box b2 = new Box (5, 3, 1); Box b3 = new Box (10, 0.2, 2); } } b1 b2 b3 © המרכז להוראת המדעים האוניברסיטה העברית בירושלים 42 פעולות נוספות • פעולות המחזירות ערכים • פעולות הקובעות ערך של תכונה על פי פרמטר • זימון פעולה ע"י סימון-הנקודה ()dot notation ;)Box b1 = new Box(2,2,2 נקודה פסיק ;)b1.SetLength(5 שם העצם פרמטר 43 הפעולה © המרכז להוראת המדעים האוניברסיטה העברית בירושלים נקודה פעולות נוספות public static void Main (string[] args) { Box b1 = new Box (2, 4, 2); Box b2 = new Box (1, 1, 1); b1.SetLength(3); b2.SetWidth(b1.GetHeight()); double x1 = b1.GetVolume(); string str = b2.ToString(); Console.WriteLine (x1); Console.WriteLine (str); } © המרכז להוראת המדעים האוניברסיטה העברית בירושלים 44 מחלקות מוכנות • • • • 45 קיימות ספריות סטנדרטיות בתוכן מחלקות מוכנות לשימוש לכל מחלקה מוצג הממשק שלה ותיאורה דוגמה :המחלקה string © המרכז להוראת המדעים האוניברסיטה העברית בירושלים