第6講 配列
第5話 もとの行列・左右反転した行列・上限反転した配列・転置行列のすべての表示
を実現するプログラム例
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
Console.WriteLine() '改行
'上下反転行列の表示
For i = 0 To 2
For j = 0 To 3
If a(2 - i, j) < 10 Then Console.Write(" {0:d} ", a(2 - i, j)) '右端をそろえるための半角スペース
If a(2 - i, j) >= 10 Then Console.Write("{0:d} ", a(2 - i, j))
Next
Console.WriteLine() '改行
Next
Console.WriteLine() '改行
'転置行列の表示
For i = 0 To 3
For j = 0 To 2
If a(j, i) < 10 Then Console.Write(" {0:d} ", a(j, i)) '右端をそろえるための半角スペース
If a(j, i) >= 10 Then Console.Write("{0:d} ", a(j, i))
Next
Console.WriteLine() '改行
Next
End Sub
End Module
社員f()の負担が大きすぎますので、
社員f()はデータ発生のみを担当して、
もとの行列の表示・左右反転行列の表示・上限反転行列の表示・転置行列の表示
をそれぞれ異なる社員にやらせたいところですが、
配列を送る方法を学んでいない段階では仕方がありません。
第8講の関数(2)において、分業を実現しますが、
現時点では妥協するしかありません。
次は、3次元配列
Dim a(2, 9, 4) As Integer '最初の添え字は学期、2番目の添え字は出席番号、3番目は各教科に対応
を利用して、成績一覧表
(データはC言語入門講義から借用しているために一致しません。
データは一致しませんので、の戻すによって、
'を外して時刻からシード値を取得できるようにしておきましょう。)
をつくりましょう。
データはもちろん100未満のランダムデータです。
表示位置の調整は試行錯誤するよりありません。
出席番号は1桁と2桁の場合分け、
教科得点については、1桁と2桁と3桁の場合分けをして、
If文で対応するしかありません。
3次元For文と3次元配列になり初心者には難しい課題ですが、
30分粘りましょう。
30分試行錯誤してうまくいかないときは次話をクリック!