フローチャート 2
・今回は配列(テーブル)について勉強しましょう。
ある学校に26人のクラスがあります。テストの得点のクラス合計を求める場合、26人の個々の変数(A,B,C,・・・)に得点を入れておくと以下のフローになります。
それぞれの生徒がそれぞれの変数を持ち、フローの中でも人数分変数を記述する必要が発生し、それぞれの変数に対する処理が発生します。これでは大変ですね。 そこで生徒一人一人の変数を用意するのではなく、クラス全体に名前をつける方法があります。これを配列またはテーブルと呼びます。
CLASS配列(またはCLASSテーブル)を使うと生徒個別の変数を使わず、配列名を使って個々の生徒を表現(配列名[添字])できます。C言語の場合、添え字は0から(1からではなく)始まります。また配列名による表現は式の左辺でも右辺でも使えます。
例1.上田の点数をXに代入しなさい。
配列使用生徒別変数仕様
X=CLASS[2]X=C
例2.川上に100点を代入しなさい。
配列使用生徒別変数仕様
CLASS[4]=100E=100
※例1,例2では添字(INDEXともいいます)に定数(2、4等)を使用していますが、変数を使用することもできます。
例3.座席NO(SEKI)に入っている生徒の点をTENに代入しなさい。
IDX=SEKI-1
TEN=CLASS[IDX](または TEN=CLASS[SEKI-1])
以下フローチャートの演習問題です。
8.上記CLASS配列の中から最大得点の点をMAXに、その座席NOをMAXSEKIに
セットしなさい。(同一得点は前の点を対象とします。)
9.最小得点について演習8)と同様
10.CLASS配列の平均点を求めなさい。(割り算(/)使用可)
11.CLASS配列自身を点の小さい順に並べ替えなさい。(昇順ソートといいます。)
12.CLASS配列自身を点の大きい順に並べ替えなさい。(降順ソートといいます。)
13.CLASS1とCLASS2の2つのテーブルはそれぞれ昇順ソートされています。
CLASS3に点の小さい順にセットしなさい。下図参照してください。
(マージソートといいます。)