תכנות תרגול 1 שבוע : 30.10.05. צור קשר מתרגל – ליעם רודיטי,...

Preview:

Citation preview

11תכנות תרגול תכנות תרגול

::שבועשבוע

3030..1010.0.055

צור קשרצור קשר

מתרגל – ליעם רודיטי, ביה"ס למדעי המחשב. מתרגל – ליעם רודיטי, ביה"ס למדעי המחשב. •

liamr@tau.ac.illiamr@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);

}}

הוראה למשתמשקליטת הערכים

Recommended