第4回のページに戻る
第6回のページに戻る
参考プログラムを見るとわかるであろうが、実際にプログラ
ムとしてコンパイルして実行できるためには、アルゴリズム
本体だけではなく、次のような部分をつけ加える必要がある。

1. 宣言などコンパイルに必要な情報
2. データを与える入力部分
3. 結果を表示する出力部分

これらは、後に説明するが、プログラミング言語によって大
きく異なる。ここでは、作ったアルゴリズムの動作の確認の
ため、詳しい意味の説明を省いてこれらの演習・課題に必要
と思われる部分のみを説明する。
「全角」文字はプログラム中では使わない方が無難である。
「半角カナ」文字も使わない方が無難である。
文字列の中や、コメントの中では、使える場合がある。
「全角」「半角」は場合によっては誤解を招く表記であるが、
細部の説明はここではしない。
うまくコンパイルできないときは、エラーメッセージを読んで、
(簡単な英語のはず)、間違いそうな点
を見る。それでもわからなければ、時間内は直接、時間外は newsで、
プログラムリストと、エラーメッセージをつけて質問すること。

プログラムの概形

ここの課題や演習で作るであろうプログラムは、ほとんど つぎのような形をしている。
#include <stdio.h> #include <math.h> #define N 100 main() { 変数の宣言 /* コメント */ データの設定 アルゴリズムの本体 結果の表示 exit(0); }

変数の宣言

使用する変数をすべて「宣言」する。 変数名、配列名は、英小文字で始まり, 英小文字、数字と _ (下線) など一部の記号を並べて表記する。 単純変数(添字のない変数) 文字を記憶する変数(文字変数)の宣言 char 変数名 ; 数値を記憶する変数(数値変数)の宣言 double 変数名 ; 整数値だけを記憶する変数(整数)の宣言 int 変数名 ; 注)「数値変数」はここだけの用語 配列変数(添字つき変数) 文字を記憶する配列(文字配列)の宣言 char 配列名[N+1] ; 数値を記憶する配列(数値配列)の宣言 double 配列名[N+1] ; 注)「数値配列」はここだけの用語 N+1 は要素数である。これはプログラムを作る時に決まって いなくてはならない。 この宣言により 添字 0 から、添字 N までの要素が使用で きる。テキストとの整合のために、ここでは添字 0 の要素 は使用せず、添字 1 の要素から用いる。 記号 N は変数ではない。 プログラムの始めの部分で #define N 値 として定義してある。 プログラムの概形へ

データの設定

実行時にキーボードからの入力できることが、望ましいが、 まだ、入力について説明していないので、変数に代入する ことで行なう。 プログラムの概形へ

アルゴリズムの本体

ここに、作成したアルゴリズムを書く。 ここで使用する変数は、変数宣言 の部分に書かなくてはならない。 プログラムの概形へ

/* コメント */

人間がプログラムを読む時に便利なように説明を記述したも の。コンパイルの時に計算機は無視する。 複数行に渡ってもよい。 ! 閉じるのを忘れないこと ! プログラムの概形へ

結果の表示

出力についてはまだ説明していないが、結果を表示するには 必要であるので以下に簡単に説明する。 文字変数の表示 printf("%c\n",変数名); 数値変数の表示 printf("%g\n",変数名); 整数変数の表示 printf("%d\n",変数名); 固定したメッセージの表示 printf("メッセージ\n"); 整数変数と数値変数の表示 printf("%d %g\n",整数変数名,数値変数名); 固定したメッセージとの数値変数の表示 printf("メッセージ %g\n", 数値変数名); 上の \n は改行(表示場所を次の行に移動すること)を意味する。 多くの場合、「半角」のバックスラッシュ(\)と円記号(¥)は、まったく同じ 文字と考えてよい。キーボードの表記やディスプレイ表示はにはどちらか一方 がある場合が普通である。 配列要素を表示するには、「変数名」の代わりに 「 配列名[ 添字 ] 」 と書く。添字は整数変数でもよい。 プログラムの概形へ
#include <stdio.h> 入出力のための宣言をコンパイルの時に読み込むことを指示する。 当面は、この通り書くこと。 プログラムの概形へ
#include <math.h> 数学関数(sin , sqrt など)のための宣言をコンパイルの時に 読み込むことを指示する。 当面は、この通り書くこと。 プログラムの概形へ
#define N 100 コンパイルの時、以下のプログラムで 記号 N を 100 に置き換える ことを指示する。 当面は、この通り書くこと。 プログラムの概形へ
main() 関数 main の定義。C 言語で最初に実行される。 当面は、この通り書くこと。 プログラムの概形へ
exit(0) プログラムの実行を終了する。 当面はプログラムの最後の } の前に、この通り書くこと。 プログラムの概形へ
よく間違いそうな点 1. 変数宣言がない。 大文字小文字は区別される。変数は小文字で書くのが原則である。 あるつもりでも、書き方が間違っている。スペルが違う場合もある。 2. ld: Undefined symbol といわれる。 sqrt など数学関数を使っているのに、-lm がない。 関数のスペルが違う。 3. #include #define などの # は行の先頭に無くてはならない。 4. 文の終りに ;(セミコロン) がない。 セミコロンのつもりがコロン(:)だった。 5. プログラム中に全角文字や半角カナがあった。 半角のつもりが全角だった。 全角スペースは見えないので要注意。 6. コメントが終わっていない。 */ が必要である。 7. 文字列が終わっていない。 " が必要である。 8. 最後に改行がない。 9. プログラムに全角文字を含めるときは、EUC コードでなくてはならない。 ic2 の受講者は、.c のファイルは自動的にこのようにしているが、 何らかの理由でそうなっていない場合は、EUC コードに直さなければ ならない。mule の下に のような所が あるはずだが、三つの J の一番左が、E なら問題ないが、この表示 のようにJ や S なら M-x set-file-coding-system (RETURN) *euc-japan* (RETURN) とする必要がある。M-x は メタ エックス と読み ESC キーを押して 離し、次に x を押すことを意味している。
第4回のページに戻る 第6回のページに戻る