配列の定義
Dim 配列名(最大インデックス)
またはDim 配列名(最小インデックス To最大インデックス) ‘最小インデックスは負でも良い
配列の使い方
戻り値 = 配列名(インデックス)
表の数値をコンピュータプログラムに記憶する場合には,配列を用いる.
名前 ゲームの得点
まかなえ 35
たしろ 75
てらしま 55
みついし 65
【コード1】
Dim Tokuten(0 To 3) As Integer 配列Tokuten
( )内の数字はインデックス Private Sub Form_Load()
Tokuten(0) = 35 Tokuten(1) = 75 Tokuten(2) = 55 Tokuten(3) = 65 End Sub
0 1 2 3
Private Sub Command1_Click()
Form1.Print “配列の0番目の要素は”; Tokuten(0) Form1.Print “配列の1番目の要素は”; Tokuten(1) Form1.Print “配列の2番目の要素は”; Tokuten(2) Form1.Print “配列の3番目の要素は”; Tokuten(3) End Sub
(0) (1) (2) (3)
35 75 55 65
【コード2】コード1にFor..Nextを適用した例(Command1_Click())のみ変更)
Private Sub Command1_Click() Dim n As Integer
For n = 0 To 3
Form1.Print "配列の”; n ;“番目の要素は"; Tokuten(n) Next
End Sub
【重要】配列の利点は,配列のインデックスに変数が使えることである.
【コード3】文字列の配列 Dim Tokuten(0 To 3) As Integer
Dim Namae(0 To 3) As String 配列Namae
Private Sub Form_Load() Tokuten(0) = 35 Tokuten(1) = 75 Tokuten(2) = 55 Tokuten(3) = 65 Namae(0) = "まかなえ"
Namae(1) = "たしろ"
Namae(2) = "てらしま"
Namae(3) = "みついし"
End Sub 0 1 2 3
Private Sub Command1_Click() Dim n As Integer
For n = 0 To 3
Form1.Print Namae(n); "の得点は"; Tokuten(n) Next
End Sub
【演習】
コード3を基に,4人の得点の合計を求めなさい.
(0) (1) (2) (3)
まかなえ た し ろ てらしま みついし
【コード4(回答例)】(コード3のCommand1_Click()のみ変更)
Private Sub Command1_Click() Dim n As Integer
Dim Sum As Integer Sum = 0
For n = 0 To 3
Form1.Print Namae(n); "の得点は"; Tokuten(n) Sum = Sum + Tokuten(n)
Next
Form1.Print "合計点は"; Sum End Sub
【演習】最大値を求める.
コード3を基に,得点の最高点を抽出し表示するプログラムを作成しなさい.
【コード5(回答例)】
Private Sub Command1_Click() Dim n As Integer
Dim max As Integer
For n = 0 To 3
Form1.Print Namae(n); "の得点は"; Tokuten(n) Next
For n = 0 To 3 If n = 0 Then
max = Tokuten(n)
ElseIf Tokuten(n) > max Then max = Tokuten(n)
End If Next
Form1.Print "最高点は"; max; "です."
End Sub
【問題】最小値を求める.
コード3,4を基に,得点の最低点を抽出し表示するプログラムを作成しなさい.
【演習】
コード3・4をもとに,最高得点及び最高得点者を表示するプログラムを作成しなさい.
(ただし最高得点者が2名以上いる場合には,すべての最高点者名を表示せずに,
得点者が2名以上います”とするだけでよい.)
Private Sub Command1_Click() Dim n As Integer
Dim max As Integer Dim maxn As Integer Dim flag As Boolean
For n = 0 To 3
Form1.Print Namae(n); "の得点は"; Tokuten(n) Next
flag = False For n = 0 To 3 If n = 0 Then
max = Tokuten(n) maxn = n
ElseIf Tokuten(n) = max Then flag = True
max = Tokuten(n)
ElseIf Tokuten(n) > max Then flag = False
max = Tokuten(n) maxn = n
End If Next
If flag = False Then
Form1.Print "最高点は"; Namae(maxn); "の"; max; "です."
Else
Form1.Print "最高点は"; max; "で2名以上います."
End If End Sub
【問題】
ある会社の社員A~Jの10人の年収が以下の通りであったとする.
A:1230万円,B:760万円,C:600万円,D:700万円,E:780万円,
F:980万円,G:880万円,H:920万円,I:850万円,J:550万円
これらの年収の値を任意に定義した配列に入れた上で,以下のプログラムを作成しなさい.
(1)コマンドボタンを押すことにより,社員A~Jの年収を表示するプログラムを作成しなさい.
(2)社員の年収の合計を表示しなさい.
(3)社員の年収の平均を表示しなさい
(4)社員の年収の最大値,最小値を求め,表示しなさい.
(応用)社員の年収の標準偏差を出力しなさい.