Presentation is loading. Please wait.

Presentation is loading. Please wait.

תכנות תרגול 3 שבוע : 13.11.05. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.

Similar presentations


Presentation on theme: "תכנות תרגול 3 שבוע : 13.11.05. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא."— Presentation transcript:

1 תכנות תרגול 3 שבוע : 13.11.05

2 לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא מהלולאה ברגע שהתנאי לא מתקיים נצא מהלולאה !

3 דוגמא ללולאה – חישוב עצרת #include #include int main() { int i,n,fact = 1; printf("Enter a number\n"); scanf("%d", &n); i=1; while (i<=n) { fact *= i; i++;} printf("the factorial is %d\n", fact); return 0; } הגדרת משתנים קליטת ערכים אתחול מונה הלולאה עצמה הדפסת התוצאה

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

5 פתרון תרגיל 4 פתרון תרגיל 4 #include #include int main() { int a, b, i, power; i = 1; power = 1; printf("Enter 2 numbers\n"); scanf("%d%d", &a, &b); while(i <= b) { power = power * a; i++;} printf("%d power %d is %d\n",a,b, power); return 0; } תנאי הקיום של הלולאה גוף הלולאה כאשר הוא מכיל יותר מהוראה אחת נפתח קטע קוד { }

6 לולאה שמחשבת סכום סדרת מספרים #include #include void main() { int num, i=1, counter, sum=0; printf("Enter the expected number of integers\n"); scanf("%d", &counter); while( i <= counter) { printf("Enter a number\n"); scanf("%d", &num); sum += num; i++;} printf("The numbers sum is %d\n", sum); } הגדרת משתנים ואתחולם קליטת מספר הפעמים לביצוע תנאי קיום הלולאה גוף הלולאה : קליטת המספר סיכום המספר קידום המונה הדפסת הסכום

7 לולאות for לולאות for for (counter=1 ;counter<=7 ; counter++ ) { loop body } שם המשתנה שבאמצעותו נשלוט בלולאה הערך שבו נאתחל אותו התנאי שכל עוד הוא מתקיים נמשכת הלולאה קידום משתנה הלולאה מה ערכו של המשתנה כאן ? for (counter=1 ;counter<=7 ; counter++ ) ; ;

8 דוגמא ללולאת for לחישוב עצרת #include #include int main() { int i,n,fact = 1; printf("Enter a number\n"); scanf("%d", &n); for (i=1;i<=n;i++) fact *= i; printf("the factorial is %d\n", fact); return 0; } לולאת ה - for תנאי סיום הלולאה נקלט מהמשתמש למשתנה n !

9 תרגיל 1 כתוב תוכנית המקבלת מספר מהמשתמש ומדפיסה ריבוע של כוכביות בגודל המספר שנקלט דוגמא קלט 5: *************************

10 פתרון תרגיל 1 #include<stdio.h> #define SIZE 5 void main() { int i,j; for (i = 1; i <= SIZE; i++) { for(j = 1; j <= SIZE; j++) printf("*");printf("\n");}} סימן שיוחלף בכל מקום בתוכנית בערך 5 לולאה כפולה ! פלט ***** שורה חדשה

11 חצי ריבוע ( משולש ) #include<stdio.h> #define SIZE 5 void main() { int i,j; for (i = 1; i <= SIZE; i++) { for(j = i; j <= SIZE; j++) printf("*");printf("\n");}} סימן שיוחלף בכל מקום בתוכנית בערך 5 לולאה כפולה שימו לב מאיפה מתחילה הלולאה השנייה ! פלט ***** **** *** ** *

12 תרגיל 2 כתוב תוכנית המדפיסה משולשים שווי שוקים בצורה הבאה הקלט הוא מספר שיציין את גודל שוק המשולש, בדוגמא כאן 5. *********

13 פתרון תרגיל 2 int main() { int i,j; for (i = 0; i < SIZE; i++) { for(j = 0; j < SIZE – i – 1; j++) printf(" "); for(j = 0; j < 2 * i + 1; j++) printf("*");printf("\n");} return 0; } לולאה חיצונית לולאה פנימית ראשונה לולאה פנימית שנייה SIZE = 5 1234* 123*** 12***** 1******* *********

14 עבודה עם char נכתוב את התוכנית הבאה : קלט תו. לאחריו רצף של תווים. פלט התוכנית הוא מספר המופעים של התו הראשון ברצף התווים שלאחריו Input: r aBrnetr r rr Output: 5

15 void main() { char c, ch=0; int appear = 0; printf("Enter a character to be find\n"); scanf("%c", &c); printf("Now enter your text\n"); flushall(); while (ch != '\n') { scanf("%c", &ch); if (ch == c) appear++; appear++;} if (appear != 0) printf("%c has appeared %d \n", c, appear); else printf("%c was not found\n", c); } קלט של תו לולאה שקולטת תוים עד ירידת שורה

16 חוצץ a \n b scanf(“%c”,ch); flushall();

17 תרגיל 3 כתוב תוכנית הקולטת מספר ומדפיסה אם הוא ראשוני או לא.

