+ +
2 1 1 1.1................................ 1 1.2........................... 2 1.3............................. 2 1.4 ( ).................. 2 1.5........................ 3 1.6...................... 3 1.7.............................. 3 1.8................... 4 1.9........... 4 2 7 2.1....................... 7 2.2................................. 9 2.2.1................................. 9 2.2.2......................... 10 2.3.................................. 11 2.3.1.................................. 11 3 13 3.1..................................... 13 3.2.................................. 13 3.3...................................... 13 3.4.............................. 14 3.5................................... 15 3.6..................................... 16 4 17 4.1 if................................. 17 4.1.1................................... 17 4.1.2............................... 18 4.1.3 switch case....................... 19
5 21 5.1 while............................. 21 5.2 for.............................. 22 5.3 break..................................... 24 6 25 6.1................................... 25 6.2 2.................................... 28 6.3.............................. 29 6.4..................................... 30 7 31 7.1.............................. 31 7.2......................... 31 7.3................................. 32 7.4................ 34 8 37 8.1................................. 37 8.2 include............................. 38 8.2.1 stdio.h....................... 38 8.2.2 stdlib.h.......................... 38 8.2.3 string.h.................... 39 8.2.4 math.h......................... 39 8.3 main...................... 39 8.4...................... 40 8.5............................ 43 8.6..................................... 44 9 45 9.1........................ 45 9.2................................... 46 9.3.............. 47 9.4..................................... 53 10 55 10.1..................................... 55 10.1.1 ( )............... 55 10.1.2................................. 57 10.2 ( )............................. 59
1 1 1.1 1972 Dennis Ritchie OS Algol Pascal ( Algol ) Pascal ANSI C (American National Standards Institute) 1. 2. { Pascal begin end int a; Pascal a:integer; FORTRAN INTEGER A b=(a==10)?1:2; a++; t+=dt; if then else if a=10 then b=1 else B=2 a=a+1 t=t+dt 3. 4. 5. char, int, float, double signed, unsigned, long, short
1 2 6. 7. if, for while, do, switch, break, continue goto 1.2 + 1.3 (1) 3 (2) (3) 1.4 ( ) (p.5 1.1 ) ( 1.2) 2 ( 1.3) 1 ( 1.4)
1 3 1.5 (1) (2) (3) (4) (3) (5) 1.6 (1) (2) (3) (4) (5) 1.7 cmd Enter )
1 4 1.8 ( ) Enter cd dir ( ) dir ( ) cd.. md dir ( ) ( )dir dir copy file1 file2 file1 file2 del file file [Enter] 1.9 fortran C hogehoge.exe =notepad.exe ).c gcc hogehoge.c -o hogehoge.exe ( hogehoge ) C
1 5 #include <stdio.h> int main(void){ /* */ printf("hello, C, hello World!Y=n"); return(0); /* 0 */ hello.c gcc hello.c -o hello.exe hello
7 2 2.1 #include <stdio.h> int main(void){ return(0); main C { void 1 stdio.h stdio.h main return 0 void int return C main 0 return
2 8 #include <stdio.h> int main(void){ /* */ printf("hello!y=n"); printf(" 100 Y=n"); return(0); (1) (2) C C ; { / / // [ ] (1) n (2) Hello!... (2) (2) Hello! (3) Hello!
2 9 2.2 10 int ( ) long int 10 8 16 float double 2 2.2.1 printf 10 %d #include <stdio.h> int main(void){ /* 12 (10 ) */ printf("%dy=n", 12); /* 12 24 (10 ) value= 12, 24 */ printf("value= %d, %dy=n", 12, 24); return(0); printf %d printf 2 12 %d 12 ( ) 10 0xaf00 16 0177 8 10 0123456789 16 0123456789 10 10 15 a f A F 0x 0X
2 10 8 01234567 0 ( 1) 16 123 10 1 16 2 + 2 16 1 + 3 16 0 = 291 ( 2) 16 1f 10 16 a f 10 a=10, b=11, c=12, d=13, e=14, f=15 1 16 1 + 15 16 0 = 31 ( 3) 10 168 16 10 16 1 + 8 16 0 a8 #include <stdio.h> int main(void){ printf("%dy=n", 0x12); / 1 16 1 + 2 16 0 = 18 / printf("%dy=n", 012); / 1 8 1 + 2 8 0 = 10 / printf("%xy=n", 12); / 12 16 0, 16 12 = c / printf("%oy=n", 12); / 12 = 1 8 1 + 4 8 0 / returen(0); 0x 16 0 8 10 16 8 %d %x %o ****************************************************************************** 10 %d 2.2.2 1.23.235 2. 2.0e5 3.5e-4 12.345e+3. 2.0e5 2.0 10 5
2 11 #include <stdio.h> int main(void){ printf("%fy=n", 123456789012345.1234567890); printf("%ey=n", 123456789012345.1234567890); printf("%fy=n", 1.23456789e+3); printf("%ey=n", 123456789e+3); printf("%ey=n", 12.345); printf("%f, %ey=n", 12345.12345, 1.2345e+3); return(0); printf (%d, %f, %e ) %f (18 ) %e (10 n ) 32 (float) 8 23 1 ( ) 2.3 2.3.1 + - * / % * (
2 12 *, / +, - () #include <stdio.h> int main(void){ printf("1.23e+1 + 2.45e-1 = %ey=n", 1.23e+1 + 2.45e-1); printf("1.23e+1-2.45e-1 = %ey=n", 1.23e+1-2.45e-1); printf("1.23e+1 * 2.45e-1 = %ey=n", 1.23e+1 * 2.45e-1); printf("1.23e+1 / 2.45e-1 = %ey=n", 1.23e+1 / 2.45e-1); printf("10 + 7 = %dy=n", 10 + 7); printf("10-7 = %dy=n", 10-7); printf("10 * 7 = %dy=n", 10 * 7); printf("10 / 7 = %dy=n", 10 / 7); printf("10 / 7 = %ey=n", 10 / 7); printf("10. / 7 = %ey=n", 10. / 7); printf("1.0e+1 / 7.0e+0 = %ey=n", 1.0e+1 / 7.0e+0); return(0); 10. printf [ 2-1] A G 7 95 40 58 86 79 62 54
13 3 3.1 (type) int float 1.23e6 double float char 3.2 p.24 int a; / ; / float b=0.0; / (. ) / double c, d; /, / auto, break, double 3.3 r = 3.5; / r 3.5 / n = n + 1; / n 1 /
3 14 j = i++; / j i i 1 / j = ++i; / i 1 j / j = i++; j = i; i = i + 1; j = ++i; i = i + 1; j = i; i--, --i 3.4 2.2 int double float int int double float double double double double float float double float int, double float =
3 15 3.5 scanf #include <stdio.h> int main(void){ /* */ float w, d, h; // (w) (d) (h) float v; // (v) /* */ printf( "w = " ); scanf( "%f", &w ); printf( "d = " ); scanf( "%f", &d ); printf( "h = " ); scanf( "%f", &h ); /* */ v = w * d * h; /* */ printf( " v = %fy=n", v ); return(0); /* 0 */ scanf & scanf float double printf Y=n printf( "w, d, h=" ); scanf( "%d %d %d", &w, &d, &h ); / / [ 2-4]
3 16 r (2πr) (πr 2 ) (4πr 3 /3) (4πr 2 ) π 3.141593 3.6 #include <stdio.h> #include <math.h> / / int main(void){ double a, b, c; / 3 a, b, c / double s, t; / s = (a + b + c)/2, t: / / a, b, c / printf( "a = " ); scanf( "%lf", &a ); printf( "b = " ); scanf( "%lf", &b ); printf( "c = " ); scanf( "%lf", &c ); / T T = s (s a) (s b) (s c), s = (a + b + c)/2 / s = ( a + b + c ) / 2.0; t = sqrt( s * (s - a) * (s - b) * (s - c)); / / printf( " = %fy=n", t ); return(0); scanf %lf [ 2 5] a = 9, b = 12, c = 15
17 4 4.1 if 4.1.1 2 if 1 2 if ( ) { 1 else { 2 else 1 2 { else if if ( 1){ 1 else if ( 2){ 2 else { n+1
4 18 4.1.2 if if 1 if (a==2) x=0.0; / a = 2 x 0.0 / else x=1.0; / x = 1.0 / if 2 if (a >= 1) { / a 1 / y=sin(x); else if ( (0 <= a) && (a < 1) ) { / 0 a < 1 / y=cos(x); else { / a < 0 / printf(" Y=n"); if 3 if (a!=0) { / a 0 / printf("game Over!Y=n"); if(a!=0) if(a) if (a==b) if (a=b) [ 4 1] p.44 List3-3 ( 5 )
4 19 [ 4 2] 2 B A B A ( 3-1 ) 4.1.3 switch case switch case case switch case switch ( ) { case 1: case 2: 1 break; 2 break; case n: default: n break; n+1 switch break switch case if (else if)
4 20 [ 4 3] 64 List3-19 (scanf 3 ) [ 4 4] r 1. 2. 3. 4.
21 5 5.1 while while while ( ) { while n 1 n k = 1 + 2 + + n (while ) k=1 #include <stdio.h> int main(void){ int k, n; / / int sum; / / printf( "n = " ); scanf("%d", &n); / / k=1; sum=0; / k sum / while ( k <= n ) { sum = sum + k; / sum+=k; / k = k + 1; / k++; ++k; / printf(" 1 %d =%dy=n", n, sum); return(0);
5 22 [ 5 1] while printf k sum n = 10 5.2 for while for for ( ; ; ) { for for while ; ; n 1 n k = 1 + 2 + + n (for ) k=1 #include <stdio.h> int main(void){ int k, n; / / int sum; / / printf( "n = " ); scanf("%d", &n); / / sum=0; / sum / for ( k = 1; k <= n; k++ ) { sum = sum + k; / sum+=k; / printf(" 1 %d =%dy=n", n, sum); return(0);
5 23 [ 5 2] n for (for ) #include <stdio.h> int main(void){ int i, j, k; for (i=1; i<=9; i++) { for (j=1; j<=9; j++) { k = i * j; printf("%5d", k); printf("y=n"); return(0); for 1 for( n=10; n<=100; n+=10 ) / n+=10 n=n+10 / 2 for( x=0.0; x<=1.0; x+=0.125 ) / / 1 3 for( i=10; i>=1; i-- ) / / for( i=10; i<=1; i-- ) / / [ 5 3] n 1 n (1 2 + 2 2 + + n 2 ) n for k 2 = 1 n(n + 1)(2n + 1) k=1 6
5 24 5.3 break break break; x ε if ( x < epsilon ) break; break #include <stdio.h> void main(){ int i, n, sum; sum=0; for(i=1; i<=10; i++) { / 10 / printf(" n="); scanf("%d", &n); / / if(n==-1) / n -1 / break; sum+=n; printf("sum=%dy=n", sum); 10-1 [ 5 4] break m m scanf
25 6 C 6.1 10., int point1, point2, point3, point4, point5; int point6, point7, point8, point9, point10;.,,., 10 (array).. int point[10];, point 10. point. point[0] = 55; point[1] = 73; point[2] = 69;. point[9] = 81; N 0 N 1. C 0.
6 26 6 1 8 (74,55,91,48,71,94,83,69),. 6 1 1: #include <stdio.h> 2: int main(void){ 3: 4: int point[8]; /* :8 */ 5: int total; /* */ 6: float average; /* ( ) */ 7: int i; /* */ 8: point[0] = 74; 9: point[1] = 55; 10: point[2] = 91; 11: point[3] = 48; /* point */ 12: point[4] = 71; 13: point[5] = 94; 14: point[6] = 83; 15: point[7] = 69; 16: 17: /* */ 18: total = 0; 19: for ( i = 0 ; i < 8 ; i++ ){ 20: total = total + point[i]; 21: 22: 23: /* */ 24: average = (float) total / 8.0e0; 25: 26: printf( "Total Point = %d\n", total); 27: printf( "Average Point = %f\n", average); 28: 29: return(0); 30: 6 2 (x, y) θ 6 2 1: #include <stdio.h> 2: #include <math.h> 3: 4: int main (void){ 5: 6: float x[2]; /* */
6 27 7: float y[2]; /* */ 8: float theta, pi; /* */ 9: int i, j; /* */ 10: 11: float matrix[2][2]; /* */ 12: 13: printf(" x "); 14: scanf("%f %f", &x[0], &x[1]); /* scanf & */ 15: 16: printf(" [Deg]"); 17: scanf ("%f", &theta); /* scanf & */ 18: 19: /* */ 20: pi = 4.0e0 * atan(1.0e0); 21: 22: /* */ 23: theta = pi * theta / 180.0e0; 24: 25: /* */ 26: matrix[0][0] = cos (theta); 27: matrix[0][1] = -sin (theta); 28: matrix[1][0] = sin (theta); 29: matrix[1][1] = cos (theta); 30: 31: /* y[i] 0 */ 32: y[0] = 0.0e0; 33: y[1] = 0.0e0; 34: 35: 36: /* x[i] */ 37: for (i = 0; i < 2 ; i++){ 38: for (j = 0; j < 2 ; j++){ 39: y[i] = y[i] + matrix[i][j] * x[j]; 40: 41: 42: 43: /* */ 44: printf(" (%f, %f)\n", x[0], x[1]); 45: printf(" (%f, %f)\n", y[0], y[1]); 46: 47: return(0); 48:
6 28 6.2 2, ( ).,. A 11 A 12 A 1M A 12. A 22... A 2M. B 11 B 12 B 1N B 12. B 22... B 2N. C 11 C 12 C 1N = C 12 C 22 C 2N..... (6.1) A L1... A LM B M1... B MN C L1... C LN,. M C ik = A ij B jk = C ik (i = 1, 2,... L, k = 1, 2,... N) (6.2) j=1, 2,. 6 3 A, B 3 4 8 1 5 0 A = 0 7 1, B = 0 9 3 4 3 4 3 2 4 6 3 1: #include <stdio.h> 2: int main(void){ 3: 4: int matrixa[3][3] = {3,4,8,0,7,1,4,3,4; 5: int matrixb[3][3] = {1,5,0,0,9,3,3,2,4; 6: int matrixc[3][3] ; 7: int i, j, k; /* */ 8: /* matrixc 0 */ 9: 10: for ( i = 0 ; i < 3 ; i++ ){ 11: for ( j = 0 ; j < 3 ; j++ ){ 12: matrixc[i][j] = 0; 13: 14: 15 16: for ( i = 0 ; i < 3 ; i++ ){ 17: for ( j = 0 ; j < 3 ; j++ ){
6 29 18: for ( k = 0 ; k < 3 ; k++ ){ 19: matrixc[i][k] = matrixc[i][k] 20: +matrixa[i][j]*matrixb[j][k]; 21: 22: 23: 24: printf("c[i, j] = \n"); 25: for ( i = 0 ; i < 3 ; i++ ){ 26: for ( j = 0 ; j < 3 ; j++ ){ 27: printf(" %3d ", matrixc[i][j]); 28: 29: printf("\n"); 30: 31: 32: return(0); 33:,. 4 matrixa, (C 0 ). matrixa[0][0] = 3; matrixa[0][1] = 4; matrixa[0][2] = 8; matrixa[1][0] = 0; matrixa[1][1] = 7; matrixa[1][2] = 1; matrixa[2][0] = 4; matrixa[2][1] = 3; matrixa[2][2] = 4; 6.3 (Char ),.,. kikai 5,. char moji[6]; 1. strcpy kikai.
6 30 6 4 kikai printf 6 4 1: #include <stdio.h> 2: #include <string.h> /* strcpy */ 3: int main(void) 4: { 5: char moji[6]; /* 5 */ 6: strcpy( moji, "kikai" ); 7: printf( "moji = %s\n", moji); 8: 9: return(0); 10: C 0,. kikai moji. moji k i k a i 0 [0] [1] [2] [3] [4] [5] 6.4 A, B A = ( ) 2 4 5, B = 3 0 1 2 7 0 3 1 4 081234567-No6-HW.c : arai@nuae.nagoya-u.ac.jp : 11 17 ( ) 17:00 : 08XXXXXXX-No6-HW.c (XXXX ) Subject: 6
31 7 C,,,,. C,., 7.1, 2., int i;, i. int 1.,, ( )., i = 256;, i.,. i. a = &i;, &,., a, ( ). 7.2 a int float,.
7 32 int *a;, a a int,. 1: #include <stdio.h> 2: int main(void){ 3: int i; /* i */ 4: int *a; /* a */ 5: i = 128; /* i 128 */ 6: a = &i; /* a i */ 7: return(0); 8: 6 a i ( 128 )., a.,. 1: #include <stdio.h> 2: int main(void){ 3: int i; 4: int *a; 5: i = 128; 6: a = &i; 7: printf( "i = %d\n", *a); 8: return(0); 9: 7 7: printf( "i = %d\n", i);., *a *( ), a ( 128).,. 7.3, 10. int a[10];.
7 33 a 0 1 2 3 4 5 6 7 8 9, 10., a[0] p.,. int *p; p = &a[0]; C, p a, p + 1., p + i a[i] &a[i] a i, *(p + i), a[i]., a[0], &a[0] a,. 2 7 1 1 1000, 1: #include <stdio.h> 2: int main(void){ 3: int a[1000]; 4: int i, total; 5: for ( i = 0 ; i < 1000 ; i++ ){ 6: a[i] = i + 1; 7: 8: total = 0; 9: for ( i = 0 ; i < 1000 ; i++ ){ 10 total = total + a[i]; 11: 12: printf( "1 1000 %d\n", total); 13: return(0); 14
7 34 7 2 7 1 1 N N scanf 1: #include <stdio.h> 2: int main(void){ 3: int a[1000]; 4: int i, total, N; 5: printf("n = "); 6: scanf("%d", &N); 7: if ( N > 1000 ){ 8: printf("n 1000 \n"); 9: exit(0); 10: 11: for ( i = 0 ; i < N ; i++ ){ 12: *(a + i) = i + 1; 13: 14: total = 0; 15: for ( i = 0 ; i < N ; i++ ){ 16: total = total + *(a + i); 17: 18: printf( "1 N %d\n", total); 19: return(0); 20 6 7,8,9 12, 16 scanf N 1000 a 7.4 ( ) 1000 1000 (1000 ) ( )
7 35, malloc., 7 1, 1000. p = (int*) malloc( 1000*sizeof(int) );, 1000 * sizeof(int) 1000, p., malloc (int*), malloc char* ( ).,, (,, ). 7 3 7 1. 1: #include <stdio.h> 2: #include <stdlib.h> 3: int main(void){ 4: int *a; 5: int i, total; 6: a = (int*) malloc (1000 * sizeof(int)); 7: if ( a == NULL ){ 8: printf( " \n"); 9: exit(0); 10: 11: for ( i = 0 ; i < 1000 ; i++ ){ 12: a[i] = i + 1; 13: 14: total = 0; 15: for ( i = 0 ; i < 1000 ; i++ ){ 16: total = total + a[i]; 17: 18: printf( "1 1000 = %d\n", total); 19: return(0); 20: 1,2 4 7 12, 16 malloc NULL include a malloc (NULL) *(a + i)
7 36 7 1 scanf ( ) 1: #include <stdio.h> 2: #include <stdlib.h> 3: void main(){ 4: int *p; 5: int a0, d, i, N; 6: printf(" "); 7: scanf("%d", &a0); 8: printf(" "); 9: scanf("%d", &d); 10: printf(" "); 11: scanf("%d", &N); 12: p = (int*) malloc ( N * sizeof(int) ); 13: for ( i = 0 ; i < N ; i++ ){ 14:... 15: scanf
37 8 C,., printf scanf C,. 8.1, 1: #include <stdio.h> 2: #include <stdlib.h> 3: int main(void) { 4: printf("hello, world\n"); 5: return(0); 6:, printf (main). ( )., ( ) "hello, world" printf. printf.. 1: #include <stdio.h> 2: #include <stdlib.h> 3: #include <math.h> 4: int main(void){ 5: double a, b; 6: a = 3.141593e0/3.0e0; 7: b = cos(a); 8: printf("b = %f\n", b); 9: return(0); 10:
8 38 a = π/3 (cos) cos. math.h 2, cos printf, printf ( ).,. cos. 8.2 include printf, C, include. 1: #include <stdio.h> 2: #include <stdlib.h> 3: #include <math.h> 3 include, include, stdio.h, stdlib.h math.h,.h. printf stdio.h, stdio.h. stdlib.h exit, cos, math.h.. 8.2.1 stdio.h stdio.h include. stdio.h. close() ctermid() cuserid() fclose() feof() ferror() fileno() fopen() fread() fseek() getc() getchar() gets() lseek() open() pipe() popen() printf() putc() putchar() puts() read() scanf() setbuf() system() tmpfile() tmpnam() ungetc() write() 8.2.2 stdlib.h calloc(), malloc(), stdlib.h.
8 39 abort() abs() atof() atoi() atol() bsearch() calloc() exit() free() getenv() malloc() mblen() mbstowcs() mbtowc() qsort() rand() realloc() srand() wcstombs() wctomb() 8.2.3 string.h string.h. strcat() strncat() strdup() strcmp() strncmp() strcasecmp() strncasecmp() strcpy() strncpy() strlen() strchr() strrchr() strpbrk() strspn() strcspn() strstr() strtok() index() rindex() 8.2.4 math.h math.h,. acos() asin() atan() atan2() ceil() cos() cosh() exp() fabs() floor() fmod() frexp() ldexp() log() log10() modf() pow() sin() sinh() sqrt() tan() tanh() 8.3 main (cos) 8 1 (60 ) ( ) 1: #include <stdio.h> 2: #include <stdlib.h> 3: #include <math.h> 4: int main(void){ 5: float theta; /* 60 */ 6: float rad; /* */ 7: float pi = 3.14159e0; /* */ 8: float get_radian( float ); /* get_radian 9: */ 10: printf(" (60 ) "); 11: scanf("%f", &theta); 12:
8 40 13: /* 60 */ 14: rad = get_radian( theta ); 15: 16: /* */ 17: printf(" %f [rad] \n", rad); 18: printf(" %f [rad] \n", rad/pi); 19: return(0); 20: 21: 22: /* get_radian */ 23: float get_radian ( float a ) { 24: float b; 25: float pi = 3.14159e0; 26: 27: b = a * pi / 180.0e0; 28: 29: /* */ 30: return ( b ); 31: get radian() ( ) float float 7: float get_radian( float ); 14 ( ) rad cos sin get radian 22 7 ( ) return( ) main C 8.4, a b, change()., (1),.
8 41 8 2 a b. 8 2 (1) ( ) 1: #include <stdio.h> 2: #include <stdlib.h> 3: int main(void){ 4: int a = 3; 5: int b = 8; 6: void change( int, int ); 7: 8: printf("a = %d, b = %d\n", a, b); 9: 10: change ( a, b ); 11: 12: printf(" \n"); 13: printf("a = %d, b = %d\n", a, b); 14: return(0); 15: 16: 17: void change(int x, int y){ 18: int tmp1, tmp2; 19: tmp1 = x; 20: tmp2 = y; 21: x = tmp2; 22: y = tmp1; 23:, main., x, y., main( ),., ( tmp1 tmp2), main., 6 change, void., a b change, change,., ( ),. C,, ( ).,,.,. (1).
8 42 8 2 (2) ( ) 1: #include <stdio.h> 2: #include <stdlib.h> 3: int main(void){ 4: int a = 3;1G 5: int b = 8; 6: void change( int*, int* ); 7: 8: printf("a = %d, b = %d\n", a, b); 9: 10: change ( &a, &b ); 11: 12: printf(" \n"); 13: printf("a = %d, b = %d\n", a, b); 14: return(0); 15: 16: 17: void change(int *x, int *y){ 18: int tmp1, tmp2; 19: tmp1 = *x; 20: tmp2 = *y; 21: *x = tmp2; 22: *y = tmp1; 23:, main change a b &a, &b. change, (*a, *b). ( ),. x, y 16 16: void change(int *x, int *y) x y, *x *y int x y int change 6: void change( int*, int* ); change ( int* &int ) C
8 43 8.5,..,. 8 3 N1 N2, ( x) σ ( σ 2 = 1 N (x i x) 2) N. i=1 8 3 1: #include <stdio.h> 2: #include <stdlib.h> 3: #include <math.h> 4: int main(void){ 5: int N1, N2; /* */ 6: int i, num, sum; /* num: sum: */ 7: float av, sigma; /* av: sigma: */ 8: int a[1000]; /* */ 9: /* */ 10: void get_sum_av ( int[], int, int*, float*, float* ); 11: printf("n1? "); 12: scanf("%d", &N1); 13: printf("n2? "); 14: scanf("%d", &N2); 15: num = N2 - N1 + 1; 16: if ( num > 1000 ) { 17: printf(" \n"); 18: exit(0); 19: 20: for ( i = 0 ; i < num ; i++ ){ 21: a[i] = N1 + i; 22: 23: /*! */ 24: get_sum_av ( a, num, &sum, &av, &sigma ); 25: printf(" %d\n", sum); 26: printf(" %f\n", av); 27: printf(" %f\n", sigma); 28: return(0); 29: 30: /* */ 31: void get_sum_av (int a[], int num, int *sum, float *av, float *sigma){ 32: int k; 33: float tmp; 34: for ( k = 0, *sum = 0 ; k < num ; k++ ){ 35: *sum = *sum + a[k];
8 44 36: 37: *av = (float)(*sum) / (float)num; 38: for ( k = 0, tmp = 0.0e0 ; k < num ; k++ ){ 39: tmp = tmp + ( (float)a[k] - *av )*( (float)a[k] - *av ); 40: 41: *sigma = sqrt( tmp / (float)num ); 42: return; 43: get sum 1 2 10: void get_sum_av ( int[], int, int*, float*, float* ); void 24: get_sum_av ( int a[], int num, &sum, &av, &sigma ){ 31: void get_sum_av (int a[], int num, int *sum, float *av, float *sigma){ ( ) a ( 7 ) 8.6. 1. scanf 2. taiseki main. : arai@nuae.nagoya-u.ac.jp : 26 12 8 ( ) 17:00 : 08XXXXXX-No8.c ( ) Subject: 8
45 9 9.1 (1)., 1 FILE. FILE *fp; fp (2), fopen,, 2. 1 FILE Structure
9 46 fp = fopen("testfile.c","r"); fp = fopen(f_name, "r"); (f_name[]),. ( ),,.,.. r : w : ( ) ( ) fopen., fp. (3) fclose,. fclose(fp); 9.2 fopen NULL., exit., exit stdlib.h,. if((fp = fopen("test.c","r")) == NULL){ printf("file can not open!\n"); exit(1); exit, 0, 0.
9 47 9.3 C fgetc : fgetc, 1. fp ( ) 1 (EOF = End Of File) char int int 2 FILE *fp; int moji; if((fp = fopen("input.dat.c","r")) == NULL){ printf("file can not open! \n"); exit(1); moji = fgetc(fp);... fputc : fputc,, 1. fp c(int ). FILE *fp; int c;... fputc(c, fp); fgets : fgets, 3 2 1 3 2 char ( ) char EOF 3 MS-Windows PC <CR><LR> ( ) UNIX(Linux) <LF>, Machintosh <CR>
9 48 FILE *fp; char s[256];... fgets(s, 256, fp); fgets ( ) NULL fputs : fputs fgets ( ) 1 2, n ( n), n-1. fputs(s, 256, fp); 9 1 1,. 9 1 1: #include <stdio.h> 2: #include <stdlib.h> 3: int main(voiod){ 4: int c; 5: char fname[24]; 6: FILE *fp; 7: 8: printf(" \n"); 9: scanf("%s", fname); 10: 11: if((fp = fopen(fname, "r")) == NULL){ 12: printf(" \n"); 13: exit(1); 14: 15: while((c = getc(fp))!= EOF) { 16: putchar(c); 17: 18: fclose(fp); 19: return(0); 20: ( ), getc EOF(-1), while.
9 49 9 2 1,. 9 2 1: #include <stdio.h> 2: #include <stdlib.h> 3: 4: int main(void){ 5: char fname1[24], fname2[24]; 6: char buf[256]; 7: FILE *fp1, *fp2; 8: 9: printf(" \n"); 10: scanf("%s", fname1); 11: printf(" \n"); 12: scanf("%s", fname2); 13: 14: if((fp1 = fopen(fname1, "r")) == NULL){ 15: printf(" \n"); 16: exit(1); 17: 18: if((fp2 = fopen(fname2, "w")) == NULL){ 19: printf(" \n"); 20: exit(1); 21: 22: 23: while( fgets(buf, 256, fp1)!= NULL ) { 24: fputs(buf, fp2); 25: 26: fclose(fp1); 27: fclose(fp2); 28: return(0); 29: 24 fprintf(fp2, "%s", buf);
9 50 fprintf : fprintf,, printf.,. Hello World (fp).,. fprintf(fp, "Hello World\n"); fscanf : fscanf, scanf.. fp,, a. fscanf(fp, "%d", &a); 9 3 Arai 70 Matsumoto 85 Morita 80... 9 3 1: #include <stdio.h> 2: #include <stdlib.h> 3: int main(void){ 4: char name[256]; /* */ 5: char top_name[256]; /* */ 6: int point; /* */ 7: char fname[24]; /* */ 8: FILE *fp; /* */ 9: int max_point = 0; /* */ 10: 11: printf(" \n"); 12: scanf("%s", fname); 13: 14: if((fp = fopen(fname, "r")) == NULL){ 15: printf(" \n"); 16: exit(1); 17: 18:
9 51 19 /* while */ 20: while( fscanf(fp, "%s %d", name, &point )!= EOF ){ 21: 22: /* */ 23: if ( point > max_point ){ 24: 25: /*, max_point */ 26: max_point = point; 27: 28: /* top_name */ 29: strcpy( top_name, name ); 30: 31: 32: fclose(fp); 33: printf(" %s %d \n", top_name, max_point); 34: return(0); 35: fscanf EOF while name top name strcpy ( )
9 52 9 3( ) 1: #include <stdio.h> 2: #include <stdlib.h> 3: int main(void){ 4: char name[100][256];/* 100 */ 5: int point[100]; /* 100 */ 6: char fname[24]; /* */ 7: FILE *fp; /* */ 8: int index = 0; /* */ 9: int max_point = 0; /* */ 10: int i; /* */ 11: 12: printf(" \n"); 13: scanf("%s", fname); 14 15: if((fp = fopen(fname, "r")) == NULL){ 16: printf(" \n"); 17: exit(1); 18: 19: 20: /* for */ 21: /* 100 */ 22: for ( i = 0; i < 100 ; i++ ){ 23: 24: /* */ 25: if ( fscanf(fp, "%s %d", name[i], &(point[i]) ) == EOF ) 26: break; 27: 28: /* */ 29: if ( point[i] > max_point ){ 30: max_point = point[i]; 31: index = i; 32: 33: 34: fclose(fp); 35: printf(" %s %d \n", name[index], point[index]); 36: return(0); 37:
9 53 9.4 ( ), 2 #include <stdio.h> #include <stdlib.h> int main(void){ float *temp; /* */ char fname1[128]; /* */ char fname2[128]; /* */ FILE *fp1; /* */ FILE *fp2; /* */ int num; /* */ int i; /* */ float time; /* */ float delta_t; /* */ printf(" (1 [ ]) \n"); scanf("%s", fname1); if((fp1 = fopen(fname1, "r")) == NULL){ printf(" \n"); exit(1); printf(" (2 [K]) \n"); scanf("%s", fname2); if((fp2 = fopen(fname2, "w")) == NULL){ printf(" \n"); exit(1); /* (num) (delta_t) */ fscanf(fp1, "%d %f", &num, &delta_t); printf("delta_t = %f\n", delta_t); /* ( ) num */ temp = malloc ( num * sizeof( float ) ); /* temp num (double) */ /* temp[i]! */ /* for */ for ( i = 0; i < num ; i++ ){ /* */ fclose(fp1); return(0);
9 54 ( ), 20 2.0 18.0 22.0 24.0 38.0 31.0 32.0... 28.0 25.0 22.0 20.0 : arai@nuae.nagoya-u.ac.jp : 12 22 ( ) 17:00 : 08XXXXXXX-No9-HW.c (XXXX )
55 10 C 10.1 10.1.1 ( ), f(x) x, (Σ) y k=2 k=3 k=1 k=n a b x Fig.1 f(x) [a, b] [a, b] N x k x k = a + 1 x(2k 1), (k = 1, 2,..., N) (10.1) 2 x = b a N (10.2)
10 56 x k y k = f(x k ) (10.3) S k = f(x k ) x (10.4) [a, b] N N S = S k = f(x k ) x (10.5) k=1 k=1 10 1 y = 3x 2 [1, 2] N 10 1 1: #include <stdio.h> 2: #include <stdlib.h> 3: #include <math.h> 4: 5: int main(void){ 6: int k, N; 7: double a, b; /* */ 8: double x; /* */ 9: double dx; /* */ 10: double s; /* */ 11: 12: printf(" \n"); 13: scanf("%d", &N); 14: a = 1.0; 15: b = 2.0; 16: dx = ( b - a ) / (double)n; 17: 18: for( k = 1, s = 0.0 ; k <= N ; k++ ){ 19: x = a + 0.5*dx*(2.0*(double)k - 1.0); 20: s = s + 3.0 * x * x * dx ; 21: 22: printf(" %f\n", s); 23: return(0); 24: N k double
10 57 10.1.2 y k=2 k=1 k=3 k=n a b x Fig.2 [a, b] N (k ) x L k xr k x L k = a + (k 1) x, (k = 1, 2,..., N) (10.6) x R k = a + k x, (k = 1, 2,..., N) (10.7) y L k = f(x L k ), y R k = f(x R k ) (10.8) (y L k ) (y R k ) ( x) 2 S k = 1 2 {f(xl k ) + f(x R k ) x (10.9) [a, b] N N S = S k = k=1 k=1 1 2 {f(xl k ) + f(x R k ) x (10.10) [a, b] [ ] 1 { N 1 S = f(a) + f(b) + f(x k ) x, x k = k x (10.11) 2 k=1
10 58 10 2 y = 3x 2 [1, 2] N 10 1 1: #include <stdio.h> 2: #include <stdlib.h> 3: #include <math.h> 4: int main(void){ 5: int k, N; 6: double a, b; /* */ 7: double xl, xr; /* */ 8: double yl, yr; /* */ 9: double dx; /* */ 10: double s; /* */ 11: double f( double ); /* f(x) */ 12: printf(" \n"); 13: scanf("%d", &N); 14: a = 1.0; 15: b = 2.0; 16: dx = ( b - a ) / (double)n; 17: for( k = 1, s = 0.0 ; k <= N ; k++ ){ 18: xl = a + dx*((double)k - 1.0); 19: xr = a + dx*(double)k; 20: yl = f(xl); 21: yr = f(xr); 22: s = s + 0.5 * ( yl + yr ) * dx; 23: 24: printf(" %f\n", s); 25: return(0); 26: 27: /* f(x) = 3*x*x */ 28: double f ( double x ){ 29: return ( 3.0 * x * x ); 30: (10) (11) 17 23 s = 0.5 * ( f(a) + f(b) ) * dx; for( k = 1 ; k < N ; k++ ){ xl = a + (double)k * dx; s = s + f(xl) * dx ;
10 59 10.2 ( ) f( x A ) f( x M ) > 0 f( x B ) f( x M ) < 0 N x B x A x M N+1 Fig.3 2 ax 2 + bx + c = 0 2 y = ax 2 + bx + c y = 0 f(x) = 0 3, y = f(x) [x A, x B ] x, f(x A ) f(x B )., f(x A ) f(x B ) < 0 [x A, x B ] x M, [x A, x M ] [x M, x B ] (y ) [x M, x B ] [x A, x M ] f(x A )f(x M ) > 0, f(x B )f(x M ) < 0 (10.12) f(x A )f(x M ) < 0, f(x B )f(x M ) > 0 (10.13) 2, [x A, x B ] [x A, x B ], x M x B x A x 0 B x 0 A < ϵ (10.14) x 0 A x0 B ε, 1 10 5 10 8.
10 60 10 3 ln x sin(x) = 0 [1, 5] 10 3 1: #include<stdio.h> 2: #include <stdlib.h> 3: #include<math.h> 4: int main(void){ 5: double a, b, m, dx0; 6: double eps; 7: double f( double ); /* f(x) */ 8: a = 1.0; 9: b = 5.0; 10: dx0 = b - a; 11: eps = 1.0e-8; 12: 13: if ( f(a)*f(b) > 0.0 ) { /* [a, b] */ 14: printf(" [%d, %d] \n", a, b); 15: 16: /* */ 17: while( fabs( (b - a)/dx0 ) > eps ){ 18: m = 0.5 * ( a + b ); 19: printf(" m = %f\n", m); 20: if( f(a)*f(m) < 0.0 ){ /* [a, m] */ 21: b = m; /* [a,m] */ 22: 23: else if( f(b)*f(m) < 0.0 ){ /* [b, m] */ 24: a = m; /* [m,b] */ 25: 26: else { 27: /* */ 28: /* f(m) 0 m */ 29: printf(" (f(m)=0 %f \n", m); 30: exit(0); 31: 32: 33: /* */ 34: printf(" %f \n", m); 35: return(0); 36: 37: /* f(x) */ 38: double f(double x){ 39: return( log(x) - sin(x) ); 40: