配列

学習の目的

  • 1. 配列とは

  • 2. 配列の基本

1. 配列とは

配列とは、同じ種類のデータをひとまとまりにして管理する変数の構造(データ構造)のことです。

配列のイメージ図

よくわからないんだけど、ひとまとまりにして管理するといいことってあるのかな?

ひとまとめにしなくてもできることが多いですが、配列を使うことによりプログラミングでのメリットがとても大きいのです。

次の例を見てみましょう。

例えば、学校のクラスで情報Ⅰのテストを行いました。クラス全員分の得点をコンピュータで管理する場合、全員分の得点を変数に入れる必要があります。
この時に、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」と処理をしている変数が異なっていることがわかります。

本当だ、全部変数が違っている。こういう場合は繰り返し処理できないのか・・・。

こういった時に、便利に使えるのが配列です。
配列の基本について学習しましょう。

2. 配列の基本

すでに学習済みですが、配列は同じ種類のデータをひとまとまりにして管理するデータ構造です。
たとえば、得点データを10人分管理する配列変数scoreを作ると次のようなイメージになります。

配列には「配列名」、「要素」、「添字(そえじ)」の3つのキーワードがあります。

  • 配列名:配列には変数と同じように名前を付けます。上図であれば「score」が配列名です。

  • 要素:要素とは、配列内の1つ1つデータが入る場所のことです。

  • 添字:添字とは、配列要素の位置を表す番号です。インデックスとも呼ばれます。先頭を0とし、順番に1、2、3・・・と増えていきます。

配列にアクセスする場合は次のように指定します。

配列名[添字]

例えば、配列scoreの添字が3の要素を指定する場合は、次のように指定します。

score[3]

score[3]と指定すると、図のように配列scoreの添字が「3」の位置の要素を示しています。

score[3]の要素にはどのような値が入っていますか?

添字が「3」だから、 40 が入っています!

そうか、配列の中の値をさしているのか。

そうです。添字を使って配列の要素位置を指定して、値を代入したり取り出すことができます。

参 考

配列の要素の番号は 1 から始まることもあります。

配列の最初の要素が0から始まるか、1から始まるかは使用するプログラミング言語などによって変わります。
環境に合わせて使い分けましょう。

配列の添字が1から始まる代表的な言語にScratchがあります。

次のスライドで、配列の基本について確認しましょう。

Well done!

次のステップに進みましょう!

次のステップに進む

← 前のステップにもどる