配列とは、同じ種類のデータをひとまとまりにして管理する変数の構造(データ構造)のことです。
配列のイメージ図
よくわからないんだけど、ひとまとまりにして管理するといいことってあるのかな?
ひとまとめにしなくてもできることが多いですが、配列を使うことによりプログラミングでのメリットがとても大きいのです。
次の例を見てみましょう。
例えば、学校のクラスで情報Ⅰのテストを行いました。クラス全員分の得点をコンピュータで管理する場合、全員分の得点を変数に入れる必要があります。
この時に、1人ずつ別々の変数を使うと、score1、score2、score3・・・scoreNと多くの変数が必要です。
この場合、100人の学生の得点を管理するには変数が100個必要です。
変数100個作るのって大変なのかな?
大変だと思うよ。だって100個分変数名を考えて付けないといけないでしょ?
100人は大変なので、10人分の得点をいれて、合計点を求めるプログラムを考えていきましょう。
配列を使わず10人分の得点を集計するプログラム
次の条件でプログラムを作成します。
- データは10人分とする
- 変数名はscore1、score2、・・・score10とする
- 得点は0~100までの範囲とする
- データは10、20、30、40、50、60、70、80、90、100をそれぞれ代入することとする
- 集計は全得点を加算したものとし、変数sumに集計結果を求める
この条件で10人分の得点を設定し集計するアルゴリズムをフローチャートで表してみましょう。
ノートなどに、フローチャートを書いてみましょう。
手順は、
・変数に得点のデータを代入する
・集計する
に分けられます。
次のようなフローチャートが考えられます。フローチャートを確認するを開いて考えたアルゴリズムと比べてみましょう。
フローチャートを確認する
配列を使わない場合
上のフローチャートを確認すると、1人ずつ変数に値を代入しているので10個の代入命令と10個の集計命令を処理手順として記述する必要があります。
代入するのも集計するのも同じ処理だから、前回学習した繰り返し処理でできないのかな?
そうですね。同じ処理をしているので繰り返し処理できそうなのですがそれぞれが、1つずつ異なる変数に対して処理をしているため繰り返し処理内で記述することはできません。
下記は、フローチャートの最初の命令を抜粋したものです。赤の下線を確認すると「score1」、「score2」、「score3」と処理をしている変数が異なっていることがわかります。
本当だ、全部変数が違っている。こういう場合は繰り返し処理できないのか・・・。
こういった時に、便利に使えるのが配列です。
配列の基本について学習しましょう。