多次元配列
二次元配列
前項では生徒の数学の点数のみについて考えましたが、生徒の全教科の点数について考えたら、どうなるでしょう。
A、B、C の 3 人の生徒がいて、それぞれの国語、数学、英語の点数が次のようになっているとします。
国語 | 数学 | 英語 | |
---|---|---|---|
A | 83 | 75 | 32 |
B | 73 | 53 | 84 |
C | 63 | 48 | 64 |
前項の内容を使って、点数の合計を計算してみましょう。
一応できましたが、生徒の人数が増えてしまうと大変ですし、生徒の人数が変わるごとにプログラムを書き直さないといけません。
ここで、二次元配列を使います。二次元配列は名前の通り配列が二次元となったもので、配列の配列です。数学における行列と同じようなものです。
上のプログラムを二次元配列を使って記述すると、次のようになります。
二次元配列を作るときは、配列の要素を配列にすれば作ることができます。
配列名 = [第一行の配列, 第二行の配列, 第三行の配列, ..., 第i行の配列]
行、 列の数字を取り出すには、次のようにします。
配列名[i][j]
練習問題
全教科の点数の合計点の最高点を求める関数を求めてください。
A、B、C の 3 人の生徒がいて、それぞれの国語、数学、英語の点数は次のようになっています。
国語 | 数学 | 英語 | |
---|---|---|---|
A | 83 | 75 | 32 |
B | 73 | 53 | 84 |
C | 63 | 48 | 64 |
ヒント
まずそれぞれの生徒の得点の合計を求める関数を作ってから、その最高点を求める関数を作ると良いでしょう。
三次元配列
二次元配列をさらに発展させて、三次元配列を考えることもできます。
例えば、1 組に A と B が所属していて、2 組に C と D が所属しているとします。 その時、それぞれの生徒の国語と数学と英語の点数が次のように与えられたとします。
1 組
国語 | 数学 | 英語 | |
---|---|---|---|
A | 51 | 56 | 10 |
B | 47 | 52 | 58 |
2 組
国語 | 数学 | 英語 | |
---|---|---|---|
C | 24 | 92 | 34 |
D | 28 | 44 | 19 |
三次元配列を用いて、これの合計点を求めると次のようになります。
練習問題
全教科の点数の合計点の最高点を求める関数を求めてください。
1 組に A と B が所属していて、2 組に C と D が所属しています。 その時、それぞれの生徒の国語と数学と英語の点数が次のように与えられています。
1 組
国語 | 数学 | 英語 | |
---|---|---|---|
A | 51 | 56 | 10 |
B | 47 | 52 | 58 |
2 組
国語 | 数学 | 英語 | |
---|---|---|---|
C | 24 | 92 | 34 |
D | 28 | 44 | 19 |
多次元配列
さらに発展させて、四次元配列、五次元配列、...を考えることもできます。