第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回のページに戻る