
8.1 数组的概念
1. 引例
例:求 100 个学生的平均成绩,并统计高于平均分的人数。用简单变量和循环,
求平均成绩程序段如下:
aver = 0
For i = 1 To 100
mark = InputBox(" 输入学生成绩 ")
aver = aver + mark
Next i
aver = aver / 100
由于循环体内变量 mark 只能放一个学生的成绩,无法统计高于平均分的人数。
若用简单变量保存 100 个学生的成绩,则需定义 100 个变量和使用 100 句输
入语句。由此引入了数组。

数组的概念
用数组解决问题的程序如下:
Private Sub Command1_Click()
Dim mark(1 To 100) As Integer ' 声明有 100 个元素的数组
mark
Dim aver!, overn%, i%
aver = 0
For i = 1 To 100 ' 输入成绩,求分数和
mark(i) = InputBox(" 输入学生的成绩 ")
aver = aver + mark(i)
Next i
aver = aver / 100 ' 求 100 人的平均分
overn = 0
For i = 1 To 100 ' 统计高于平均分的人数
If mark(i) > aver Then overn = overn + 1
Next i
Print aver, overn
End Sub

4
数组的概念
数组不是一种数据类型,而是一组相同类型的变量的集合。在程序中使用数组
的最大好处是用一个数组名代表逻辑上相关的一批数据,用下标表示该数组中
的各个元素,和循环语句结合使用,使得程序书写简洁。
数组必须先声明后使用,数组声明后在内存可分配一块连续的区域。
利用 Dim 语句可以声明数组名、类型、维数、数组大小;
声明时下标的个数确定数组的维数,最多可达 60 维;
按声明时的大小,数组分静态 ( 定长 ) 数组、动态 ( 可变长 ) 数组。

数组的概念
Dim mark(1 To 100) As Integer
声明了一个一维定长数组,该数组的名字为 mark ,类型为整型;共有 100 个
元素,下标范围为 1 To 100 ; mark 数组的各元素是 mark(1) , mark(2) ,
mark(3) ,…, mark(100) ; mark(i) 表示由下标 i 的值决定是哪一个元素。
mark 数组内存分配如下:
mark(100
)
mark(9
9)
…mark(3)mark(2)mark(1)
每个数组元素有一个惟一的顺序号,下标不能超出数组声明时的上、下界范围,
否则会显示下标越界的出错提示。
数组元素的使用规则与同类型的简单变量相同。
评论3