高校「情報Ⅰ」からみるプログラミングの考え方 ⑤

高校「情報Ⅰ」からみるプログラミングの考え方 ⑤

前回、配列を説明しました。

配列は複数のデータを保管するためによく使われます。しかし、セットとなっているデータを保管するときには、どうすればいいのでしょうか? その時は、二次元配列を使います。

前回説明した配列は、いわゆる一次元配列です。つまり、配列に入っているデータは、独立した1つ1つのデータです。しかし、セットのデータの場合は、1つ1つのデータをそのままいれることは望ましくありません。なぜなら、データの管理が難しくなるからです。

例を見てみましょう。以前使ったことがある学習塾のデータをここでも使います。

下の表には、それぞれの生徒のID、お名前、英語の成績があります。

一次元配列に上記のデータをすべて入れるなら、以下のような形になります。

[1, 吉田, 65, 2, 田中, 78, 3, 中山, 76, … , 10, 長谷川, 66 ]

1つの配列の中に、全30個のデータが並ぶことになります。しかし、IDが3番の生徒の名前と成績を取り出すためには、どうすればいいでしょうか?

方法はあります。まず、IDが3の位置を見つけます。3は上から3番目なので、3 ✕ 2行+1が3の位置です。つまり7です。配列の7番目のデータが3です。3番の名前と成績は、7番目の次にくる2つのデータです。答えは「中山」と「76」です。

では、二次元配列を使えば、どうなるか、一緒に見てみましょう。

二次元配列は、簡単に言うと、配列の中のデータが配列になっていることです。一次元配列の中のデータはそのまま文字や数字ですが、二次元配列の中のデータは配列となります。私は二重配列とも言います。配列の中に配列があります。

では、上記のデータを二次元配列に入れてみましょう。

[[1, 吉田, 65],[2, 田中, 78],[3, 中山, 76], …, [10, 長谷川, 66]]

形は少し変わります。3つのデータを1つくくりとして配列に入れられています。

では、同じく、ID番号が3番の生徒の名前と成績を取り出したい場合、どうすればいいでしょうか?

簡単になります。まず、二次元配列の左から3番目のデータを取ります。つまり、[3, 中山, 76]を取り出します。次、名前と成績がほしいので、先ほど取り出した3番目のデータの中から、2番目と3番目のデータを取れば、答えになります。答えは「中山」と「76」です。

JavaScriptでプログラムを書いてみます。配列の中のデータのインデクス番号は0番から始まることを忘れないようにしてください。

実行した結果はこうなります。

二次元配列の処理は一次元配列よりはるかに簡単になります。データがセットになった場合、二次元配列を活用しましょう。

基本の考え方は一次元配列も二次元配列も同じです。二次元配列を使いこなせるようになりましたら、プログラムの処理が一気にシンプルになります。

是非活用してください。

img_avater_nakayama

中山 涼一

こどもICT教育支援センター センター長

2014年に関西初のこども向けプログラミング教室「未来学校プログラミング教室」を創設。800名以上の指導実績を誇るプログラミング教育のスペシャリスト。

プロフィール