第14講 高次元配列と低次元配列の関係
第5話 4次元配列を1次元配列で表現する
解答コード例
Private Sub CommandButton1_Click()
Dim a(2, 3, 4, 5) As Integer
Dim b(360) As Integer
Dim i As Integer, j As Integer, k As Integer, l As Integer
For i = 0 To 2
For j = 0 To 3
For k = 0 To 4
For l = 0 To 5
a(i, j, k, l) = Int(Rnd * 100)
Next
Next
Next
Next
For i = 0 To 2
For j = 0 To 3
For k = 0 To 4
For l = 0 To 5
Cells(5 + 6 * i + k, 1 + 7 * j + l) = a(i, j, k, l)
Next
Next
Next
Next
For i = 0 To 2
For j = 0 To 3
For k = 0 To 4
For l = 0 To 5
b(120 * i + 30 * j + 6 * k + l) = a(i, j, k, l)
Next
Next
Next
Next
Dim m As Integer
For m = 0 To 359
i = Int(m / 120)
j = Int(m / 30) Mod 4
k = Int(m / 6) Mod 5
l = m Mod 6
Cells(25 + 6 * i + k, 1 + 7 * j + l) = b(120 * i + 30 * j + 6 * k +
l)
Next
End Sub
実行シート例
解説
Cells(5 + 6 * i + k, 1 + 7 * j + l) = a(i, j, k, l)
の部分は、頭が混乱します。
4次元データを無理に2次元で表しているので、難しいのです。
i = Int(m / 120)
j = Int(m / 30) Mod 4
k = Int(m / 6) Mod 5
l = m Mod 6
についてはご自分でトレースして下さい。
最後に逆の課題を出しましょう。
Private Sub CommandButton1_Click()
Dim a(2, 3, 4, 5) As Integer
Dim b(360) As Integer
Dim i As Integer
For i = 0 To 359
b(120 * i + 30 * j + 6 * k + l) = i + 1
Next
End Sub
1次元配列のデータをまずシートに表示させ、
次にそれを4次元配列に翻訳してから、
2行下に4次元配列によるデータを表示してください。
表示形式は、今回と同じにします。
第4話へ 第6話へ
VBA講義第1部へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual aasic入門基礎講座へ
数学研究室に戻る