18 void main() { int i,prime,sq; printf("enter a number\n"); scanf("%d", &prime); sq = (int) sqrt(prime); for(i = 2 ; i <= sq; i++) { if (prime % i == 0) { printf("%d not prime divided by %d \n", prime, i); printf("%d not prime divided by %d \n", prime, i); break; break;}} if (i > sq ) printf("the number %d is prime\n", prime); } בדיקת האם לא ראשוני ויציאה אם אכן כך

19 תרגיל 4 כתוב תוכנית הקולטת מספר ומדפיסה את כל המספרים הראשונים עד אליו.

20 void main() { int i,j,sq,last; printf("enter a number\n"); scanf("%d", &last); for(i = 2; i <= last; i++) { sq = (int) sqrt(i); for(j = 2 ; j <= sq; j++) if (i % j == 0) break; if (j > sq ) printf("the number %d is prime\n", i); }} בדיקת הראשוניות

21 הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת הערכים שהפונקציה מקבלת דוגמא : נממש את הפונקציה f(x) = x^2 double sqr(double x) { return x*x; } הגדרת הפונקציה גוף הפונקציה { Function body return-value }

22 פונקציות - דוגמא נוספת נממש את הפונקציה שמוצאת את המינימום בין שלושה מספרים : int minimum( int x, int y, int z ) { int min = x; int min = x; if ( y < min ) if ( y < min ) min = y; min = y; if ( z < min ) if ( z < min ) min = z; min = z; return min; return min;} משתנה מקומי שמוכר רק בתוך הפונקציה x y z

23 שימוש בפונקציות int main() { int a, b, c; int a, b, c; printf( "Enter three integers: " ); printf( "Enter three integers: " ); scanf( "%d%d%d", &a, &b, &c ); scanf( "%d%d%d", &a, &b, &c ); printf( "Min is: %d\n", minimum( a, b, c ) ); printf( "Min is: %d\n", minimum( a, b, c ) ); return 0; return 0;}

24 שימוש בפונקציות int main() { int a, b, c, min; int a, b, c, min; printf( "Enter three integers: " ); printf( "Enter three integers: " ); scanf( "%d%d%d", &a, &b, &c ); scanf( "%d%d%d", &a, &b, &c ); min = minimum( a, b, c ); min = minimum( a, b, c ); printf( "Min is: %d\n", min); printf( "Min is: %d\n", min); return 0; return 0;}

25 העברת הערכים משתמש 4 5 2 a b c45 2 x y z main minimum

26 הכרזה על פונקציות return-value-type function-name(parameter1, parameter2, …); הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת סוגי הערכים שהפונקציה מקבלת הכרזה על פונקציה בצורה כזו מעל לקטע הקוד הראשי של התוכנית מאפשרת לנו להשתמש בפונקציה בכל מקום. double sqr(double ); int minimum( int, int, int ); int main() {}

27 Switch ו Case דומה לקינון משפטי if דומה לקינון משפטי if מאפשר בחירה של אפשרויות רמות על בסיס מספר שלם מאפשר בחירה של אפשרויות רמות על בסיס מספר שלם switch (expression) { case const-expr: statements case const-expr: statements … default: statements } switch (expression) { case const-expr: statements case const-expr: statements … default: statements }

28 The switch statement expression must have an integral value expression must have an integral value when the switch statement is executed: when the switch statement is executed: –the expression is evaluated –if a case matches the value of the expression, the program jumps to the first statement after that case label –otherwise, the default case is selected –the default is optional

29 תרגום ציון switch (grade/10) { case 10: case 9: printf ("A\n"); break; case 8: printf ("B\n"); break; case 7: printf ("C\n"); break; case 6: printf ("D\n"); break;default: printf ("F\n"); }

30 Break כאשר ה switch מזהה איפה להתחיל לפעול הוא " קופץ " לשם ומבצע את הכתוב. כאשר ה switch מזהה איפה להתחיל לפעול הוא " קופץ " לשם ומבצע את הכתוב. הוא ממשיך לעשות כך עד שהוא פוגש במילה break לראשונה. הוא ממשיך לעשות כך עד שהוא פוגש במילה break לראשונה. ברגע שפגש ב break הוא קופץ להמשך התוכנית לאחר ה switch- ברגע שפגש ב break הוא קופץ להמשך התוכנית לאחר ה switch-

31 דוגמא Operation.c Operation.c Operation.c

32 תרגיל כתוב תוכנית המקבלת מספר בין 1 ל 100 אם קיים מטבע שמתאים למספר היא מדפיסה את שמו אם לא היא מדפיסה שאין מטבע כזה. בדוק את תקינות הקלט ! כתוב תוכנית המקבלת מספר בין 1 ל 100 אם קיים מטבע שמתאים למספר היא מדפיסה את שמו אם לא היא מדפיסה שאין מטבע כזה. בדוק את תקינות הקלט !

33 Solution Coins.c Coins.c Coins.c


Download ppt "תכנות תרגול 3 שבוע : 13.11.05. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא."

Similar presentations


Ads by Google