第六章  数组
双击滚屏  关闭窗口

 

6.2 固定大小的数组

  6.2.1 数组的声明
  6.2.2 数组的使用
  

 

6.2.1 数组的声明

一维数组:

dim a(20) as integer

21 个元素。索引值从 0 到 20 。

dim b(1 to 15) as integer

15 个元素。索引值从 1 到 15 。

二维数组:

如 dim c(5,5) as integer

6*6 的二维数组 c 。

6.2.2 数组的使用

例 1 :随机产生 10 个两位整数,找出其最大值、最小值和平均值。

程序代码:

Dim a(1 To 10) As Integer

Private Sub Form_Load()

Dim p As String

Randomize

p = ""

For i = 1 To 10

a(i) = Int(Rnd * 90) + 10

p = p & Str(a(i)) & ","

Next

Label4.Caption = LTrim(Left(p, Len(p) - 1))

End Sub

Private Sub Command2_Click()

Dim min, max As Integer, s As Single

min = 100: max = 10: s = 0

For i = 1 To 10

If a(i) > max Then max = a(i)

If a(i) < min Then min = a(i)

s = s + a(i)

Next

Text1.Text = max

Text2.Text = min

Text3.Text = s / 10

End Sub

Private Sub Command1_Click()

Form_Load

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

End Sub

 

Private Sub Command3_Click()

Unload Me

End Sub

执行结果:

                

例 2 :斐波那契 (Fibonacci) 数列问题。

程序代码:

Private Sub Command1_Click()

Dim f(15) As Integer

List1.Clear

f(1) = 1: f(2) = 1

p = Format("Fib(" & 1 & "):", "!@@@@@@@@@@@@") & Format(f(1), "########")

List1.AddItem p, 0

p = Format("Fib(" & 2 & "):", "!@@@@@@@@@@@@") & Format(f(2), "########")

List1.AddItem p, 1

For i = 3 To 15

f(i) = f(i - 1) + f(i - 2)

p = Format("Fib(" & i & "):", "!@@@@@@@@@@@@") & Format(f(i), "########")

List1.AddItem p, i - 1

Next

End Sub

执行结果:

                

例 3 :由计算机随机生成 10 个互不相同的数,然后将这些数按由小到大的顺序显示。

程序代码:

Dim a(1 To 10) As Integer

Private Sub Command1_Click()

Form_Load

End Sub

 

Private Sub Command2_Click()

For i = 1 To 9

For j = i + 1 To 10

If a(i) > a(j) Then

t = a(i): a(i) = a(j): a(j) = t

End If

Next

Next

p = Str(a(1))

For i = 2 To 10

p = p & "," & Str(a(i))

Next

Label2.Caption = LTrim(p)

End Sub

 

Private Sub Form_Load()

Dim p As String, x As Integer

Randomize

p = ""

For i = 1 To 10

Do

x = Int(Rnd * 90) + 10

yes = 0

For j = 1 To i - 1

If x = a(j) Then yes = 1: Exit For

Next

Loop While yes = 1

a(i) = x

p = p & Str(a(i)) & ","

Next

Label1.Caption = LTrim(Left(p, Len(p) - 1))

Label2.Caption = ""

End Sub

执行结果:

                 

例 4 :已知 10 位同学的姓名及数学、语文、外语 3 门课程的成绩。编写程序,实现以下要求:

1) 成绩的查询。

2) 各科平均分数的计算。

3) 显示各科平均分以下的同学姓名。

程序代码:

Dim a(1 To 10) As String, b(1 To 10, 1 To 4) As Integer

Private Sub Command1_Click()

s = 0

For n = 1 To 10

s = s + b(n, 1)

Next

s = s / 10

p = ""

For n = 1 To 10

If b(n, 1) < s Then p = p & a(n) & " "

Next

MsgBox " 低于平均分的同学有: " & Chr(13) & Chr(10) & p, 0, " 数学平均分为: " & s

End Sub

 

Private Sub Command2_Click()

s = 0

For n = 1 To 10

s = s + b(n, 2)

Next

s = s / 10

p = ""

For n = 1 To 10

If b(n, 2) < s Then p = p & a(n) & " "

Next

MsgBox " 低于平均分的同学有: " & Chr(13) & Chr(10) & p, 0, " 语文平均分为: " & s

End Sub

 

Private Sub Command3_Click()

s = 0

For n = 1 To 10

s = s + b(n, 3)

Next

s = s / 10

p = ""

For n = 1 To 10

If b(n, 3) < s Then p = p & a(n) & " "

Next

MsgBox " 低于平均分的同学有: " & Chr(13) & Chr(10) & p, 0, " 外语平均分为: " & s

End Sub

 

Private Sub Form_Activate()

For n = 1 To 10

List1.AddItem a(n), n - 1

b(n, 4) = b(n, 1) + b(n, 2) + b(n, 3)

Next

Text1.Text = "": Text2.Text = "": Text3.Text = "": Text4.Text = ""

End Sub

 

Private Sub Form_Load()

a(1) = " 陈高阳 ": b(1, 1) = 89: b(1, 2) = 85: b(1, 3) = 91

a(2) = " 赵世杰 ": b(2, 1) = 75: b(2, 2) = 78: b(2, 3) = 84

a(3) = " 李民雄 ": b(3, 1) = 64: b(3, 2) = 82: b(3, 3) = 72

a(4) = " 马英丽 ": b(4, 1) = 88: b(4, 2) = 68: b(4, 3) = 64

a(5) = " 杨广民 ": b(5, 1) = 79: b(5, 2) = 79: b(5, 3) = 87

a(6) = " 李灵君 ": b(6, 1) = 91: b(6, 2) = 88: b(6, 3) = 87

a(7) = " 陈吉至 ": b(7, 1) = 68: b(7, 2) = 73: b(7, 3) = 64

a(8) = " 王东明 ": b(8, 1) = 58: b(8, 2) = 68: b(8, 3) = 65

a(9) = " 姜大伟 ": b(9, 1) = 76: b(9, 2) = 81: b(9, 3) = 88

a(10) = " 吴晓林 ": b(10, 1) = 78: b(10, 2) = 89: b(10, 3) = 82

End Sub

 

Private Sub List1_Click()

n = List1.ListIndex + 1

Text1.Text = b(n, 1)

Text2.Text = b(n, 2)

Text3.Text = b(n, 3)

Text4.Text = b(n, 4)

End Sub

 

执行结果:

                 

 

                   

 

 
双击滚屏  关闭窗口
 
版权所有数学与信息科学学院