これまで学習してきた配列は1次元配列でした。1次元配列は、複数の変数を横に並べてひとまとめにしたものです。これに対し、2次元配列は、1次元配列が縦に並んでいるイメージです。
例えば、座標データや表のような構造を表現したいときに、2次元配列が便利です。
| 配列の種類 | 構造例 | 特徴 |
|---|---|---|
| 1次元配列 | {1, 2, 3, 4} | 一列に並んだデータ群 |
| 2次元配列 | {{1, 2}, {3, 4}} | 行と列の構造を持つ |
要素のアクセス方法:
多次元配列の要素番号の表現は、どちらが1次元方向(横方向・行)、2次元方向(縦・列)かわからなくなることがあるかもしれません。
そんなときは何次元であっても最後の要素番号が1次元方向とおぼえておきましょう。
整数型の2次元配列: data ← {{1, 2, 3}, {4, 5, 6}}
このように、内側の{}が各行のデータを表します。上記の配列は2行3列の配列です。
整数型: value
value ← data[1, 2] // 1行2列目の値を取り出す
整数型の2次元配列: score ← {{70, 80}, {60, 90}, {85, 75}}
整数型: i, j
for (i を 1 から 3 まで 1 ずつ増やす)
for (j を 1 から 2 まで 1 ずつ増やす)
score[i, j] を出力
endfor
endfor
この例では、3人の生徒の2教科分の点数を表として処理しています。
次の配列の定義において、data[2, 3]の値は?
整数型の2次元配列: data ← {{1, 2, 3}, {4, 5, 6}}
次のプログラムの出力結果として正しいものはどれか。
整数型の2次元配列: table ← {{1, 2}, {3, 4}}
整数型: sum ← 0
整数型: i
for (i を 1 から 2 まで 1 ずつ増やす)
sum ← sum + table[i, 1]
endfor
sum を出力
次のコードは何をしているか。
整数型の2次元配列: mat ← {{1, 2}, {3, 4}}
整数型: tmp
tmp ← mat[1, 2]
mat[1, 2] ← mat[2, 1]
mat[2, 1] ← tmp
2次元配列は、実世界の表や表計算に対応しやすい構造です。今後は、これを使ってアルゴリズムを作っていくことになります。複雑な処理を簡潔に表現するためにも、しっかり理解しておきましょう。