1 מבוא למדעי המחשב תרגול מספר 2. 2 בשיעור הקודם... הגדרות שפת מחשב, שפה עילית, קומפיילר, תוכנית בשפת C, קובץ הרצה קובץ (טקסט) המכיל תוכנית בשפת C (hello.c)

Slides:



Advertisements
Similar presentations
מבוא למדעי המחשב לתעשייה וניהול
Advertisements

Pointers הרצאה קריטית. השאלות הפתוחות מה זה ה- & שמופיע ב scanf מדוע כשמעבירים מחרוזת ל scanf אין צורך ב & האם ניתן להכריז על מערך שגדלו אינו ידוע בתחילת.
מבוא כללי למדעי המחשב תרגול 1. כתיבת התוכנה כתיבת התוכנית עצמה נעשית ע " י כתיבת קובץ טקסט רגיל אשר תוכנו מקיים את כללי שפת C כתיבת התוכנית עצמה נעשית.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
מבוא למדעי המחשב תרגול 2 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא כללי למדעי המחשב שיעור שני: שימוש במשתנים.
תכנות תרגול 6 שבוע : חישוב e זוהי הנוסחא לחישוב e נראה כיצד לתרגם אותה לפונקציה n n.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
תכנות תרגול 2 שבוע : שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה שלהם את ההפרש שלהם ואת הסכום שלהם.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
11 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב תרגול מספר 3.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מבוא למדעי המחשב © אריק פרידמן 1 מצביעים כמערכים דוגמה.
שיעור שישי: מערכים ופונקציות
מבוא כללי למדעי המחשב שיעור שלישי: בקרת זרימה.
1 מבוא למדעי המחשב מבנה של תכנית. 2 מבנה של תכנית – חלוקה לקבצים  תכנית בשפת C הינה אוסף של הגדרות של:  משתנים (חיצוניים)  פונקציות  ניתן לפרוש תכנית.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
מבוא למדעי המחשב מחרוזות, מצביעים וכתובות
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מנפה שגיאות - DEBUGGER מבוא למדעי המחשב (234114) רועי מלמד
תכנות תרגול 6 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
#include void main() { int i; char c; char st1[]="abcd"; for (i=-128;i
תכנות תרגול 10 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
תכנות תרגול 3 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 5 שבוע : לולאות for לולאות for for (counter=1 ;counter
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
קורס תכנות – סימסטר ב ' תשס " ח שיעור שישי: מערכים
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
מבוא למדעי המחשב תרגול מספר 1.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
תכנות תרגול 4 שבוע : לולאות for לולאות for for (counter=1 ;counter
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
Last time on Clang משתנה: "פתק" המשמש את המחשב לשמירת מידע. לכל משתנה יש שם וטיפוס כללים לשמות משתנים –חייבים להכיל רק אותיות, מספרים ו '_' –חייבים להתחיל.
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
1 מבוא למדעי המחשב מושגי יסוד. 2 אלפבית תווים המותרים בשימוש בתכניות C: אותיות לטיניות קטנות : a,b,c, …,z אותיות לטיניות גדולות : A,B, C, …,Z ספרות :
מבוא למדעי המחשב שפת c
מתמטיקה בדידה תרגול 2.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
מבוא למדעי המחשב תרגול 5 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
Structure. מה לומדים היום ? דרך לבנות מבנה נתונים בסיסי – Structure מייצר " טיפוס " חדש מתאים כאשר רוצים לאגד כמה משתנים יחד דוגמאות : עובד : שם, טלפון,
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
1 מבוא למחשב שפת C תרגילי חזרה. 2 תרגיל 1 : מחשבון קלט : תרגיל חשבוני המורכב ממספרים שלמים עם פעולות חשבוניות ביניהם. התרגיל מסתיים ב =. אפשריים רווחים.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
Programming Pointers. נדגים היום בעזרת מצביעים העברת משתנים לפונקציה שמשנה אותם  פונקציה שמקבלת מצביעים לסמן תא בזיכרון  פונקציה שמחזירה מצביע מערך.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Programming Arrays.
מבוא למדעי המחשב לתעשייה וניהול
אבני היסוד של תוכנית ב- JAVA
קלט/פלט, משתנים.
תירגול 14: מבני נתונים דינאמיים
פונקציות קרן כליף.
מבוא כללי למדעי המחשב פונקציות
מבוא כללי למדעי המחשב תרגול 4
מבוא כללי למדעי המחשב שיעור 2
תיכון אהל שם, רמת גן קורס PHP – הרצאה מס' 10
תזכורת על מה דיברנו שיעור שעבר? בנינו אתר אינטרנט עם כותרות
תוכנה 1 תרגול 13 – סיכום.
עקרונות בסיסיים בתכנות Visual Basic
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Presentation transcript:

1 מבוא למדעי המחשב תרגול מספר 2

2 בשיעור הקודם... הגדרות שפת מחשב, שפה עילית, קומפיילר, תוכנית בשפת C, קובץ הרצה קובץ (טקסט) המכיל תוכנית בשפת C (hello.c) קובץ המכיל תוכנית מקופלת (hello.obj) קובץ המכיל תוכנית הרצה (hello.exe) הידור (compile) קישור (link)

3 בשיעור הקודם... סביבות עבודה Turbo C new, save, save as, open, compile, link, run,... תהליך כתיבת תוכנית והרצתה מבנה תוכנית בשפת C

4 בשיעור הקודם... פונקציות printf, scanf משתנים הערות ( תיעוד פנימי ) משפטי תנאי לולאות קבועים

5 מה בתפריט היום ? קצת על טיפוסים פונקציות קלט / פלט Debugging

6 טיפוסים מהו משתנה ? מה הקשר בין טיפוס ומשתנה ? בשיעור הקודם נתקלנו במשתנים מטיפוס int double הצהרה על משתנים תחביר : variable_type variable_name; לדוגמא : int john;

7 הצהרה על משתנים int main(void) { int x; int y,z; int m = 3; double q; return 0; }

8 טיפוסים טיפוס נוסף, המאפשר שמירה של תו בודד, הוא char תו ( character ) הוא סימן לכל סימן יש מספר סידורי טבלת ASCII תו בתוכנית C תמיד מלווה בגרשיים ('A') הגרשיים מתרגמים את התו למספר הסידורי שלו הטיפוס char מסוגל להכיל מספר בטווח [0..255]

9 ASCII Table

10 דוגמא int main(void) { char ch; ch = 'B'; /* Now the value of ch is 66 */ ch = ch + 1; /* Now the value of ch is 67 */ ch = 'B' - 'A'; /* Now the value of ch is 1 */ ch = ‘1' + 3; /* and now? */ return 0; }

11 Debugging כעת נראה כיצד ניתן להריץ את התוכנית בשקף הקודם, שורה אחר שורה. נוכל להתבונן בערך המשתנה ch בזמן שהתוכנית רצה.

12 פונקציות כל פונקציה מקבלת פרמטרים ומחזירה ערך לדוגמא, הפונקציה sin מקבלת מספר ממשי ומחזירה את הסינוס שלו קריאה לפונקציה מתבצעת כך : function_name(parameters); אם הפונקציה מקבלת יותר מפרמטר אחד, בין הפרמטרים מפרידים פסיקים ניתן להציב את הערך שפונקציה מחזירה לתוך משתנה, כך : variable_name = function_name(parameters); לדוגמא :x = sin(y);

13 פונקציות חתימה ( דרך רישום המציינת את מאפייני הפונקציה ) returned_type function_name(types_of_parameters) לדוגמא : double sin(double) יש פונקציות, שבנוסף לקבלת פרמטרים, חישוב והחזרת ערך, מבצעות משהו נוסף (side effect), למשל : מדפיסות משהו על המסך

14 הפונקציה putchar הפונקציה putchar – תפקידה להדפיס תו בודד על המסך חתימה : int putchar(int) הפונקציה מקבלת פרמטר מטיפוס int, ומדפיסה אותו על המסך בתור תו הפונקציה מחזירה את הערך שאותו היא קיבלה במקרה של כשלון, הפונקציה מחזירה EOF

15 הפונקציה putchar דוגמאות לשימוש ( כך קוראים לפונקציה ): putchar('v'); putchar('\n'); putchar(35); putchar(v); x = putchar(86);

16 הפונקציה getchar getchar - תפקידה לקלוט תו בודד מהמקלדת חתימה : int getchar(void) void אומר שהפונקציה לא מקבלת פרמטרים הפונקציה קולטת תו מהמקלדת ומחזירה אותו ( את ערך ה - ASCII שלו ) אם הפונקציה נכשלת, היא מחזירה EOF כיצד מציבים את התו שנקלט לתוך משתנה ? ch = getchar();

17 getchar / putchar איך אפשר לקלוט תו ואח " כ להדפיס אותו ? ch1 = getchar(); putchar(ch1); דרך אחרת, בלי להשתמש במשתנה : putchar(getchar());

18 printf תזכורת printf מדפיסה מחרוזות למסך לפי מחרוזת הבקרה שהועברה לה מחרוזת הבקרה יכולה להכיל תווים רגילים תווים מיוחדים ( ראינו כבר %d, %f) חתימה int printf( מחרוזת בקרה "", arg1, arg2,...) הערך המוחזר ע " י printf הוא מספר התווים שהודפסו, או מספר שלילי במקרה של כשלון

19 printf כיצד מפוענחת מחרוזת הבקרה ? תווי בקרה - ( השימושיים ביותר ) תו הבקרהאיך המשתנה יודפס c%c% כתו בודד %d כשלם בבסיס עשרוני %f כממשי בבסיס עשרוני %s כמחרוזת

20 תווי בקרה עם פרמטרים משמשים לשליטה על אופן ההצגה של הנתון. מופיעים בין סימן ה-% לבין האות המתאימה לו הפרמטרים מובאים בסדר הבא: % תג טיפוס – מסמן את סוג הנתון (d, f, c, s…)

21 רוחב השדה כל נתון מודפס כרצף של תווים בעל אורך מסוים. רוחב השדה = מספר התאים המוקצים להדפסת הנתון. printf("%d %f %c %s", 3500, 3.141, 'A', "hello world"); A hello world

22 קביעת רוחב השדה רוחב השדה נכתב בתו הבקרה, כמספר טבעי. מספר זה מייצג את רוחב השדה המינימלי: אם הנתון קצר ממנו, מוסיפים רווחים למילוי יתר השדה. אם הנתון ארוך ממנו, השדה מוגדל על מנת לאפשר את הדפסתו. בתוך השדה, הנתון מוצמד לימין, דהיינו מוסיפים רווחים משמאל לנתון על מנת למלא את השדה. אם הנתון הוא מספר, וצריך להוסיף משמאלו רווחים למילוי השדה, אז ניתן להחליף את הרווחים באפסים על ידי כתיבת אפס לפני רוחב השדה.

23 רוחב השדה printf("%27s\n", "Here are some numbers:"); printf("%10d%10d%10d\n", 1, 2, 3); printf("%10f%10f%10f\n", 1.5, 2.5, 3.5); Here are some numbers:

24 דיוק ההצגה הדיוק ניתן כמספר טבעי שלפניו יש נקודה. במקרה של מספר ממשי, הדיוק מציין את מספר הספרות אחרי הנקודה שיש להציג. במקרה של מחרוזת, הדיוק מציין את מספר התווים המקסימלי שאנו רוצים להציג מהמחרוזת   2.72 vacation  vacat  va דיוק 8  דיוק 5  דיוק 2

25 דיוק ההצגה printf("%.20s \n", "sorry for the interruption"); printf("%.50s ok?\n", "sorry for the interruption"); printf("%.3f %f %.8f \n", 2.0/3, 2.0/3, 2.0/3); sorry for the interr sorry for the interruption ok?

26 סימנים מקדימים סימןתאורדוגמה - מצמיד את הנתון לשמאל השדה מוסיף סימן '+' לפני מספרים אי שליליים רווח מוסיף רווח לפני מספרים אי שליליים

27 דוגמאות משולבות printf("%10.3f!\n", 7/3.0); printf("%10.3f!\n", 1.5); printf("%010.3f!\n", 1.5); printf("%-10.3f!\n", 1.5); 2.333! 1.500! ! ! printf("%d\n", -2003); printf("%+d\n", 2003); printf("% d\n", 2003);

28 scanf תזכורת scanf קולטת מחרוזת מהמשתמש ומפענחת אותה לפי מחרוזת הבקרה שהועברה לה מחרוזת הבקרה יכולה להכיל תווים רגילים תווים מיוחדים ((%d, %lf, %c, %s חתימה int scanf( מחרוזת בקרה "", arg1, arg2,...)  הערך המוחזר ע " י scanf הוא מספר הפרמטרים שנקלטו בהצלחה, או EOF בסוף קובץ  שימו לב : הערך המוחזר הוא לא הערך שהמשתמש הקיש !

29 scanf השימוש ב-scanf זהה כמעט לשימוש ב-printf, מלבד העובדה שצריכים להשתמש באופרטור & לקליטת משתנה מסוג double, משתמשים בתו הבקרה %lf (ולא %f כמו ב-printf) כיצד נקלוט מהמשתמש מספר שלם לתוך המשתנה m, ולאחריו מספר ממשי לתוך המשתנה x? scanf(“%d%lf”, &m, &x); כיצד נחייב את המשתמש להקיש מחרוזת כלשהי ולאחריו את המספר המבוקש? scanf(“Hello%d”, &m);

30 דוגמאות scanf("%c%c", &c1, &c2); > abcd> a b c d c1='a' c2='b' c1='a' c2=' ' scanf("%c %c", &c1, &c2); > abcd> a b c d c1='a' c2='b'

31 דוגמאות scanf("%d%c", &i, &c); > 3415abcd i=3415 c='a' > 3415 abcd i=3415 c=' ' scanf("%d %c", &i, &c); > 3415abcd i=3415 c='a' > 3415 abcd i=3415 c='a'

32 דוגמאות scanf("%d%c%d", &i, &c, &j); > i=215 c='.' j=37 > i=215 c=' ' j=37

33 scanf שימוש בערך המוחזר ע " י scanf: ניתן לזהות אם הקלט אינו תקין ע " י בדיקת הערך המוחזר מהפונקציה אם המספר המוחזר שונה ממספר הפרמטרים שתכננו לקרוא - סימן שהפונקציה נכשלה בפענוח הקלט תמיד צריך לבדוק אם הקלט תקין !

34 scanf דוגמא לשימוש בערך החזרה של scanf על הלוח

35 קלט / פלט - פונקציות ספריה כדי להשתמש בפונקציה, צריך להצהיר עליה ההצהרות על הפונקציות putchar, getchar, printf, scanf נמצאות בקובץ הספרייה stdio.h אם כותבים בתחילת התוכנית את השורה #include אז תוכן הקובץ stdio.h נוסף לתוכנית, ואז התוכנית מכילה את ההצהרות על פונקציות הקלט / פלט, ואפשר להשתמש בהן

36 פונקציות ספריה ניתן לכתוב תוכנית מבלי להשתמש בפונקציות הנ " ל דוגמא לקובץ ספרייה נוסף : math.h מכיל הצהרות על פונקציות מתמטיות, כמו sqrt(), sin(), log() ועוד... אם רוצים להשתמש בהן, צריך לכתוב בתחילת התוכנית #include

37 סיכום הקשר בין משתנה וטיפוס : כל משתנה הוא מטיפוס מסוים ! פונקציות מקבלות פרמטרים ומחזירות ערכים שימוש בערך חזרה של פונקציות פונקציות ספרייה

38 רפרנס - קליטת מספרים #include int main(void) { char ch1, ch2; int x, y, res; printf(“Enter 2 integers with a character after each one : \n”); res = scanf(“%d%c%d%c”, &x, &ch1, &y, &ch2); if (res < 4) { printf(“Input Error”); return 1; } return 0; }