C 2007 4 18 C UNIX 1 2 1 1.1 C ( ) 4 1 HTML 1
はじめ 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 cd mkdir ˆ GUI(Graphical User Interface) + 2. cd emacs.c&emacs 2 & emacs 1 2 emacs 2
バックグラウンドで 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 4../ 3
./fuga カレントディレクトリー (./) fuga という機械語のプログラムを実行せよ 4: 1.2 5 3 ˆ 5 ˆ ˆ #include <stdio.h> おまじない int main(void){ 変数宣言 プログラムの動作内容 } return 0; 5: 4
1.3 ˆ ˆ ˆ CUI GUI ˆ [Tab] ˆ emacs ˆ history UNIX gcc -o hoge fuga.c [ ] [ ] 2 [1] 2.1 p.7 2.1.1 C 1 6 12 1. hogehoge 1 2. Hogehoge 2 3. hogehoge 3 4. hogehoge hogehoge = 1 5. Hogehoge 5
6. hogehoge 3 hogehoge Hogehoge hogehoge C 1 #include <s t d i o. h> 2 3 int main ( void ){ 4 int hogehoge, Hogehoge, hogehoge ; 5 6 hogehoge = 1 ; 7 Hogehoge = 2 ; 8 hogehoge = 3 ; 9 10 p r i n t f ( hogehoge = %d\n, hogehoge ) ; 11 p r i n t f ( Hogehoge = %d\n, Hogehoge ) ; 12 p r i n t f ( hogehoge = %d\n, hogehoge ) ; 13 14 return 0 ; 15 } 1: hogehoge = 1 Hogehoge = 2 hogehoge = 3 2.1.2 1 ˆ #include <stdio.h> ˆ int main(void) { } main ˆ int hogehoge, Hogehoge, hogehoge; 3 C C 3 () ˆ printf() printf 3 ( 6 ) 4 3 4 6
%d ( p.320 ) hogehoge 10 (decimal) \n ˆ return 0 printf( hogehoge = %d\n,hogehoge); hogehoge = %d\n,hogehoge ディスプレイに表示せよという関数 ( 命令 ) 表示の方法 ダブルクォーテーションで囲んだ部分を表示する ただし %d 10 \n 以下のように表示される hogehoge = 10 hogehoge の値 6: printf() C 7 7
#include <stdio.h> int main(void){ プログラムの動作内容を書く } return 0; 7: C 2.2 ( ) p.11 FORTRAN * C C /* */ ANSI 5 // 2 2 3 ( ) 2: 1 /* ============================================ */ 2 /* == */ 3 /* ============================================ */ 4 #include <s t d i o. h> 5 6 int main ( void ){ 7 double p i ; 8 double r, s ; 9 10 p i = 3. 1 4 1 5 9 2 ; /* */ 11 r = 1. 0 ; /* */ 5 American National Standard Institute JIS ANSI C 8
12 s = p i * r * r ; /* 13 */ 14 15 p r i n t f ( s = %f \n, s ) ; // A N S I O K 16 17 return 0 ; 18 19 } s = 3.141592 1 #include <s t d i o. h> 2 3 int main ( void ){ 4 double p i ; 5 double r, s ; 6 7 p i = 3. 1 4 1 5 9 2 ; 8 r = 1. 0 ; 9 s = p i * r * r ; 10 11 12 p r i n t f ( s = %f \n, s ) ; 13 14 return 0 ; 15 16 } 3: s = 3.141592 2.3 p.12 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r t t u v w x y z 0 1 2 3 4 5 6 7 8 9 ( ) 2.4 p.13 9
2.5 p.13 FORTRAN 7 C emacs [Tab] 4 for i for { 1 #include <s t d i o. h> 2 3 int main ( void ){ 4 int i ; 5 6 for ( i =1; i <= 9 ; i ++){ 7 p r i n t f ( %d : H e l l o World!! \ n, i ) ; 8 } 9 10 return 0 ; 11 } } 9 ( ) 4: 1: Hello World!! 2: Hello World!! 3: Hello World!! 4: Hello World!! 5: Hello World!! 6: Hello World!! 7: Hello World!! 8: Hello World!! 9: Hello World!! ( ) for(i=1; i <= 9; i++){ printf("%d: Hello World!!\n",i); } ˆ i 1 i=1 ˆ 9 i<=9 ˆ 1 i++ ˆ { } 10
Hello World!! 9 printf [ 1] 4 1 ==== Hello World!! ==== 1 2 ==== Hello World!! ==== 2 3 ==== Hello World!! ==== 3 100 ==== Hello World!! ==== 100 2.6 C 3 ( 2 ) p.20 3.1 5 1, 3, 12, 13 4 seisu 5 jisu 7,8 10 %d seisu 10 (decimal) %e seisu e %d %e ( p.322) \n 11
5: 1 #include <s t d i o. h> 2 3 int main ( void ){ 4 int s e i s u ; 5 double j i s u ; 6 7 s e i s u = 6 5 ; 8 j i s u = 69.53 e 7; 9 10 p r i n t f ( s e i s u = %d j i s u = %e \n, s e i s u, j i s u ) ; 11 12 return 0 ; 13 } seisu = 65 jisu = -6.953000e-06 5 [ 1] seisu 1234 jisu 6.987 10 68 [ 2] seisu 6.987 10 68 jisu 1234 [ 3] seisu 10/3 jisu 10/3 3.2 2-4(p.28) 2 \n \t 2 5 9 printf [ 1] \n 1 2 3 [ 2] \t 1 2 3 [ 3] Hello World!! \n \t 4 4.1 12
[ 1] ( ) [1] 1 2 pp.2 30 3 3 [ 2] ( ) Yamamoto Masashi ------------------------ Class 5E Name Yamamoto Masashi ------------------------ [ 3] ( ) Yamamoto Masashi 1 Yamamoto Msashi 2 Yamamoto Msashi 3 Yamamoto Msashi 1000 Yamamoto Msashi [ 4] ( )355/113 [ 5] ( ) \n \t [ 6] ( ) 2 2 [ 7] ( ) [1] 3 4 pp.32 59 3 3 [ 8] 4.2 5 2 ( ) AM 8:45 A4 1 C 5E 2 13
[1]. C., 2004. 14