ללללל ללללל ללללל ללללל1 1 לללל לללל: : 30 30 . . 10 10 .0 .0 5 5
11תכנות תרגול תכנות תרגול
::שבועשבוע
3030..1010.0.055
צור קשרצור קשר
מתרגל – ליעם רודיטי, ביה"ס למדעי המחשב. מתרגל – ליעם רודיטי, ביה"ס למדעי המחשב. •
[email protected]@tau.ac.ilדואר אלקטרוני: דואר אלקטרוני: •
054-5579099054-5579099, , 03-64003-64053985398טלפונים: טלפונים: •
אתר הקורס: אתר הקורס: •www.cs.tau.ac.il/~liamr/cprog6A.htmwww.cs.tau.ac.il/~liamr/cprog6A.htm
שעת קבלהשעת קבלה
20:00-18:0020:00-18:00רביעי רביעי •
בתאום מראש אפשר תמיד!בתאום מראש אפשר תמיד!•
((open spaceopen spaceבניין שרייבר קומת מרתף )בניין שרייבר קומת מרתף )•
שיעורי ביתשיעורי בית
תרגילי בית תרגילי בית10-1410-14•
הגשת תדפיסי קוד ודוגמאות הרצה. הגשת תדפיסי קוד ודוגמאות הרצה. •
הגשה ביחידיםהגשה ביחידים•
מהציון הסופי מהציון הסופי20%20%•
פתרונות יחולקו לכל תרגיל !פתרונות יחולקו לכל תרגיל !•
מטרת התרגולמטרת התרגול
Developer StudioDeveloper Studioידע בסיסי בהפעלת הידע בסיסי בהפעלת ה• . .
ראשונה )ושנייה ושלישית ... ( ראשונה )ושנייה ושלישית ... (CCתוכנית תוכנית •
כתיבת התוכנהכתיבת התוכנה
כתיבת התוכנית עצמה נעשית ע"י כתיבת קובץ כתיבת התוכנית עצמה נעשית ע"י כתיבת קובץ • CCכללי שפת כללי שפת טקסט רגיל אשר תוכנו מקיים את טקסט רגיל אשר תוכנו מקיים את
ניתן לחשוב על כך כמו על כתיבת מסמך באנגלית. ניתן לחשוב על כך כמו על כתיבת מסמך באנגלית.
כלליכללי שמקיים את שמקיים את קובץ טקסטקובץ טקסטזה נעשה ע"י כתיבת זה נעשה ע"י כתיבת
. . השפה האנגליתהשפה האנגלית
הבנת התוכנההבנת התוכנה
כדי שהמחשב ידע להבין את מה שכתבנו ישנו כדי שהמחשב ידע להבין את מה שכתבנו ישנו • לשפת המחשב לשפת המחשב CCשפת שפת כלי שמתרגם את כלי שמתרגם את
( ( compilercompiler ) )המהדרהמהדרהבסיסית כלי זה הוא הבסיסית כלי זה הוא . . CCשפת שפת של של
ניתן לחשוב על זה כמו על המסמך שלנו ניתן לחשוב על זה כמו על המסמך שלנו שמתורגם עבור אדם ששפתו היחידה שמתורגם עבור אדם ששפתו היחידה באנגלית באנגלית
עבריתעבריתהיא היא
סביבת העבודהסביבת העבודה
נותנת לנו את נותנת לנו את DevStudioDevStudioסביבת העבודה סביבת העבודה • editoreditor באמצעות באמצעותCCבשפת בשפת האפשרות לכתוב תוכנה האפשרות לכתוב תוכנה
CCנוח שמאפשר לנו לכתוב את הטקסט של נוח שמאפשר לנו לכתוב את הטקסט של
בנוסף היא מספקת לנו את המהדר שיתרגם את בנוסף היא מספקת לנו את המהדר שיתרגם את •הקוד שלנו לקובץ שהמחשב ידע להפעיל – קבצים הקוד שלנו לקובץ שהמחשב ידע להפעיל – קבצים
((executableexecutable אלו נקראים קבצי הפעלה ) אלו נקראים קבצי הפעלה )
הפעלת התוכנההפעלת התוכנה
DeskTopDeskTop על ה על הDevStudioDevStudio של שלICONICONקיים קיים •
עבודה עם סביבת העבודהעבודה עם סביבת העבודה
מספר שלביםמספר שלבים
יצירת פרויקט מיקומו בספריה מתאימהיצירת פרויקט מיקומו בספריה מתאימה•
יצירת קובץ לכתיבת הקודיצירת קובץ לכתיבת הקוד•
כתיבת הקודכתיבת הקוד•
תרגומו באמצעות המהדרתרגומו באמצעות המהדר•
הרצה ובדיקה שאכן מה שרצינו קורה!!!הרצה ובדיקה שאכן מה שרצינו קורה!!!•
עבודה עם סביבת העבודהעבודה עם סביבת העבודה
יצירת פרויקט מיקומו בספריה מתאימהיצירת פרויקט מיקומו בספריה מתאימה•
יצירת קובץ לכתיבת הקודיצירת קובץ לכתיבת הקוד•
כתיבת הקודכתיבת הקוד•
תרגומו באמצעות המהדרתרגומו באמצעות המהדר•
הרצה ובדיקה שאכן מה שרצינו קורה!!!הרצה ובדיקה שאכן מה שרצינו קורה!!!•
מספר שלביםמספר שלבים
התוכנית הראשונההתוכנית הראשונה
#include <stdio.h>#include <stdio.h>
void main()void main()
{{
printf ("Hello World!!!\n");printf ("Hello World!!!\n");
}}
hello.c
hello.exe
התוכנית הראשונההתוכנית הראשונה
#include <stdio.h>#include <stdio.h>
void main()void main()
{{
printf ("Hello World!!!\n");printf ("Hello World!!!\n");
}}
מעטפת התוכנית
הסוגרים המסולסלים פותחים קטע של קוד כאן של התוכניתהקוד הראשיהקוד הראשינפתח קטע
התוכנית הראשונההתוכנית הראשונה
#include <stdio.h>#include <stdio.h>
void main(){
printf ("Hello World!!!\n");printf ("Hello World!!!\n");}
גוף התוכנית
קריאה לפונקציה אשר מדפיסה את הטקסט:Hello World!!!
פונקצית ההדפסהפונקצית ההדפסה
printfprintf ("Hello World!!!\n");("Hello World!!!\n");
שם הפונקציה
הוא מסמן לרדת שורה לא מודפס!.לא מודפס!. n\הסימן כלומר התו הבא שיודפס ע"י התוכנית יודפס
בשורה חדשה!בשורה חדשה!
הטקסט להדפסה )מופיע בין
גרשיים(
printfprintf ("Hello World!!!\n");("Hello World!!!\n");printfprintf (("Hello World!!!\n""Hello World!!!\n"));;printfprintf (("Hello World!!!\n""Hello World!!!\n"););\n\n
התוכנית הראשונההתוכנית הראשונה
#include <stdio.h>#include <stdio.h>
void main()void main()
{{
printf ("Hello World!!!\n");printf ("Hello World!!!\n");
}}
? למה זה משמש
לא Cשל שפת פונקציהפונקציה ההדפסה מתבצעת ע"יולכן צריך להגיד לתוכנית איפה נמצאת פקודהפקודה
שבה נשתמש. הגדרת הפונקציההגדרת הפונקציה
11תרגיל תרגיל
צרו פרויקט חדש וכתבו תוכנית המדפיסה את שמכם צרו פרויקט חדש וכתבו תוכנית המדפיסה את שמכם
למסך כך שהשם הפרטי יופיע בשורה הראשונה ושם למסך כך שהשם הפרטי יופיע בשורה הראשונה ושם
המשפחה בשורה השנייה.המשפחה בשורה השנייה.
11פתרון תרגיל פתרון תרגיל
#include <stdio.h>#include <stdio.h>
void main()void main()
{{
printf ("Shai\nGutner\n");printf ("Shai\nGutner\n");
}}
הגדרת משתניםהגדרת משתנים
#include <stdio.h>#include <stdio.h>
void main()void main()
{{
int x,yint x,y;;
int z=0int z=0;;
}}
הגדרנו כאן שלושה משתניםהגדרנו כאן שלושה משתניםx , y , zx , y , z
כללי הגדרת משתנים: ( typetype לפני שם המשתנה נציין את סוגו )•
שזה מספר שלם intintהסוג הוא בדוגמא ניתן להגדיר מספר משתנים בשורה כולם •
הסוג מופרדים בפסיק. מאותוניתן לאתחל משתנה מיד בשורת ההגדרה שלו•
( z )כמו שעשינו עם
רק לאחר פתיחת סוגרים מסולסליםניתן להגדיר משתנים
הדפסת משתנים ופעולות חשבוןהדפסת משתנים ופעולות חשבון#include <stdio.h>#include <stdio.h>
void main()void main(){{
int x,y;int x,y;int z;int z;x=3;x=3;y=y=77;;z = x*y;z = x*y;printf ("z=%d\n",z);printf ("z=%d\n",z);printf ("y/x=%d\n",y/x);printf ("y/x=%d\n",y/x);printf ("y%%x=%d\n",y%x);printf ("y%%x=%d\n",y%x);
}}
z=21
הפעולות בתוכנית: כפל *•חילוק /•שארית %•
פלט:
y/x=2y%x=1
פונקצית ההדפסה- הדפסת פונקצית ההדפסה- הדפסת משתנהמשתנה
printfprintf ( ("z=%d\n","z=%d\n", zz ););
שם הפונקציה
הוא מסמן לפונקצית לא מודפס! d%הסימן ההדפסה שכאן צריך לשלב ערך של משתנה שיגיע
מאוחר יותר לאחר הגרשיים
הטקסט להדפסה )מופיע בין
גרשיים(
המשתנה לשילוב במקום
%d
%d%d
22תרגיל תרגיל
מאתחלת מאתחלת שלושה משתניםשלושה משתניםכתבו תוכנית המגדירה כתבו תוכנית המגדירה
שלהם את שלהם את המכפלההמכפלה ומדפיסה את ומדפיסה את 33 ו ו 22 11אותם ל אותם ל
שלהם. שלהם.הסכוםהסכום שלהם ואת שלהם ואת ההפרשההפרש
22פתרון תרגיל פתרון תרגיל #include <stdio.h>#include <stdio.h>void main()void main(){{
int x,y,z;int x,y,z;x=1;x=1;y=2;y=2;z=3;z=3;printf ("x*y*z=%d\n",x*y*z);printf ("x*y*z=%d\n",x*y*z);printf ("x+y+z=%d\n",x+y+z);printf ("x+y+z=%d\n",x+y+z);printf ("x-y-z=%d\n",x-y-z);printf ("x-y-z=%d\n",x-y-z);
}}
שפונקצית ההדפסהשפונקצית ההדפסהנשים לב מקבלת גם ביטוי מתמטי מחשבת
אותו ומדפיסה את ערכו
קליטת ערכים למשתנים קליטת ערכים למשתנים מהמשתמשמהמשתמש#include <stdio.h>#include <stdio.h>
void main()void main()
{{
int num, num1;int num, num1;
printf("Enter two positive numbers\printf("Enter two positive numbers\n");n");
scanf("%d%d", &num, &num1);scanf("%d%d", &num, &num1);
}}
הוראה למשתמש
קליטת הערכים
פונקצית הקליטהפונקצית הקליטה
scanf("%d%d", &num, &num1);scanf("%d%d", &num, &num1);
שם הפונקציה
אופי הקלט
)מופיע בין גרשיים(
הקלט יכנס
למשתניםnum
num1ו- ? & מה פשר הסימן
&& &&
33תרגיל תרגיל
כתבו תוכנית הקולטת שני מספרים מהמשתמש כתבו תוכנית הקולטת שני מספרים מהמשתמש
ומדפיסה את ההפרש שלהם ואת החלוקה ומדפיסה את ההפרש שלהם ואת החלוקה שלהם.שלהם.
33פתרון תרגיל פתרון תרגיל #include <stdio.h>#include <stdio.h>void main()void main(){{
int num, num1, s,q;int num, num1, s,q;printf("Enter two positive numbers\n");printf("Enter two positive numbers\n");scanf("%d%d", &num, &num1);scanf("%d%d", &num, &num1);s = num - num1;s = num - num1;printf("subtraction of %d from %d is %d\n", num1, printf("subtraction of %d from %d is %d\n", num1, num, s);num, s);q = num / num1;q = num / num1;printf("quotient of %d and %d is %d\n", num, num1, printf("quotient of %d and %d is %d\n", num, num1, q);q);
}}
הוראה למשתמשקליטת הערכים