2 プログラムの作成方法

2.1 標準的な順序

前回の授業で学習したように標準的なプログラムの作成順序は,図4のようになる.
  1. まずはプログラムを入れるのディレクトリーをつくる.プログラムをディレクト リー毎にわけることにより,大量のプログラムを管理する.デスクトップの「ア カウント名+ホーム」と書かれたアイコンを開いて,右クリックの新しいフォルダー を選択することにより,ディレクトリーは作成できる.
  2. 次にターミナルをダブルクリックして開く.そして,「cd ディレクトリー 名」をタイプすることにより,プログラム作成のディレクトリーに移動する.そし て,「emacs ソースファイル名.c&」とタイプして,emacs を立ち上げプロ グラムを書きはじめる.最後の&は,emacsを動作させたターミナルから,コ マンド入力ができるようにしている.
    図 1: エディター emacs の実行方法.hoge.cというC言語のソースプログラムを作成する.
    \includegraphics[keepaspectratio,scale=0.8]{figure/emacs_hoge.eps}
  3. プログラムを書き終えたら,それを保管する.そして,C言語のファイルを機械語 に変換する.変換するためには,「gcc -o 実行ファイル名 ソースファ イル名.c」とタイプする.
    図 2: C言語のソースファイルを機械語のファイルに直すgccの書き方
    \includegraphics[keepaspectratio,scale=0.8]{figure/gcc.eps}
  4. コンパイルが完了したら,「./実行ファイル名」とタイプして,プログラム を実行する.
    図 3: プログラムの実行方法.
    \includegraphics[keepaspectratio,scale=0.8]{figure/run.eps}

以上が標準的なプログラムの作成順序である.諸君は,これをしっかり憶えてなくてはならない.

図 4: プログラムの作成手順
\includegraphics[keepaspectratio,scale=0.8]{figure/mk_program.eps}

2.2 プログラムの内容

先週,リスト1のようなプログラムを作成した.このプログラムをコンパイルした後,実行すると,ディスプレイに,
Hello World !!
と表示された.このプログラムの各行の意味を説明する.
   1 #include <stdio.h>
   2 
   3 int main(void)
   4 {
   5 
   6   printf("Hello World !!\n");
   7 
   8   return 0;
   9 }



このプログラムの各行は,次のような意味がある.

1行
現段階で,この意味を理解する必要はない.しかし,プログラムの最初に必ず書く 必要があると憶えておけば良い.プログラムを動作させるためのおまじない である.
2行
プログラムの見た目を良くするための空行である.なくても良いが,あった 方が,かっこいい.
3行
main関数のはじまりを表している.main関数の動作内容は,3行〜 9行で,{ }の中に書く.これもおまじないである.
4行
main関数の動作を記述するはじまりの括弧.これもおまじない.
5行
プログラムの見た目を良くするための空行.無くても,プログラムは動作す るが,あった方が,良い.
6行
ディスプレイに表示せよ--とコンピューターに命令している.
7行
プログラムの見た目を良くするための空行.無くても,プログラムは動作す るが,あった方が,良い.
8行
おまじない.
9行
main関数の動作を記述する終わりの括弧.これもおまじない.

6行目を除いて,ほとんどおまじないである.6行目のみが動作を記述している.プログラ ムの6行目が動作した時点で,ディスプレイにメッセージが表示される.6行目以外の動作 は現段階で,理解する必要はない.プログラムを動作させるために,絶対に必要なものと 憶えておけば良い.どんなプログラムでも,このおまじないの部分は書かれている.

このプログラムの内容をまとめると,図5のようになる.

図 5: Hello World プログラムの内容
\includegraphics[keepaspectratio,scale=1.0]{figure/hello_world.eps}

リスト1のうちプログラマーが考えが反映しているのは, printfが書かれている6行目だけである.それ以外は,おまじないとして,必ず書く. プログラマーの意志が反映される6行目の書き方を示す.

図 6: ディスプレイに表示させるprintf関数の意味
\includegraphics[keepaspectratio,scale=1.0]{figure/printf.eps}

2.3 プログラムの作り方

Hello Worldのプログラムの動作について,説明した.しばらく作成するプログラムの基 本構造は,このHello Worldプログラムと同じである.おまじないの部分とプログラムの 動作内容を書く部分からできている.おまじないの部分は,プログラムを動作させるため に必要と憶えておいて,いつも最初に書くようにすれば良い.そして,おまじないに挟ま れた部分に動作させる内容を記述する.図7のようにプログラムを書くこ とに心がけよ.
図 7: プログラムの書き方.おまじないの部分は,気にしないでそのまま書く.
\includegraphics[keepaspectratio,scale=1.0]{figure/spell.eps}

ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成18年5月2日


no counter