プログラミング言語C
以降、K & Rと略記します。
emacs filename.c
g++ filename.c
./a.out
$ cd Documents $ emacs hello.c &
/* Time-stamp: <作成日の日付 作成者> * * Hello, World を出力するだけのプログラム * */ #include <stdio.h> int main () { printf("Hello, World!\n"); return 0; }この後、もちろん、
emacs で、C-x C-s (保存)その後、
$ lsとして、「hello.c」のできていることを観ましょう。 端末内で、「hello.c」の内容を確認するには、 less コマンドをつかいます。
$ less hello.cすると、ファイルの内容を閲覧することができます。 lessコマンドを終了するときは q です
$ g++ hello.cあるいは、
$ gcc hello.cとしてもかまいません。
$ g++ -o outputfilename hello.cとすればできます。
$ ./a.out Hello, World! $うまく出力されましたか?出力結果が期待(仕様)どおりになれば、プログラミングは完了です。
C言語によるプログラミングの初歩を
さらに、かんたんな例で学んでいきます。
例1
/* ***** sansu1.c *** */ // sansu1.c #include <stdio.h> int main () { int a, b, c; a= 200; b = 1300; c = a + b; printf("a + b = %d\n", c); return 0; }
g++ sansu1.cエラーが出た場合、3. にもどって、 「sansu1.c」を編集し直す。
ls (と入力してEnter) a.out hello.c sansu1.c(表示が出る)
./a.out a + b = 1500 (表示が出る)代入演算子「=」
右辺を左辺に代入する。
a = b; a = a + 1;
c = a + b;
printf("a + b = %d\n", c);%dのところに変数cの内容を10進整数で出力する。
a = 100, b = 200のとき、3 * a + b を計算し、 端末に出力してください。
●Cのプログラムの基本構造
#include <stdio.h> ... main() { 変数の型宣言とその初期化 ...... 変数をつかった演算等 出力 }
// sansu2.c #include <stdio.h> int main() { int a, b, c; printf("Enter an integer a: "); scanf("%d", &a); printf("Enter an integer b: "); scanf("%d", &b); c = a + b; printf("a + b = %d\n", c); c = a - b; printf("a - b = %d\n", c); c = a * b; printf("a * b = %d\n", c); c = a / b; printf("a / b = %d\n", c); return 0; }実行結果
./a.out Enter an integer a: 100 Enter an integer b: 30 a + b = 130 a - b = 70 a * b = 3000 a / b = 3
scanf("%d", &a);キーボードから10進整数を読み込み、 変数aの箱に入れる。 演算
a + b = 130 a - b = 70 a * b = 3000 a / b = 3整数型変数の割り算は切り捨てになる ことに注意する!!
キーボードから整数a,bを読み込んで、
3 * a + b、および、3 * (a + b) を計算し、
端末に出力してください。
printfの書式を整えるには、
webページで調べるのも手。
Cのプログラムには主関数(main)がただひとつ存在します。 プログラムは主関数から始まります。波括弧「{, }」 のなかがその定義となります。
変数はメモリ内の位置を 部屋のようなものとかんがえればよいでしょう。 宣言は変数の型の名前と変数のリストから成ります。 は、ふつうは関数の初めに変数の宣言を します。
float upper, lower; int fahr, celsius;
lower = 0; upper = 300;
a = a + 2;
とします。 これにより「(新しい a) = (前の a) + 2 」が実現されます。 計算機が a = a + 2 を処理するときに、 単純な演算に分解して処理すると理解してください。 つまり、最初に a+2 を計算しその値 p = (a+2) を保持します。 次に、a=p という代入演算を行ないます。 つまり、計算機は二つの演算子「+」と「=」の どちらを最初に処理するかという優先順位のルールをもっていて、 変数はその演算に応じて書き換えられていきます。 (注意) a = a + b や a = a - b といったタイプの計算は頻繁に行われるので、a += b や a -= bといった 省略表現がC言語の代入演算子のバリエーションとして用意されています。
i++ や i-- は i = i + 1 (またはi += 1) i = i - 1 (またはi -= 1) という意味で、インクリメント(デクリメント)演算子と 呼ばれます。 前置き++iと後置きi++があり、 i にとっては違いがありませんが、 (++i) の値は i+1 であり、 (i++) の値は i という違いがあります。
emacsのメニューで 「ファイル」→「印刷」 とした後、出てきたウィンドウで「OK」
とすればよい。