Computer Programming 6 1 includestdio h int max

  • Slides: 26
Download presentation
Computer Programming 6 תרגול פונקציות 1

Computer Programming 6 תרגול פונקציות 1

 דוגמה - פונקציות כתוב פונקציה המחשבת ומחזירה את המספר הגדול ביותר בין שלושת

דוגמה - פונקציות כתוב פונקציה המחשבת ומחזירה את המספר הגדול ביותר בין שלושת המספרים השלמים : המועברים לפונקציה כפרמטרים • • • • • #include<stdio. h> int max 3(int, int); //function prototype void main() { int a, b, c; //input variables printf("enter 3 integers : "); scanf("%d%d%d", &a, &b, &c); printf("maximum integer is : %dn", max 3(a, b, c)); } int max 3(int x, int y, int z) //function definition { int max; //help variable max=x; if(y>max) max=y; if(z>max) max=z; return max; }

 דוגמה - פונקציות . מחשבת ומדפיסה את המספר הגדול ביותר בין כל המספרים

דוגמה - פונקציות . מחשבת ומדפיסה את המספר הגדול ביותר בין כל המספרים הנקלטים , מספרים שלמים 30 כתוב תוכנית הקולטת . • • • #include<stdio. h> int max 3(int, int); //function prototype void main() { int a, b, c, i, max; scanf("%d%d%d", &a, &b, &c); max= max 3(a, b, c); for (i=1; i<10; i++) { scanf("%d%d%d", &a, &b, &c); if (max 3(a, b, c)>max) max= max 3(a, b, c); } printf ("max= %dn", max); } /*Here we will place the implementation of max 3*/ max 3 נשתמש בפונקציה

: דוגמאות למימוש הפונקציות לטיפול במחרוזות /********************************* • Parameters: s - array of chars,

: דוגמאות למימוש הפונקציות לטיפול במחרוזות /********************************* • Parameters: s - array of chars, must contain ‘’. • Returns: length of string that s holds • **********************************/ • unsigned int strlen(char s[]) • { • unsigned int len = 0; • while (s[len] != ’’) • len++; • return len; • } • /********************************** • Compares two strings lexicographically • Parameters: s, t - string to be compared • Returns: lexicographical difference between s and t • **********************************/ • int strcmp(char s[], char t[]) • { • int i; • for (i = 0; s[i] == t[i]; i++) • if (s[i] == '') • return 0; e return s[i] - t[i]; }

1 תרגיל . סטודנטים בקורס תכנות בשפת סי 100 כתוב תוכנית הקולטת ציונים שקיבלו

1 תרגיל . סטודנטים בקורס תכנות בשפת סי 100 כתוב תוכנית הקולטת ציונים שקיבלו . התוכנית ומדפיסה את המספר הסידורי של הסטודנטים שקיבלו ציון גבוה מהציון הממוצע #include<stdio. h> #define NUM_STUD 100 /**** Function prototypes *****/ void input. Grades(int [], int); float avg(int [], int); void best. Stud(int [], float, int); void main() { int grades[NUM_STUD]; //data array float av_mark; //average mark input. Grades(grades, NUM_STUD); av_mark=avg(grades, NUM_STUD); best. Stud(grades, av_mark, NUM_STUD); }

