C 2006 5 2 printf() 1 [1] 5 8 C 5 ( ) 6 (auto) (static) 7 (=) 1
8 / 0 1 i++ i 1 i-- i 1 2 2.1 C 4 5 3 13!!! C 2
2.2 C ( ) 4 1 HTML はじめ mkdir work 作業用ディレクトリーの作成 emacs hoge.c& エディターによりソースプログラム作成 gcc -o fuga hoge.c コンパイルにより機械語に変換 コンパイルエラー./fuga 実行 実行時エラー 完成 1: work hooge.c fuga 1 4 4 1 1. 2 CUI(Character-based User Interface) 1 1 3
cd mkdir GUI(Graphical User Interface) + 2. cd emacs. c& emacs 2 & emacs バックグラウンドで emacs hoge.c& emacs というエディターを実行せよ hoge.c というファイル名で 2: emacs hoge.c C 3. C ( ) C gcc -o.c 機械語のファイル名を付けよ gcc -o fuga hoge.c C 言語のソースファイル名 gcc というコンパイラーで機械語に直せ 機械語のファイル名 3: C gcc 2 emacs 4
4.././fuga カレントディレクトリー (./) fuga という機械語のプログラムを実行せよ 4: 2.3 5 3 5 5
#include <stdio.h> おまじない int main(void){ 変数宣言 プログラムの動作内容 } return 0; 5: 2.4 C char c, h, moji; int i, j, seisu; double x, y, jisu; hoge[0] hoge[99] 100 fuga[0][0] fuga[999][999] 1000000 int hoge[100], fuga[1000][1000]; printf() 6 ( ) %d 1 6
1: 1 %c a %d 123 %f 98.1238 %e 3.98234e-5 printf( ホゲホゲ = %d\n,hogehoge); ホゲホゲ = %d\n,hogehoge ディスプレイに表示せよという関数 ( 命令 ) 表示の方法 ダブルクォーテーションで囲んだ部分を表示する ただし %d 10 進整数表示 \n 改行 以下のように表示される ホゲホゲ = 10 進整数改行 hogehoge の値 6: printf() 3 ( 5 ) ( ) 3.1 (p.62) C 7
3.1.1 (p.62) (=) 1 9 (double) (int) 10 (int) (double) 12 j 10 (%d) y (%f) ( p.322 ) (\t) ( p.28 2-4) 1 #include <s t d i o. h> 2 3 int main ( void ){ 4 int i, j ; 5 double x, y ; 6 7 i =123; 8 x =4.567; 9 10 j=x ; 11 y=i ; 12 13 p r i n t f ( j = %d\ ty = %f \n, j, y ) ; 14 15 return 0 ; 16 } 1: j = 4 y = 123.000000 1 [ 1] [ 2] 3.1.2 (p.64) 2 C C 8
3.2 ( ) ( ) i j i=3, j=4 i/j 0 (doubel)i 9 i 1 #include <s t d i o. h> 2 3 int main ( void ){ 4 int i, j ; 5 double x ; 6 7 i =3; 8 j =4; 9 10 x=(double ) i / j ; 11 12 p r i n t f ( x = %f \n, x ) ; 13 14 return 0 ; 15 } 2: x = 0.750000 [ 1] 2 x=i/j x=i/4. x=i*1.0/j x=(double)(i/j) x=i/(double)j 4 ( 6 ) ( ) 9
4.1 (p.68) p.69 6-1 4.2 (auto) (static) (p.70, p.77) static static 2 5 ( 7 ) 5.1 (p.90) 0 1 (static) 0 10
[ 1] i j k ( :p.91 ) 5.2 (p.91) p.91 (static) 6 ( 8 ) 6.1 (p.107) ( p.107) 3 (%) 11%4 3 11 4 6.2 (p.108 ) 4 ( True) ( False) 1 0 6.2.1 (p.108) + 2 5+8 13 (p.108) 2 0 1 10<20 1 10>20 0 2 [ 1] a 4 (p.135 8-3) a=1+2 a=1<2 a=1>2 a=1+3>=2+2 a=5*((1<2)+(2<4)) 3 4 if 11
[ 1] d C d int p.34 3-1 a=1122334455; b=1122334455; c=a+b; d=1<c; 6.2.2 (p.108) [ 1] p.108 100 == 100 3 == 5 3.0 == 3 6!= 5 5!= 5 6.2.3 (p.109) 2 NOT AND OR p.109 2 4 0 (0) 1 (1) 2 4 2: a!a 0 1 1 0 3: a b a && b 0 0 0 0 1 0 1 0 0 1 1 1 4: a b a b 0 0 0 0 1 1 1 0 1 1 1 1 0 1 C 0 1 (1) C 0 12
0 5 7 5: C a!a 0 1 0 0 6: C a b a && b 0 0 0 0 0 0 0 0 0 0 0 1 7: C a b a b 0 0 0 0 0 1 0 0 1 0 0 1 6.3 (p.110) (++) 1 (--) 1 a=a+1 a=a-1 (=) C 1 #include <s t d i o. h> 2 3 int main ( void ){ 4 int i, j ; 5 6 i =10; 7 j =10; 8 9 i ++; 10 j ; 11 12 p r i n t f ( i=%d j=%d\n, i, j ) ; 13 14 return 0 ; 15 } 3: [ 1] 3 6.4 (p.118) (=) (=) (=) 13
5 ( 7) 6 (==) C (=) (==) 変数 = 式 ; 代入演算子 代入演算子の実行順序 1. 右辺の式を計算 2. 計算結果を左辺の変数へ代入 a = b+c; pi = 3.1415; i = i+1; x = x+y; z = z/2; いずれも 右辺の式を計算して 左辺の変数へ代入 7: a=b+c a+b->c += a b a=a+b C a+=b C [1] p.119 8-2 1 #include <s t d i o. h> 2 3 int main ( void ){ 4 int i, j ; 5 6 i =3; 7 j =6; 8 9 i+=j ; 10 11 p r i n t f ( i=%d j=%d\n, i, j ) ; 12 13 return 0 ; 14 } 4: [ 1] 4 5 3 + 5 = 8 + 3 5 8 + = 6 14
[1]. C., 2004. 15