見出し画像

1-8. 配列データの最大値と最小値を求める

 本記事では、配列データの最大値と最小値を求める問題演習をします。

 問1 配列データの最大値を求める。

 このアルゴリズムを作るための考え方

 コンピュータは、一度に一つのことしかできません。そのため、最大値を選ぶときも、データを一つずつチェックしていき、「前のデータよりも大きかったら、とりあえずこれが最大値」というように考えて調べていく必要があります。

方法

 "最大値"という変数と、配列の値を比較して、その時点の "最大値"よりも大きな値があれば、その値を "最大値" に入れ替えます。配列要素の成績[ 2 ]に対する処理が終わった時、 "最大値"には、成績[ 1 ]、成績[ 2 ]の大きい方の値が入っています。
 そして、成績[ 3 ]で同じ処理を行えば、 "最大値" には成績[1 ] ~成績[3 ]の最も大きい値が入ります。
 そして、成績[ 5 ]と比較の処理を行うときの "最大値"の値は、成績[ 1 ] ~成績 [ 4 ]の最大値になっていますから、この値と成績[ 5 ]の大きい方が全体の最大値となるのです。

最高点を求めるアルゴリズムを記述

成績[ 1 ]  = 50 、成績[ 2 ] = 80、成績[ 3 ] = 70、成績[ 4 ] = 90、成績[ 5 ] = 60

i ← 1

最大値 ← 0

while (i ≦ 5)

if (最大値<成績[ i ])

 最大値 ← 成績 [ i ]

endif

i ← i + 1

endwhile

最大値を表示

結果:90

問2 配列データの最小値を求める。

成績[ 1 ]  = 50 、成績[ 2 ] = 80、成績[ 3 ] = 70、成績[ 4 ] = 90、成績[ 5 ] = 60

i ← 1

最小値 ← 0

while (i ≦ 5)

if (最小値>成績[ i ])

 最大値 ← 成績 [ i ]

endif

i ← i + 1

endwhile

最小値を表示

結果:0

※初期値が0なので、配列のどれもが当てはまらなくなるからです。
 この場合には、"最小値"の初期値を考えられる最も大きな値、例えば100として、最小値 ← 100としたり、最初の成績の値(成績[ 1 ])を代入したりする方法があります。

※正しい初期値を最も大きい値(本問題では100)としておけば、その値以外の成績であれば、その時点で"最小値"にその値が入ります。

以上です。

いいなと思ったら応援しよう!