ウォーミングアップ

 簡単なプログラム作成で,ウォーミングアップを兼ねて,あなたのプログラミングレベルを調べてみよう.

練習問題1: 次のコードに書き加えて,配列 data の最大要素のインデックス(添字)を求めて表示するプログラムを作れ.

#define N 10
main()
{
    int data[N] = {4, 3, 6, 9, 1, 3, 4, 5, 8, 7};
    int maxi;
    
    
    
    printf("Index of max value = %d\n", maxi);
}

実行結果は次のようになるはずである。

Index of max value = 3

解答解説

 どうであろうか.簡単にできたであろうか.「この程度のプログラミングは簡単にできる。 あるいは,教えてもらえば理解できる。」という程度の学生を,この授業では対象受講生とする. そうでない人は,今からでも遅くないので,1年次の授業で習ったことの復習をして欲しい.

 上で作ったプログラムはほとんど用途のないものであるが, 重要な部分を関数として独立させると,それは他の場所でも使える有用なものとなる. 「使う」ということを重点に考えながら,その関数を作ってみよう.

練習問題2: 整数型の配列の中の最大要素の添字(インデックス)を返す関数を作れ.

実際に動く部分は,先ほどの問題で完成しているので,ここでの問題点は,関数の外面的な形をどのようにするか,ということである.

 じつは,プログラムを作るときに一番大事なことは, この外面的にどのようなものを作るのかということである.

関数の外面で一番大事なものは,名前である.「名は体を表す」の諺が生きるように,適切な名前を付けるべきである.

次に大事なものは,関数の引数と関数の戻り値である. これから作ろうとしている関数の場合, 必要な情報としては,データの入った配列およびその要素の個数とが考えられる. 戻り値は関数の計算結果であるが,今回の関数の場合, それは最大要素のインデックスである.

以上のことを踏まえて,関数名,引数を決めて,関数を作って欲しい.

解答解説

 計算部分は,もうできあがっているので,それをまとめるだけなのだが,関数の形や名前を考えるのは案外難しいものである.

実際に計算を行う部分をコーディングするよりも,関数の名前を考えたり, 引数の型や名前を考えることの方が, しっかりとしたプログラムを作るためには重要なことなのである. このことを忘れないで欲しい.

Valid HTML 4.01!