Presentation is loading. Please wait.

Presentation is loading. Please wait.

מבוא כללי למדעי המחשב שיעור רביעי: לולאות www.cs.tau.ac.il/courses/cs4math/09b.

Similar presentations


Presentation on theme: "מבוא כללי למדעי המחשב שיעור רביעי: לולאות www.cs.tau.ac.il/courses/cs4math/09b."— Presentation transcript:

1 מבוא כללי למדעי המחשב שיעור רביעי: לולאות www.cs.tau.ac.il/courses/cs4math/09b

2 תזכורת: בקרת זרימה משפטי if-else משפטי if-else if (num % 2 == 0) printf(“Even number”); else printf(“Odd number”); תנאים אפשריים: תנאים אפשריים: ==,, =>, =, =>, =<, =!. תנאים ומספרים: 0 משמעו False, מספר שונה מ-0 משמעו True. תנאים ומספרים: 0 משמעו False, מספר שונה מ-0 משמעו True. פעולות לוגיות פעולות לוגיות ! (NOT), && (AND), || (OR). ! (NOT), && (AND), || (OR). למשל: ((5>4) || (2>3)), ((5>4)&&(3>2)), (!(2>3)). למשל: ((5>4) || (2>3)), ((5>4)&&(3>2)), (!(2>3)). סדר הקדימויות, פעולות חשבון לפני השוואות. סדר הקדימויות, פעולות חשבון לפני השוואות. בחירה בין יותר משני מצבים בחירה בין יותר משני מצבים הרבה if-else-if-elseמקוננים. הרבה if-else-if-elseמקוננים. switch (לביצוע השוואה לכמה ערכים קבועים). switch (לביצוע השוואה לכמה ערכים קבועים).

3 עוד פעולה שכדאי להכיר - : ? זה משמש לרישום מקוצר של משפט-תנאי באופן הבא: זה משמש לרישום מקוצר של משפט-תנאי באופן הבא: max = (a>b) ? a : b; ביטוי2 : ביטוי1 ? תנאי אם התנאי מתקיים אז נבחר הביטוי הראשון. אחרת, נבחר הביטוי השני. אם התנאי מתקיים אז נבחר הביטוי הראשון. אחרת, נבחר הביטוי השני.

4 לולאות - דוגמא #include #include int main() { int i=1; while ( i <= 10) { printf(“%d\n”, i); i=i+1;} return 0; } בלוק הפקודות הבא מתבצע כל עוד התנאי מתקיים מה לדעתכם עושה התוכנית הבאה? מדפיסה את המספרים 1 עד 10

5 לולאות – נושאי השיעור היום מהן לולאות מהן לולאות לולאת while לולאת while לולאת for לולאת for לולאת do-while לולאת do-while break ו- continue break ו- continue

6 לולאות לולאה היא קטע בתוכנית שיכול לחזור על עצמו כמה פעמים, עד שמתקיים תנאי מסויים. לולאה היא קטע בתוכנית שיכול לחזור על עצמו כמה פעמים, עד שמתקיים תנאי מסויים. זהו סוג נוסף של בקרת זרימה. זהו סוג נוסף של בקרת זרימה. בדוגמאות מציאותיות קורה הרבה שרוצים לחזור על אותה פעולה. בדוגמאות מציאותיות קורה הרבה שרוצים לחזור על אותה פעולה. יש ב-C מספר פקודות ליצירת לולאות שנכיר היום. יש ב-C מספר פקודות ליצירת לולאות שנכיר היום.

