第6講 配列
第4話 2次元配列
を実現するプログラム例
Module Module1
Sub Main() '私は社長だ。
'Rnd(-1)
'Randomize(Timer())
f()
End Sub
Sub f()
Dim a(2, 3) As Integer '配列aの宣言
Dim i, j As Integer
'ランダムデータ生成
For i = 0 To 2
For j = 0 To 3
a(i, j) = Int(Rnd() * 100)
Next
Next
'データ表示
For i = 0 To 2
For j = 0 To 3
If a(i, j) < 10 Then Console.Write(" {0:d} ", a(i, j)) '右端をそろえるための半角スペース
If a(i, j) >= 10 Then Console.Write("{0:d} ", a(i, j))
Next
Console.WriteLine() '改行
Next
End Sub
End Module
さて、の左右を反対にする、すなわち中央のところで線対称変換をさせたもの
も表示させるとすると、
Module Module1
Sub Main() '私は社長だ。
'Rnd(-1)
'Randomize(Timer())
f()
End Sub
Sub f()
Dim a(2, 3) As Integer '変数aの宣言
Dim i, j As Integer
'ランダムデータ生成
For i = 0 To 2
For j = 0 To 3
a(i, j) = Int(Rnd() * 100)
Next
Next
'行列の表示
For i = 0 To 2
For j = 0 To 3
If a(i, j) < 10 Then Console.Write(" {0:d} ", a(i, j)) '右端をそろえるための半角スペース
If a(i, j) >= 10 Then Console.Write("{0:d} ", a(i, j))
Next
Console.WriteLine() '改行
Next
Console.WriteLine() '改行
'左右反転行列の表示
For i = 0 To 2
For j = 0 To 3
If a(i, 3 - j) < 10 Then Console.Write(" {0:d} ", a(i, 3 - j)) '右端をそろえるための半角スペース
If a(i, 3 - j) >= 10 Then Console.Write("{0:d} ", a(i, 3 - j))
Next
Console.WriteLine() '改行
Next
End Sub
End Module
とします。
注釈文に行列という言葉が出てきていますが、
のような数字の並びを指します。
行は横列、列は縦列を表します。
ですから、この行列を3行4列の行列といいます。
そして、行と列を反対にした(縦横を取り換えた)
を転置行列といいます。
もとの行列・左右反転した行列・上限反転した配列・転置行列
のすべてを表示させるプログラムを考えて下さい。
転置は難しいですが粘り強く考えて下さい。