שיעור 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‬‬
‫© המרכז להוראת המדעים‬
‫האוניברסיטה העברית בירושלים‬