7 while לולאת מאפשרת לחזור על פקודה (או בלוק של פקודות) כל עוד מתקיים תנאי מסויים. המבנה: מאפשרת לחזור על פקודה (או בלוק של פקודות) כל עוד מתקיים תנאי מסויים. המבנה: while ( תנאי ) פקודה ; או: או: while ((תנאי {פקודות} אם התנאי מתקיים, הפקודה/פקודות מבוצעת/ות. בסיום הביצוע התנאי נבדק שוב, ואם הוא מתקיים מבצעים שוב, וחוזר חלילה, עד שהתנאי לא מתקיים. אם התנאי מתקיים, הפקודה/פקודות מבוצעת/ות. בסיום הביצוע התנאי נבדק שוב, ואם הוא מתקיים מבצעים שוב, וחוזר חלילה, עד שהתנאי לא מתקיים.

8 דוגמא : בדיקת ראשוניות #include #include int main() { int num, i=2; scanf(“%d”, &num); while ( num % i != 0) i++; i++; if (i != num) printf(“%d is divided by %d”, num, i); printf(“%d is divided by %d”, num, i);else printf(“%d is prime”, num); printf(“%d is prime”, num); return 0; } num מחפשים מחלק של i==num כאשר הלולאה בטוח תסתיים אם מצאנו מחלק שאינו המספר עצמו, זה לא ראשוני אם לא מצאנו, אז הוא ראשוני

9 - סיום הביצועwhile לולאת - סיום הביצועwhile לולאת בדרך-כלל בבלוק הפקודות (או הפקודה) של לולאת while תהיה פקודת עדכון, שתביא בסופו של דבר לביטול התנאי ולסיום הלולאה. אחרת זו לולאה אינסופית. בדרך-כלל בבלוק הפקודות (או הפקודה) של לולאת while תהיה פקודת עדכון, שתביא בסופו של דבר לביטול התנאי ולסיום הלולאה. אחרת זו לולאה אינסופית. דוגמאות ללולאה אינסופית: דוגמאות ללולאה אינסופית: while (5>4) printf(“*”); int i=1; while(i>0) { printf(“ :-) “); printf(“ :-) “); }

10 - נקודה לתשומת לבwhile לולאת - נקודה לתשומת לבwhile לולאת אם התנאי של לולאת ה- while לא מתקיים כבר בהתחלה, אז פקודות הלולאה לא יבוצעו אף פעםאם התנאי של לולאת ה- while לא מתקיים כבר בהתחלה, אז פקודות הלולאה לא יבוצעו אף פעם (לא תבוצע אף "איטרציה"). (לא תבוצע אף "איטרציה"). כל ביצוע של פקודות הלולאה מכונה "איטרציה".כל ביצוע של פקודות הלולאה מכונה "איטרציה".

11 דוגמא: בדיקת ראשוניות #include #include int main() { int num, i=2; scanf(“%d”, &num); while ( num % i != 0) i=i+1; i=i+1; if (i != num) printf(“%d is divided by %d\n”, num, i); printf(“%d is divided by %d\n”, num, i);else printf(“%d is prime”, num); printf(“%d is prime”, num); return 0; } אם המספר זוגי אז לא ניכנס כלל ללולאה

12 דוגמא: מה עושה התוכנית הבאה? #include #include int main() { int i=1, result=1, num; scanf(“%d”, &num); while (i<=num) { result*=2; result*=2; i++; i++; } printf(“The result is %d\n”, result); return 0; } חישוב חזקה שלמה של 2

13 for דרך נוספת ליצור לולאה: לולאת #include #include int main() { int i; for ( i = 1; i<=10; i++) printf(“%d\n”, i); return 0; } הדפסת המספרים 1 עד 10

