Computer Programming Fall 2012 6 1 includestdio h

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

Computer Programming Fall 2012 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); }

2 תרגיל כתוב תכנית הקולטת משפט )המילים במשפט מופרדות ברווח אחד בלבד( ומחשבת ומדפיסה

2 תרגיל כתוב תכנית הקולטת משפט )המילים במשפט מופרדות ברווח אחד בלבד( ומחשבת ומדפיסה את . מספר המילים במשפט . num. Words עליך להיעזר בפונקציה int num. Words(char []); //function prototype void main() { char sent[256]; //input sentence puts("Enter the sentence : "); gets(sent); printf("Number of words is %dn“ , num. Words(sent)); } int num. Words(char b[] ){ //function definition int i=0, num=0; do{ if (b[i++]==' ') num++; } while(b[i]); return ++num; }

( )המשך 4 תרגיל void main() { int n 1, n 2, i; int

( )המשך 4 תרגיל void main() { int n 1, n 2, i; int a 1[MAX], a 2[MAX], a 3[MAX * 2]; printf("Number of values for 1 st array: "); scanf("%d", &n 1); for (i = 0; i < n 1; ++i) { printf("Value %d: ", i+1); scanf("%d", &a 1[i]); } printf("Number of values for 2 nd array: "); scanf("%d", &n 2); for (i = 0; i < n 2; ++i) { printf("Value %d: ", i+1); scanf("%d", &a 2[i]); } 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"); }

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

פתרון - 5 תרגיל #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"); }

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

( – פתרון )המשך 5 תרגיל /*********** 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; }

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

( )המשך 6 תרגיל #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; : פתרון