第12講 配列その2
第4話 1次元配列と多次元配列の関係その2

今回は、第12講第1話や第2話で作ったプログラムの
3次元配列を1次元配列で表す方法を考えてみましょう。
次のプログラム
解答例
の3次元配列は、
Dim data(5, 40, 5) As Integer
です。これを1次元配列data(1476)として作り直しましょう。
1476という数字に対して違和感を持つと思います。
5×40×5=1000
ではないかと。
実は、講義基礎編ではわかりやすさを優先して、
配列の添え字を1から始めていますが、
本当は添え字は0があります。
したがって、
data(5, 40, 5)の本当の変数の種類は、
6×41×6=1476で、
1次元配列でdata(5, 40, 5)と同じ変数の種類を用意しようとすれば、
data(1475)としなければならないのです。
1476より1小さい理由は、data(0)があるからです。

本当は、データ数は1000(生徒の人数×教科数×テスト種類数)ぴったりですから、
3次元配列ならdata(4, 39, 4)、
1次元配列ならdata(999)でよいのです。
それぞれの変数の種類数は
(4+1)×(39+1)×(4+1)=1000
999+1=1000
基礎編ではわかりやすさを優先してきましたが応用編では
合理性を優先して添え字0から始めることにします。

さて、みなさん
data(1, i, j) = Worksheets("1学期中間").Cells(6 + i, 1 + j)
などはどのように変更すればよいでしょうか。
考えてみてください。解答例は次話で。


第3話へ 第5話へ



 VB講義トップに戻る

 数学研究室に戻る