14 - מבנה for לולאת - מבנה for לולאת for ((פקודת עדכון; תנאי ביצוע; פקודת איתחול {פקודות{ for ( i = 1; i<=10 ; i++) printf(“%d\n”, i);בדוגמא: קודם מבוצעת פקודת האיתחול פעם אחת.קודם מבוצעת פקודת האיתחול פעם אחת. אז נבדק תנאי הביצוע – אם הוא מתקיים אז נכנסים ללולאה.אז נבדק תנאי הביצוע – אם הוא מתקיים אז נכנסים ללולאה. בסיום פקודות הלולאה, מבוצעת פקודת העדכון, ואז שוב נבדק תנאי הביצוע ונכנסים ללולאה אם הוא מתקיים, וחוזר חלילה, עד שהתנאי לא מתקיים.בסיום פקודות הלולאה, מבוצעת פקודת העדכון, ואז שוב נבדק תנאי הביצוע ונכנסים ללולאה אם הוא מתקיים, וחוזר חלילה, עד שהתנאי לא מתקיים.

15 - הדגמת סדר הביצועfor לולאת - הדגמת סדר הביצועfor לולאת for ( i = 1; i<=10 ; i++) printf(“%d\n”, i); for ( i = 1; i<=10 ; i++) printf(“%d\n”, i); 1 for ( i = 1; i<=10 ; i++) printf(“%d\n”, i); for ( i = 1; i<=10 ; i++) printf(“%d\n”, i); 2 for ( i = 1; i<=10 ; i++) printf(“%d\n”, i); for ( i = 1; i<=10 ; i++) printf(“%d\n”, i); 3 for ( i = 1; i<=10 ; i++) printf(“%d\n”, i); ……

16 הדוגמא הקודמת: #include #include int main() { int i; for ( i = 1; i<=10; i++) printf(“%d\n”, i); return 0; } הדפסת המספרים 1 עד 10

17 עוד דוגמא: מה עושה התוכנית הבאה? #include #include int main() { int i,result=1, num; scanf(“%d”, &num); for(i=2; i<=num; i++) result*=i; result*=i; printf(“The result is %d”, result); return 0; } חישוב עצרת

18 while על-ידי for ביצוע תמיד אפשר להשתמש ב-while במקום ב- for: for ((פקודת עדכון; תנאי ביצוע; פקודת איתחול {פקודות{ שקול ל: פקודת איתחול while((תנאי ביצוע {פקודות פקודת עדכון }

19 for, while דוגמא: חישוב !10 בעזרת while #include #include int main() { int i=2, result=1; while(i<11) { result=result*i; result=result*i; i++; i++;} printf(“10! = %d”,result); return 0; }for #include #include int main() { int i,result=1; for(i=2; i<11; i++) result=result*i; result=result*i; printf(“10! = %d”,result); return 0; }

20 - המשךfor לולאת - המשךfor לולאת בדרך-כלל נעדיף שימוש ב- for כשמספר הפעמים שנירצה לבצע את הלולאה ידוע מראש (ולא מחכים ש-"משהו יקרה").בדרך-כלל נעדיף שימוש ב- for כשמספר הפעמים שנירצה לבצע את הלולאה ידוע מראש (ולא מחכים ש-"משהו יקרה"). נשים לב שגם בלולאת for, אם התנאי לא מתקיים כבר בהתחלה, אז לא תבוצע אף איטרציה.נשים לב שגם בלולאת for, אם התנאי לא מתקיים כבר בהתחלה, אז לא תבוצע אף איטרציה.

21 for עוד על לולאת הדגמנו תמיד פקודות עידכון של הגדלה ב- 1, אבל הפקודה יכולה להיות כלשהי. למשל הקטנה ב-1:הדגמנו תמיד פקודות עידכון של הגדלה ב- 1, אבל הפקודה יכולה להיות כלשהי. למשל הקטנה ב-1: for(i=100; i>0; i--)for(i=100; i>0; i--) רק צריך לוודא שבשלב מסויים התנאי לא יתקיים, כלומר שהלולאה לא תהיה אינסופית.רק צריך לוודא שבשלב מסויים התנאי לא יתקיים, כלומר שהלולאה לא תהיה אינסופית. אפשר לבצע כמה פקודות איתחול וכמה פקודות עידכון. למשל:אפשר לבצע כמה פקודות איתחול וכמה פקודות עידכון. למשל: for(i=0, j=0; i+j<100; i++,j++)for(i=0, j=0; i+j<100; i++,j++)

22 לולאות מקוננות אפשר לבצע ב- C לולאה בתוך לולאה (נכון לגבי כל סוגי הלולאות). למשל:אפשר לבצע ב- C לולאה בתוך לולאה (נכון לגבי כל סוגי הלולאות). למשל: for(i=1; i<=20; i++) { for(j=1; j<=20; j++) for(j=1; j<=20; j++) printf(“*”); printf(“*”); printf(“\n”); printf(“\n”);} זה נקרא "לולאות מקוננות".זה נקרא "לולאות מקוננות". 20X20 מדפיס ריבוע של כוכביות

23 מה עושה התוכנית הבאה? #include #include int main() { int i,j; for(i=1; i<=10; i++) for(i=1; i<=10; i++) { for(j=1; j<=10; j++) for(j=1; j<=10; j++) printf(“%d ”, i*j ); printf(“%d ”, i*j ); printf(“\n”); printf(“\n”); } } הדפסת לוח הכפל

24 מה עושה התוכנית הבאה? #include #include int main() { int i,j; for(i=1; i<=10; i++) for(i=1; i<=10; i++) { for(j=1; j<=10; j++) for(j=1; j<=10; j++) printf(“%4d ”, i*j ); printf(“%4d ”, i*j ); printf(“\n”); printf(“\n”); } } הדפסת לוח הכפל אם רוצים להדפיס בריווח קבוע

25 ההדפסה עם ריווח קבוע בלי ריווח קבוע: 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 … עם ריווח קבוע: 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 2 4 6 8 10 12 14 16 18 20…

26 לולאות לולאת for דוגמאות לולאות מקוננות שאלות?

27 do-while לולאת דומה ללולאת while, אבל התנאי נבדק רק אחרי שהלולאה מתבצעת פעם אחת, כלומר יש בכל מקרה לפחות איטרציה אחת. דומה ללולאת while, אבל התנאי נבדק רק אחרי שהלולאה מתבצעת פעם אחת, כלומר יש בכל מקרה לפחות איטרציה אחת. למשל: למשל: int i=1; do { printf(“%d\n”, i); printf(“%d\n”, i); i++; i++; } while (i<=10); מדפיס את המספרים מ-1 עד 10

28 do-while לולאת דומה ללולאת while, אבל התנאי נבדק רק אחרי שהלולאה מתבצעת פעם אחת, כלומר יש בכל מקרה לפחות איטרציה אחת. דומה ללולאת while, אבל התנאי נבדק רק אחרי שהלולאה מתבצעת פעם אחת, כלומר יש בכל מקרה לפחות איטרציה אחת. למשל: למשל: int i=1; do { printf(“%d\n”, i); printf(“%d\n”, i); i++; i++; } while (i<=10); (מדפיס את המספרים מ-1 עד 10 בשני המקרים) int i=1; while ( i <= 10) { printf(“%d\n”, i); i++;}

29 do-while לולאת דומה ללולאת while, אבל התנאי נבדק רק אחרי שהלולאה מתבצעת פעם אחת, כלומר יש בכל מקרה לפחות איטרציה אחת. דומה ללולאת while, אבל התנאי נבדק רק אחרי שהלולאה מתבצעת פעם אחת, כלומר יש בכל מקרה לפחות איטרציה אחת. למשל: למשל: int i=11; do { printf(“%d\n”, i); printf(“%d\n”, i); i++; i++; } while (i<=10); לא מדפיס כלום מדפיס 11 לא מדפיס כלום מדפיס 11 int i=11; while ( i <= 10) { printf(“%d\n”, i); i++;}

30 do-while לולאת שימושי למשל כשרוצים לקלוט מספר מהמשתמש עד שמוכנס ערך חוקי. לדוגמא: שימושי למשל כשרוצים לקלוט מספר מהמשתמש עד שמוכנס ערך חוקי. לדוגמא: #include #include int main() { int grade; do{ printf(“Enter your grade (0-100) \n”); printf(“Enter your grade (0-100) \n”); scanf(“%d”, &grade); scanf(“%d”, &grade); } while ((grade 100)); printf(“You entered a legal grade now\n”); return 0; }

31 do-while לולאת אפשר לבצע קלט פעם אחת מחוץ ללולאה ואז לעשות לולאת while, אבל do-while חוסך כתיבה פעמיים. אפשר לבצע קלט פעם אחת מחוץ ללולאה ואז לעשות לולאת while, אבל do-while חוסך כתיבה פעמיים. printf(“Enter your grade (0-100) \n”); scanf(“%d”, &grade); while ((grade 100)); { printf(“Enter your grade (0-100) \n”); printf(“Enter your grade (0-100) \n”); scanf(“%d”, &grade); scanf(“%d”, &grade);}

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

33 דוגמא: חישוב ממוצע גמר #include #include int main() { int i, grade; double average=0; for (i=1; i<=10; i++) { scanf(“%d”, &grade); scanf(“%d”, &grade); if (grade < 60) if (grade < 60) { average=0; average=0; printf (“Failed\n”); printf (“Failed\n”); break; break; } else else average = average + grade / 10.0; average = average + grade / 10.0;} if (average !=0) printf(“The average is %g\n”, average); return 0; } קולטים אותם (ומניחים כאן שהקלט נכון) במקרה של כישלון מדפיסים הודעה מתאימה ומפסיקים לקלוט ציונים מדפיסים את הממוצע אם לא מדובר בכישלון רוצים לחשב ממוצע של 10 ציונים אחרת – מעדכנים את הממוצע

34 break הפקודה אם break מופיעה בתוך לולאה מקוננת, היא תוציא מהלולאה הפנימית ביותר: אם break מופיעה בתוך לולאה מקוננת, היא תוציא מהלולאה הפנימית ביותר:for…{ for… for… { { …. …. break; break; … } … }}

35 continue הפקודה הופעת הפקודה continue בלולאה מפסיקה את האיטרציה הנוכחית שלה, ועוברים לתחילת האיטרציה הבאה של הלולאה (במקרה של for עוברים לפקודת העדכון). במקרה של לולאות מקוננות – ההפסקה בפנימית ביותר. הופעת הפקודה continue בלולאה מפסיקה את האיטרציה הנוכחית שלה, ועוברים לתחילת האיטרציה הבאה של הלולאה (במקרה של for עוברים לפקודת העדכון). במקרה של לולאות מקוננות – ההפסקה בפנימית ביותר. continue יכולה לשמש למשל כשבודקים תקינות קלט: continue יכולה לשמש למשל כשבודקים תקינות קלט: while(i<10) while(i<10) { scanf(“%d”, &grade); scanf(“%d”, &grade); if ((grade 100)) if ((grade 100)) { printf(“Illegal grade – try again\n”); printf(“Illegal grade – try again\n”); continue; continue; } ……. ……. }

36 נקודה לתשומת לב גם while, for, do, continue הן מילים שמורות, ולא ניתן להשתמש בהן כשמות של משתנים. גם while, for, do, continue הן מילים שמורות, ולא ניתן להשתמש בהן כשמות של משתנים.

37 סיכום לולאות דיברנו היום על: מהן לולאות לולאות while, for, do-while לולאות מקוננות break, continue

38 קליטת נתונים רבים אם נרצה לכתוב תוכנית שקולטת ציונים של 20 סטודנטים ולאחר הקליטה מדפיסה אותם. כיצד נעשה זאת? אם נרצה לכתוב תוכנית שקולטת ציונים של 20 סטודנטים ולאחר הקליטה מדפיסה אותם. כיצד נעשה זאת? האפשרות שקיימת בפנינו היום היא להגדיר 20 משתנים לצורך כך. האפשרות שקיימת בפנינו היום היא להגדיר 20 משתנים לצורך כך. אבל אם עכשיו נבקש לעשות את אותו הדבר עבור 100 סטודנטים לא נרצה להגדיר 100 משתנים. אבל אם עכשיו נבקש לעשות את אותו הדבר עבור 100 סטודנטים לא נרצה להגדיר 100 משתנים. לצורך כך נרצה ליצור מערך של נתונים מאותו הסוג. לצורך כך נרצה ליצור מערך של נתונים מאותו הסוג. נרצה להכליל את הגדרת המשתנה הבודד להגדרה של קבוצה של משתנים כולם בעלי אותו הסוג. נרצה להכליל את הגדרת המשתנה הבודד להגדרה של קבוצה של משתנים כולם בעלי אותו הסוג.

39 מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20; שימוש במערך מאפשר לנו להגדיר שימוש במערך מאפשר לנו להגדיר int grade[20]; int grade[20]; או לכל טיפוס נגדיר או לכל טיפוס נגדיר type name[100]; type name[100];

40 מערכים הפניה לאברי המערך נעשית באמצעות אינדקס. הפניה לאברי המערך נעשית באמצעות אינדקס. לאיבר הראשון נפנה כך: לאיבר הראשון נפנה כך: grade[0] grade[0] לאיבר האחרון נפנה כך: לאיבר האחרון נפנה כך: grade[19] grade[19] באמצעות הגדרה זו הגדרנו 20 משתנים מסוג int היתרון הגדול הוא שכעת ניתן לגשת אליהם באמצעות לולאה. באמצעות הגדרה זו הגדרנו 20 משתנים מסוג int היתרון הגדול הוא שכעת ניתן לגשת אליהם באמצעות לולאה.

41 אתחול מערכים אתחול באמצעות לולאה אתחול באמצעות לולאה int main() { int i, arr[10]; for(i = 0; i < 10; i++) arr[i] = 0; { נשים לב שהלולאה מתחילה מ 0. איפוס המערך באמצעות לולאה

42 אתחול מערכים אתחול בשורת ההגדרה (אפשרי רק בשורת ההגדרה). אתחול בשורת ההגדרה (אפשרי רק בשורת ההגדרה). int main() { int arr[10] = {0}; }

43 באמצעות אתחול בשורת ההגדרה ניתן לאתחל כל אחד מאיברי המערך למשל באמצעות אתחול בשורת ההגדרה ניתן לאתחל כל אחד מאיברי המערך למשל int arr[5] = {1,2,3,4,5}; int arr[5] = {1,2,3,4,5}; מה שקורה זה מה שקורה זה arr[0] = 1, arr[1] = 2,…, arr[4] = 5 arr[0] = 1, arr[1] = 2,…, arr[4] = 5 זה שקול לשורה באה זה שקול לשורה באה int arr[ ] = {1,2,3,4,5}; int arr[ ] = {1,2,3,4,5};

44 int arr[5] = {1,2}; int arr[5] = {1,2}; במקרה זה איברי המערך יקבלו את הערכים: במקרה זה איברי המערך יקבלו את הערכים: arr[0] = 1, arr[1] =2 arr[0] = 1, arr[1] =2 arr[2] = arr[3] = arr[4] = 0 arr[2] = arr[3] = arr[4] = 0 אם ניתן רשימה ארוכה מדי אז זו טעות. אם ניתן רשימה ארוכה מדי אז זו טעות.

45 נכתוב תוכנית המדפיסה את איברי המערך והיסטוגרמה של האיברים נכתוב תוכנית המדפיסה את איברי המערך והיסטוגרמה של האיברים לדוגמא: לדוגמא: אם איברי המערך הם 1 2 4 אז יודפס אם איברי המערך הם 1 2 4 אז יודפס 0 1 * 1 2 ** 2 4 **** מערכים

46 תוכנית המדפיסה את איברי המערך והיסטוגרמה שלהם #include #include int main() { int arr[6] = {4, 3, 5, 7, 1, 3}; int i,j; for(i = 0; i < 6; i++) { printf(“%d %d “, i, arr[i]); for(j = 0; j < arr[i]; j++) printf(“*”);printf(“\n”);} return 0; }

47 מערכים נכתוב תוכנית הקולטת את הערכת התלמידים לקורס (מספר בין 1 ל 7) ומדפיסה כמה פעמים הופיע כל ציון. נניח שהקלט נגמר בציון 1-. נכתוב תוכנית הקולטת את הערכת התלמידים לקורס (מספר בין 1 ל 7) ומדפיסה כמה פעמים הופיע כל ציון. נניח שהקלט נגמר בציון 1-.

48 מערכים #include #include int main() { int i,frequency[7]={0}; int grade; do { do { printf(“Insert you grade\n”); scanf(“%d”,&grade); (grade == -1)? break; : frequency[grade-1]++; } while (1); } while (1); for (i=1;i<=7;i++) for (i=1;i<=7;i++) printf(“The grade %d appears%d\n”,i,frequency[i-1]); return 0; return 0;} איפוס

49 מערכים – סיכום משמשים להגדרת קבוצות משתנים מאותו הסוג. משמשים להגדרת קבוצות משתנים מאותו הסוג. ניתן לפנות לכולם באמצעות שם המערך בצרוף אינדקס. ניתן לפנות לכולם באמצעות שם המערך בצרוף אינדקס. המערך מתחיל מ 0. המערך מתחיל מ 0. גודל המערך חייב להיות קבוע. גודל המערך חייב להיות קבוע. פניה לאיבר במערך עם אינדקס מחוץ לתחום המערך למשל בתוכנית הקודמת פניה ל frequency[7] לא תייצר טעות קומפילציה אלא טעות בזמן ריצה. פניה לאיבר במערך עם אינדקס מחוץ לתחום המערך למשל בתוכנית הקודמת פניה ל frequency[7] לא תייצר טעות קומפילציה אלא טעות בזמן ריצה.


Download ppt "מבוא כללי למדעי המחשב שיעור רביעי: לולאות www.cs.tau.ac.il/courses/cs4math/09b."

Similar presentations


Ads by Google