+ +

Similar documents
卒 業 研 究 報 告.PDF

2 P.S.P.T. P.S.P.T. wiki 26

USB ID TA DUET 24:00 DUET XXX -YY.c ( ) XXX -YY.txt() XXX ID 3 YY ID 5 () #define StudentID 231

Original : Hello World! (0x0xbfab85e0) Copy : Hello World! (0x0x804a050) fgets mstrcpy malloc mstrcpy (main ) mstrcpy malloc free fgets stream 1 ( \n

mstrcpy char *mstrcpy(const char *src); mstrcpy malloc (main free ) stdio.h fgets char *fgets(char *s, int size, FILE *stream); s size ( )

1 return main() { main main C 1 戻り値の型 関数名 引数 関数ブロックをあらわす中括弧 main() 関数の定義 int main(void){ printf("hello World!!\n"); return 0; 戻り値 1: main() 2.2 C main

1 C STL(1) C C C libc C C C++ STL(Standard Template Library ) libc libc C++ C STL libc STL iostream Algorithm libc STL string vector l

A/B (2018/10/19) Ver kurino/2018/soft/soft.html A/B

[1] #include<stdio.h> main() { printf("hello, world."); return 0; } (G1) int long int float ± ±

1 4 2 EP) (EP) (EP)

数値計算

‚æ4›ñ

新・明解C言語 ポインタ完全攻略

PowerPoint プレゼンテーション

C 2 / 21 1 y = x 1.1 lagrange.c 1 / Laglange / 2 #include <stdio.h> 3 #include <math.h> 4 int main() 5 { 6 float x[10], y[10]; 7 float xx, pn, p; 8 in

超初心者用

18 C ( ) hello world.c 1 #include <stdio.h> 2 3 main() 4 { 5 printf("hello World\n"); 6 } [ ] [ ] #include <stdio.h> % cc hello_world.c %./a.o

ex14.dvi

1.ppt

: CR (0x0d) LF (0x0a) line separator CR Mac LF UNIX CR+LF MS-DOS WINDOWS Japan Advanced Institute of Science and Technology

:30 12:00 I. I VI II. III. IV. a d V. VI

‚æ2›ñ C„¾„ê‡Ìš|

1 1.1 C 2 1 double a[ ][ ]; 1 3x x3 ( ) malloc() 2 double *a[ ]; double 1 malloc() dou

新版明解C言語 実践編

[ 1] 1 Hello World!! 1 #include <s t d i o. h> 2 3 int main ( ) { 4 5 p r i n t f ( H e l l o World!! \ n ) ; 6 7 return 0 ; 8 } 1:

1 1.1 C 2 1 double a[ ][ ]; 1 3x x3 ( ) malloc() malloc 2 #include <stdio.h> #include

PC Windows 95, Windows 98, Windows NT, Windows 2000, MS-DOS, UNIX CPU

Microsoft PowerPoint - CproNt11.ppt [互換モード]

C¥×¥í¥°¥é¥ß¥ó¥° ÆþÌç

I. Backus-Naur BNF : N N 0 N N N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) (2) (3) (4) II. 0(0 101)* (

(1 ) scanf(

スライド タイトルなし

:30 12:00 I. I VI II. III. IV. a d V. VI

I. Backus-Naur BNF S + S S * S S x S +, *, x BNF S (parse tree) : * x + x x S * S x + S S S x x (1) * x x * x (2) * + x x x (3) + x * x + x x (4) * *

untitled

I J

C言語によるアルゴリズムとデータ構造

/* do-while */ #include <stdio.h> #include <math.h> int main(void) double val1, val2, arith_mean, geo_mean; printf( \n ); do printf( ); scanf( %lf, &v

C による数値計算法入門 ( 第 2 版 ) 新装版 サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. このサンプルページの内容は, 新装版 1 刷発行時のものです.

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裱£²²ó ¡Ý½ÉÂꣲ¤Î²òÀ⡤±é½¬£²¡Ý

Microsoft Word - Cプログラミング演習(9)

数値計算

ディジタル信号処理

kiso2-06.key

num2.dvi

9 8 7 (x-1.0)*(x-1.0) *(x-1.0) (a) f(a) (b) f(a) Figure 1: f(a) a =1.0 (1) a 1.0 f(1.0)

新・明解C言語 実践編

ファイル入出力

PowerPoint Presentation

all.dvi

II ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 D

(K&R 2.9) ~, &,, >>, << 2. (K&R 5.7) 3. (K&R 5.9) 4. (K&R 5.10) (argc argv atoi(), atof() ) 5. (K&R 7.5) (K&R 7.6) - FILE, stdin, stdout, std

prog-text.dvi

ゲームエンジンの構成要素

C ( ) C ( ) C C C C C 1 Fortran Character*72 name Integer age Real income 3 1 C mandata mandata ( ) name age income mandata ( ) mandat

ファイル入出力

C

1.1 1 C IIA $ cd comp3a %endminipage ~/comp3a mkdir $ mkdir comp3a $ cd comp3a C.c Emacs Cntrol x Control s 2 Emacs Control-x Control-f Control-

untitled

解きながら学ぶC++入門編


tuat1.dvi

Microsoft Word - C.....u.K...doc

fuga scanf("%lf%*c",&fuga); 改行文字を読み捨てる 10 進数の整数 おまじない取り込んだ値を代入する変数 scanf( %d%*c,&hoge); キーボードから取り込め という命令 1: scanf 1 1: int double scanf %d %lf printf

untitled

6 6.1 sound_wav_files flu00.wav.wav 44.1 khz 1/44100 spwave Text with Time spwave t T = N t N 44.1 khz t = 1 sec j t f j {f 0, f 1, f 2,, f N 1

slide4.pptx

tuat2.dvi


p = 1, 2, cos 2n + p)πj = cos 2nπj 2n + p)πj, sin = sin 2nπj 7.1) f j = a ) 0 + a p + a n+p cos 2nπj p=1 p=0 1 + ) b n+p p=0 sin 2nπj 1 2 a 0 +

ディジタル信号処理

10

Taro-ファイル処理(公開版).jtd

r07.dvi

Microsoft Word - Cプログラミング演習(10)

ohp07.dvi

新版明解C言語入門編

PowerPoint Presentation

ohp08.dvi

r08.dvi

/* sansu1.c */ #include <stdio.h> main() { int a, b, c; /* a, b, c */ a = 200; b = 1300; /* a 200 */ /* b 200 */ c = a + b; /* a b c */ }

ex12.dvi

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡

1-4 int a; std::cin >> a; std::cout << "a = " << a << std::endl; C++( 1-4 ) stdio.h iostream iostream.h C++ include.h 1-4 scanf() std::cin >>

演算増幅器

program.dvi

double float

計算機プログラミング

O(N) ( ) log 2 N

2 1 Octave Octave Window M m.m Octave Window 1.2 octave:1> a = 1 a = 1 octave:2> b = 1.23 b = octave:3> c = 3; ; % octave:4> x = pi x =

コンピュータ概論

02: 変数と標準入出力

P03.ppt

P05.ppt

A 30 A A ( ) 2 C C (, machine language) C (C compiler) ( ) Mac Apple Xcode Clan

C C UNIX C ( ) 4 1 HTML 1

char char 1 signed char unsigned char ( ; single-quote 0x27) ASCII Japan Advanced Institute of Science and Technology

プログラミング基礎

02: 変数と標準入出力

pptx

Transcription:

+ +

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: