売り上げ個数順に並べるプログラム
では、「並び替え」処理を使って、おにぎりの個数順(大きい順)に並び替えるプログラムを作ってみましょう。並び替えるデータは次のようになっています。
おにぎり種類
A B C D E F G H I J 売り上げ個数
10
17
9
6
16
7
15
13
14
8
これを使って、プログラムを作ってみましょう。
<おにぎりの個数順に並び替えるプログラムに必要な部品>
まず、プログラムを作るために必要な部品は次のようになっています。
赤字部分が必要な部品です。(赤字部分は、このまま入力しないように。)
まず青字の部分だけを入力したプログラムを作ってください。
そのあと、赤字部分の部品を自分で作っていって埋めていく形にします。
<データ数Nの値を最初に指定>
並び替えるデータ数Nを最初に設定します。ここでは、データ数は10個です。
<配列にデータを入れる>
配列kosuu[]に並び替えたいデータを入れます(配列の初期化)。10個のデータを配列に入れます。
<変数の宣言>
並び替えの処理、出力部分に使う変数を設定します。先に、並び替え処理と出力部分の処理を考えてから、それらの処理に使った変数を宣言します。
<基本選択法の並び替え部分>
基本選択法の並び替え部分は、ワンパターンです。小さいもの順ならば、そのまま使い回せばいいでしょう。しかしながら、今度は大きいもの順に並び替える作業です。
説明・実習編で使った小さいもの順の並び替えをうまく利用して、今度は大きいもの順に並び変わるようにしてみて下さい。
原理は簡単です。今度は最小値ではなく、最大値を見つけて順番に入れ替えていく方法を取れば良いのです。とりあえず、変数minではなく、変数maxを利用します。後は、最大値の配列番号がmaxに入るように、処理をいくつか手直して下さい(minをmaxに書きかえる)。また、内側のループで、jが仮の最大値maxよりも大きければ、jが新たなmaxになるように工夫します(特に、kosuu[j]とkosuu[max]を比べる不等号に気を付ける)。
<並び替えたデータの出力>
最後に、並び替えたデータを出力して下さい。
部品を埋めることができたでしょうか?作ったものが実際にうまく行くか確認してください。うまく実行できたら、解答で確認してください。