Presentation is loading. Please wait.

Presentation is loading. Please wait.

מבוא למדעי המחשב תרגול 5 שעת קבלה : יום שני 11:00-12:00 דוא " ל :

Similar presentations


Presentation on theme: "מבוא למדעי המחשב תרגול 5 שעת קבלה : יום שני 11:00-12:00 דוא " ל :"— Presentation transcript:

1 מבוא למדעי המחשב תרגול 5 שעת קבלה : יום שני 11:00-12:00 דוא " ל : keren@eli-wigs.comkeren@eli-wigs.com

2 פונקציות פונקציה היא קטע קוד עצמאי שמיועד לשימוש חוזר. כל פונקציה מזוהה ע " י 3 שדות : 1) טיפוס הערך שהפונקציה מחזירה. אם הפונקציה לא מחזירה ערך הטיפוס יהיה void. 2) שם הפונקציה שישמש אותנו להפעלתה. 3) סוגריים ובתוכם רשימת הפרמטרים כאשר הם מופרדים בפסיקים. לכל פרמטר יש לציין את טיפוסו. גם אם אין פרמטרים, הסוגריים הם חובה.

3 לפונקציה יש טיפוס, ומתייחסים אליה כמשתנה ולכן חלים עליה אותם כללים כמו של המשתנים. למשל, לא ניתן להשתמש בפונקציה לפני שהכרזנו עליה.

4 דוגמה #include int abs(int x) { if (x<0) return (-x); return (x); } void main() { int a,b; printf ( “ \n enter 2 numbers ” ); scanf ( “ %d%d ”,&a,&b); Printf ( “ the absolute value of a = %d, the absolute value of b=%d ”,abs(a),abs(b)); } הוראת החזרה

5 לא ניתן לרשום פונקציה בתוך פונקציה. למשל, אי אפשר לרשום את הפונקציה abs בתוך הפונקציה main. כל פונקציה יכולה לקרוא לפונקציה שהוגדרה לפניה. כשיש מספר רב של פונקציות שמשתמשות אחת בשנייה נוצרת בעיה : באיזה סדר לרשום את כל הפונקציות ? פתרון אפשרי : ניתן להצהיר על הפונקציות בתחילת התכנית, אחרי שורות ה -include ע " י כתיבת כותרת הפונקציה בלבד ובסופה התו ;.

6 סוגי משתנים משתנה לוקלי ( מקומי ) הוא משתנה שמוגדר בגוף הפונקציה. הוא מוכר אך ורק ע " י הפונקציה שבה הוא מוכרז. למשל : int abs(int x) { int z; if (x<0) z=-x; else z=x; return (z); } Z הוא משתנה לוקלי של הפונקציה abs.

7 משתנה חיצוני : משתנה שמוגדר מחוץ לגוף הפונקציה. תחום ההכרה של משתנה חיצוני הוא מרגע הופעתו בקובץ, כלומר, רק הפונקציות שמוגדרות אחריו יכירו אותו. משתנה מועבר : משתנה שמועבר ברשימת הפרמטרים לפונקציה. למשל, בפונקציה abs X הוא משתנה מועבר. משתנה זה מוכר רק ע " י הפונקציה אליה הוא מועבר, אך ערכו הראשוני מתקבל ע " י הפונקציה הקוראת.

8 מה לדעתך יהיה הפלט של התכנית הבאה? #include void func(int x,int y) } x=10; y=30; printf ("\n x=%d y=%d",x,y); { void main() } int a=3,b=7; func(a,b); printf ("\n a=%d b=%d",a,b); { הרץ את התכנית ובדוק את תשובתך.

9 כתבו תכנית שקולטת 5 שלשות של מספרים ממשיים ומדפיסה כמה שלשות מסודרות מהקטן לגדול יש. #include int fixed(float a,float b,float c) } return (a<b && b<c); { void main() } float num1,num2,num3; int count=0,i; for (i=1;i<=5;i++) } printf ("\n enter 3 numbers"); scanf ("%f%f%f",&num1,&num2,&num3); count+=fixed(num1,num2,num3); { printf ("\n there are %d fixed three",count); {

10 כתבו תכנית שקולטת מספרים שלמים וחיוביים ומדפיסה את מכפלתם. קליטת הנתונים תפסק עם קליטת המספר 0. כתבו תחילה פונקציה שמחשבת מכפלת מספרים ללא פעולת הכפל. #include int multi (int a,int b) } int i,result=0; for (i=1;i<=b;i++) result+=a; return result; { void main() } int num,ans=1; do } printf ("\n enter a number"); scanf ("%d",&num); if (num) ans=multi(num,ans); { while (num); printf ("\n the multiplication of all the numbers: %d",ans); {

11 כתוב תכנית שתקלוט מספר תלמידים בבית הספר, ותדפיס כמה כיתות צריך (כאשר בכיתה לומדים 30 תלמידים) וכמה שולחנות צריך (כאשר לכל 2 תלמידים יש שולחן). השתמשו בפונקציה אחת. #include int num_item(int num,int capacity) } int ans; if (!(num%capacity)) return (num/capacity); return ((num/capacity)+1); { void main() } int pupils; printf ("\n enter number of pupils"); scanf ("%d",&pupils); printf ("\n we need %d classes",num_item(pupils,30)); printf ("\n we need %d desks",num_item(pupils,2)); {

12 כתבו תכנית שקולטת רבעיות של מספרים. אם המספר הראשון ברביעייה הוא 1, יודפס הממוצע של המספר השני והשלישי. אם המספר הראשון הוא 2, יודפס הממוצע של המספר השני והרביעי. אם המספר הראשון הוא 3 יודפס הממוצע של השלישי והרביעי. קליטת המספרים תסתיים כאשר המספר הראשון ברביעייה הוא לא 1 או 2 או 3. #include void ave(float x,float y) } printf ("\n the average is: %f",(x+y)/2); { void main() } float a,b,c,d; printf ("\n enter 4 numbers"); scanf ("%f%f%f%f",&a,&b,&c,&d); while (a==1 || a==2 || a==3) } if (a==1) ave(b,c); if (a==2) ave(b,d); if (a==3) ave(c,d); printf ("\n enter 4 numbers"); scanf ("%f%f%f%f",&a,&b,&c,&d); { {


Download ppt "מבוא למדעי המחשב תרגול 5 שעת קבלה : יום שני 11:00-12:00 דוא " ל :"

Similar presentations


Ads by Google