( )המשך פתרון 1 תרגיל /******* Function definitions *****/ void input. Grade(int arr[], int

( )המשך פתרון 1 תרגיל /******* Function definitions *****/ void input. Grade(int arr[], int size) { int i; //loop variable for(i=0; i<size; i++) { printf("Enter %d student mark -> ", i+1); scanf("%d", &arr[i]); } } float avg(int arr[], int size) { int sum=0; // sum of grades int i; //loop variable for (i=0; i<size; i++) sum=sum+arr[i]; return sum/(float)size; } void best. Stud(int arr[], float av, int size) { int i; //loop variable for(i=0; i<size; i++) if (arr[i]>av) printf("The best student number is %dn", i+1); }

( )המשך 1 תרגיל . אם יש יותר מידי מספרים עוקבים שקיבלו ציון מעל

( )המשך 1 תרגיל . אם יש יותר מידי מספרים עוקבים שקיבלו ציון מעל הממוצע אז יש חשד להעתקה , לדעת המרצה עברו את קורס הקדם , המרצה רוצה אפשרות לראות כמה סטודנטים מתוך החשודים , במקרה כזה . שנו את הפונקציה הראשית כדי שתתמוך בפעולות הללו. 90 בציון void main() { int grades[NUM_STUD], int Suspecious. Grades[NUM_STUD] = {0}, suspecious=0; float av_mark; input. Grades(grades, NUM_STUD); av_mark=avg(grades, NUM_STUD); best. Stud(grades, av_mark, NUM_STUD); printf(“how many students are suspicious? ”); scanf(“%d”, suspicious); } if(suspicious) { input. Grades(Suspecious. Grades, suspicious); best. Stud(Suspecious. Grades, 90, suspicious); }

( )המשך 3 תרגיל int Get. Values(int arr[], int arr. Num) { int num.

( )המשך 3 תרגיל int Get. Values(int arr[], int arr. Num) { int num. Of. Values, i; printf(“Enter values for array number %d”, arr. Num); scanf(“%d”, &num. Of. Values); for(i=0; i < num. Of. Values; i++) { printf(“Enter value number %d”, i+1); scanf(“%d”, &arr[i]) } } return num. Of. Values; void main() { int n 1, n 2, i; int a 1[MAX], a 2[MAX], a 3[MAX * 2]; n 1 = Get. Values(a 1, 1); n 2 = Get. Values(a 2, 2); merge(a 1, n 1, a 2, n 2, a 3); for (i = 0; i < n 1 + n 2; ++i) printf("%d ", a 3[i]); printf("n"); }

 פתרון - 4 תרגיל #include<stdio. h> #define TRUE 1 #define FALSE 0 #define

פתרון - 4 תרגיל #include<stdio. h> #define TRUE 1 #define FALSE 0 #define ROW 15 #define COL 18 /************ Function prototypes ***********/ void in_arr(int [][COL], int); int is_flower(int[][COL], int); /********************************/ void main() { int arr[ROW][COL]; //input array int count=0; //number of flowers int i, j; //loop counters in_arr(arr, ROW, COL); for(i=0; i<ROW; i++) for(j=0; j<COL; j++) count=count+is_flower(arr, i, j); if(count>=5) printf("Yesn"); else printf("Non"); }

( – פתרון )המשך 4 תרגיל /*********** Function definitions *************/ void in_arr(int a[][COL], int

( – פתרון )המשך 4 תרגיל /*********** Function definitions *************/ void in_arr(int a[][COL], int n, int m) { int i, j; //loop counters for(i=0; i<n; i++) for(j=0; j<m; j++) { printf("Enter %d row %d col element -> ", i+1, j+1); scanf("%d", &a[i][j]); } } int is_flower(int b[][COL], int k, int l) { int sum; //sum of flower's elements if(k==0||k==ROW-1||l==0|l==COL-1) return FALSE; sum=b[k-1][l-1]+b[k-1][l+1]+b[k+1][l-1]+b[k+1][l+1]; if(b[k][l]==sum) return TRUE; else return FALSE; }

( )המשך 4 תרגיל void main() { : נבצע שינוי קטן בפונקציה הראשית int

( )המשך 4 תרגיל void main() { : נבצע שינוי קטן בפונקציה הראשית int arr[ROW][COL]; //input array int count=0, count. Square. Flower = 0; //number of flowers int i, j; //loop counters in_arr(arr, ROW, COL); for(i=0; i<ROW; i++) for(j=0; j<COL; j++) if(is_flower(arr, i, j)) { count=count++; count. Square. Flower += is_flower. Square(arr, i, j) if(count>=5) } printf(“Yesn"); if(count. Square. Flower) { printf(“Squaren"); } else } printf("Non"); ? איך התשובה הייתה נראית אם לא היינו משתמשים בפונקציות

( )המשך 5 תרגיל #include <stdio. h> #define ARR_SIZE 20 /*Pascal Triangle -prints a

( )המשך 5 תרגיל #include <stdio. h> #define ARR_SIZE 20 /*Pascal Triangle -prints a pascal triangle Parameters: n. Lines - bottom line level */ void pascal. Tri(int n. Lines) { int arr[ARR_SIZE+1] = {0}; int i, level; /*Check if level is in array bounds: */ if (n. Lines >= ARR_SIZE) return; for (level = 0; level <= n. Lines; level++) { /*Set the last number in level to 1: */ arr[level] = 1; : פתרון