MAXIMUM

レッスン18:配列の応用例2(最大値を求める)

配列に入っている値の中で一番大きい値を探してみましょう。次の順で簡単に説明します。

プログラム
プログラム説明
練習
動作確認
次は?

プログラム

次のプログラムでは、配列を宣言し、配列の要素に値を代入し、その値の合計を求めています。

  1. program saidaiti;
  2. var i,value,index:integer;
  3.       data:array [1..5] of integer;
  4. begin
  5.   data[1]:=10;
  6.   data[2]:=15;
  7.   data[3]:=6;
  8.   data[4]:=15;
  9.   data[5]:=12;
  10.   value:=data[1];
  11.   index:=1;
  12.   for i:=2 to 5 do
  13.    if data[i]>value then
  14.    begin
  15.      value:=data[i];
  16.      index:=i;
  17.   end;
  18. end.

[注意]左端の番号は、プログラムの一部ではありません。各行を区別するために付けた番号です。

先頭へ戻る

プログラム説明

2行目で、3つの変数i、value、indexを宣言しています。iはfor文の制御変数として使われます。valueは最大値を記憶する変数、indexは最大値の要素の添え字番号を記憶する変数です。

3行目で、データの値を記憶する配列を宣言しています。ここでは、配列の要素数を5としています。5行目から9行目までで、配列のそれぞれの要素に値を代入しています。

最大値の探し方は次のようにします。まず、1番目の要素の値と添え字番号をvalueとindexに入れます。次に、2番目の要素の値とvalueを比較して、大きい方の値と添え字番号をvalueとindexに入れます。次に、3番目の要素とvalueの比較を行うというように、最後の要素まで同様の操作を行います。valueには、調べ終わった要素の中での最大値が入っていますので、最後に得られたvalueとindexに最大値とその添え字番号が入ります。

上記の方法をプログラムでどうなっているか見てみましょう。10行目と11行目で1番目の要素の値と添え字番号(1)をvalueとindexに代入し、初期化しています。12行目から17行目のforブロックで、i番目の要素の値data[i]とvalueの比較を行っています。最後の要素の添え字番号が5ですので、12行目のforでは、制御変数iを2から5まで変えています。13行目でdata[i]とvalueを比較します。valueの方が大きければ、valueとindexは変更する必要がありません。data[i]の方が大きければ、15行目と16行目のように、今調べている要素の値と添え字番号をvalueとindexに入れます。

練習

ヒントは動作確認にあります。

  1. 13行目の不等号を>から>=に変更すると結果はどのように変わるでしょうか?
  2. 最小値を求めるにはどのようにプログラムを変更すればいいでしょうか?

先頭へ戻る

動作確認

Pascalシミュレータを使って、上のプログラムの動作を確認してみましょう。

Pascalシミュレータによる動作確認
[注意]このリンク先のページはInternet Explore 3.0以降で正しく表示されます。

次は?

これで入門は終わりました。目次に戻ってください。

[目次へ]

先頭へ戻る


TitleLineAnim.gif (2453 バイト)

Ln769.gif (641 バイト)

このページの最終更新日は 99/03/20 です。
掲載責任者・ページ作成者: (c)板谷雄二(itaya@alice.asahi-u.ac.jp)