第6講 配列
第7話 成績一覧表に合計を加える
成績一覧表
を実現するプログラム例
Module Module1
Sub Main() '私は社長だ。
Rnd(-1)
Randomize(Timer())
f()
End Sub
Sub f()
Dim a(2, 9, 5) As Integer '配列aの宣言
Dim i, j, k As Integer
'ランダムデータ生成
For i = 0 To 2
For j = 0 To 9
For k = 0 To 4
a(i, j, k) = Int(Rnd() * 100) + 1
Next
Next
Next
'行列の表示
For i = 0 To 2
Console.WriteLine("{0:d}学期", i + 1)
Console.WriteLine ("出席番号 国語 社会 数学 理科 英語 合計")
For j = 0 To 9
'出席番号の表示
If j + 1 < 10 Then Console.Write(" {0:d} ", j + 1)
If j + 1 >= 10 Then Console.Write(" {0:d} ", j + 1)
'以下合計点算出
a(i, j, 5) = 0
For k = 0 To 4
a(i, j, 5) += a(i, j, k)
Next
'以上合計点算出
'以下成績表示
For k = 0 To 5
If a(i, j, k) < 10 Then Console.Write(" {0:d} ", a(i, j, k)) '右端をそろえるための半角スペース2個分
If a(i, j, k) >= 10 And a(i, j, k) < 100 Then Console.Write(" {0:d} ", a(i, j, k)) '右端をそろえるための半角スペース1個分
If a(i, j, k) >= 100 Then Console.Write("{0:d} ", a(i, j, k))
Next
Console.WriteLine() '改行
Next
Console.WriteLine() '改行
Next
End Sub
End Module
さらに、
Dim h(2, 9) As Single '平均点を収納する箱
を加えて平均も算出して表示させましょう。
ここでも、VBの型を自動的に変換してくれる機能が活躍します。
Integer型同士の計算結果はInteger型になるのが本来の姿ですが、
VBの場合は割り算に関しては自動的に実数型にキャストしてくれるのでしたね。