• 検索結果がありません。

配列の定義

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)社員の年収の最大値,最小値を求め,表示しなさい.

(応用)社員の年収の標準偏差を出力しなさい.

ドキュメント内 Microsoft Word - プログラミング基礎c.doc (ページ 38-43)

関連したドキュメント