Download presentation
Presentation is loading. Please wait.
1
תכנות תרגול 4 שבוע : 20.11.05
2
לולאות for לולאות for for (counter=1 ;counter<=7 ; counter++ ) { loop body } שם המשתנה שבאמצעותו נשלוט בלולאה הערך שבו נאתחל אותו התנאי שכל עוד הוא מתקיים נמשכת הלולאה קידום משתנה הלולאה מה ערכו של המשתנה כאן ?
3
שימושים נוספים ללולאות for באמצעות לולאות נוכל לבצע חישובים מתמטים. למשל הדבר הבא : קלוט מספר מהמשתמש וקבע אם הוא ראשוני או לא !
4
#include<stdio.h> 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) 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); } הגדרת משתנים וקליטת המספר מהמשתמש. גבול החיפוש הלולאה למציאת מספר שמחלק ( אם קיים כזה ).
5
תרגיל 1 כתוב תוכנית הקולטת מספר ומדפיסה את כל המספרים הראשונים עד אליו.
6
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); }} בדיקת הראשוניות חזרה על הבדיקה עד לקלט
7
הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת הערכים שהפונקציה מקבלת דוגמא : נממש את הפונקציה f(x) = x^2 double sqr(double x) { return x*x; } הגדרת הפונקציה גוף הפונקציה { Function body return-value }
8
פונקציות - דוגמא נוספת נממש את הפונקציה שמוצאת את המינימום בין שלושה מספרים : 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
9
שימוש בפונקציות 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;}
10
שימוש בפונקציות 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;}
11
העברת הערכים משתמש 4 5 2 a b c45 2 x y z main minimum
12
הכרזה על פונקציות return-value-type function-name(parameter1, parameter2, …); הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת סוגי הערכים שהפונקציה מקבלת הכרזה על פונקציה בצורה כזו מעל לקטע הקוד הראשי של התוכנית מאפשרת לנו להשתמש בפונקציה בכל מקום. double sqr(double ); int minimum( int, int, int ); int main() {}
13
תרגיל 2 כתוב פונקציה המקבלת מספר שלם ומחזירה 0 אם הוא לא ראשוני ו 1 אם כן. הדרכה : void main() { if (IsPrime(7) == 1) printf(“7 is prime”); } int IsPrime(int p) {} תוכנית שמשתמשת בפונקציה הפונקציה ( השלימו את הגוף ) ?
14
תרגיל 2- המשך קלוט מספר והדפס את כל המספרים הראשונים עד אליו תוך שימוש בפונקציה שכתבת.
15
תרגיל 2- פתרון int IsPrime(int num) { int i, sq; int i, sq; sq = (int) sqrt(num); sq = (int) sqrt(num); for(i = 2 ; i <= sq; i++) for(i = 2 ; i <= sq; i++) { if (num % i == 0) if (num % i == 0) return 0; return 0; } return 1; return 1;} הפונקציה לולאה למציאת מחלקים בדיקה למציאת מספר שמחלק את הקלט לפונקציה במידה ונמצא אז להחזיר 0 אם הגענו לכאן אז אף מחלק לא נמצא והמספר ראשוני
16
תרגיל 2- פתרון void main() { int num, last; printf("enter a number\n"); scanf("%d", &last); for(num = 2; num <= last; num++) if (IsPrime(num) == 1) printf("%d is prime\n", num); } התוכנית הראשית לולאה להדפסת כל הראשונים עד למספר שנקלט בדיקת ראשוניות
17
חישוב ערכים באמצעות לולאות נתון הסכום הבא : i = 1 n (-1) i+1 4 2i -1 נכתוב פונקציה שמחשבת אותו
18
חישוב הסכום double calc_something(int n) { int i,key=1; double result = 0; for (i=1; i<=n ;i++) { result = result + key*(4.00/(2*i-1)); result = result + key*(4.00/(2*i-1)); key *= -1; key *= -1;} return result; } הפונקציה החישוב עצמו
19
תרגיל 3 כתוב פונקציה המקבלת כקלט את הדיוק המבוקש של החישוב. הדרכה : זוהי הכרזת הפונקציה : double calc_something(double eps) {} (-1) i+1 4 2i -1 < eps הפונקציה תרוץ עד שיתקיים
20
תרגיל 3- פתרון double calc_something(double eps) { int i=1,key=1; double result = 0,expr; do{ expr = 4.00/(2*i-1); result = result + key*expr; i++; key *= -1; }while (expr > eps); return result; } הפונקציה הדיוק
21
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 }
22
The switch statement הביטוי חייב להיות שלם הביטוי חייב להיות שלם בעת ביצוע switch הביטוי מוערך ומחפשים case שמתאים לערך הביטוי. אם נמצא כזה קופצים אליו אם אין כזה קופצים ל default- בעת ביצוע switch הביטוי מוערך ומחפשים case שמתאים לערך הביטוי. אם נמצא כזה קופצים אליו אם אין כזה קופצים ל default-
23
תרגום ציון 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"); }
24
Break כאשר ה switch מוצא איפה להתחיל לפעול הוא " קופץ " לשם ומבצע את הכתוב. כאשר ה switch מוצא איפה להתחיל לפעול הוא " קופץ " לשם ומבצע את הכתוב. הוא ממשיך לעשות כך עד שהוא פוגש במילה break לראשונה. הוא ממשיך לעשות כך עד שהוא פוגש במילה break לראשונה. ברגע שפגש ב break הוא קופץ להמשך התוכנית לאחר ה switch- ברגע שפגש ב break הוא קופץ להמשך התוכנית לאחר ה switch-
25
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 }
26
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
27
תרגום ציון 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"); }
28
Break כאשר ה switch מזהה איפה להתחיל לפעול הוא " קופץ " לשם ומבצע את הכתוב. כאשר ה switch מזהה איפה להתחיל לפעול הוא " קופץ " לשם ומבצע את הכתוב. הוא ממשיך לעשות כך עד שהוא פוגש במילה break לראשונה. הוא ממשיך לעשות כך עד שהוא פוגש במילה break לראשונה. ברגע שפגש ב break הוא קופץ להמשך התוכנית לאחר ה switch- ברגע שפגש ב break הוא קופץ להמשך התוכנית לאחר ה switch-
29
דוגמא Operation.c Operation.c Operation.c
30
תרגיל כתוב תוכנית המקבלת מספר בין 1 ל 100 אם קיים מטבע שמתאים למספר היא מדפיסה את שמו אם לא היא מדפיסה שאין מטבע כזה. בדוק את תקינות הקלט ! כתוב תוכנית המקבלת מספר בין 1 ל 100 אם קיים מטבע שמתאים למספר היא מדפיסה את שמו אם לא היא מדפיסה שאין מטבע כזה. בדוק את תקינות הקלט !
31
Solution Coins.c Coins.c Coins.c
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.