1、利用数组可以有效地存储和处理成批数据本章主要内容第 6章 数 组数组的 概念数组的声明和应用动态数组For Each.Next循环语句控件数组程序举例处理成批的数据时,必须使用数组来处理表示 100个学生的成绩,采用简单变量来表示:s1, s2, s3, s99 , s100采用数组来表示: t(0), t(1), t(2), t(98), t(99)t(k) (k=0,1,2,99) 为数组元素 (或称 下标变量 ),它表示第k个学生的成绩 , k称为下标变量的 下标 (默认情况下, 下标从 0开始 )由三行四列组成的二维数组 y,其 12个下标变量可表示为y(0,0) y(0,1) y(0
2、,2) y(0,3)y(1,0) y(1,1) y(1,2) y(1,3)y(2,0) y(2,1) y(2,2) y(2,3)只要有规则地改变下标值,就可以很方便地使下标变量 (如 t(k)成为所需要的具体下标变量6.1 数组的概念6.2.1 数组声明语句 使用数组之前,一般需要定义数组,以便让系统分配相应的存储单元。格式为:Dim 数组名 (下界 1 to上界 1,下界 2 to上界 2)As 数据类型 功能:指定数组的维数、各维的上下界和数据类型举例:Dim Sum(10) As Long 下标号从 0 10,共 11个元素Dim Ary(1 to 20) As Integer 下标号从
3、 1 20,共 20个元素Dim d(1 to 5,1 to 10) As Double 定义二维数组还可以使用 Public、 Static、 Private等语句来声明数组 6.2 数组的声明和应用设定下界的方法Option Base 1 设定下界为 1Dim Data(10) As Single 下标号从 1 106.2.2 Array函数使用 Array函数可以为数组元素赋值示例Dim D As Variant 定义数组名 (变体类型 )D = Array(1, 2, 3, 4)执行结果: 1D(0) , 2D(1), 3D(2), 4D(3) 例 6.1 输入某小组 5个同学的成绩,
4、计算总分和平均分 (取小数后一位 )本例利用 InputBox函数来输入成绩,输入完毕后经过计算,再采用 Print直接在窗体上输出结果6.2.3 数组的应用Private Sub Form_Load()Dim d(5) As IntegerDim i As Integer, total As Single, average As SingleShowFor i = 1 To 5 输入成绩d(i) = Val(InputBox(“请输入第 “ & Str(i) & _“个学生的成绩 “, “输入成绩 “)Next itotal = 0For i = 1 To 5 计算总分和平均分total =
5、 total + d(i)Next iaverage = total / 5Print “总分: “ & totalPrint “平均分: “ & Format(average, “#.0“)End Sub 例 6.1(1)创建应用程序的用户界面和设置对象属性例 6.2 输入 10名学生的成绩,求出最高分和最低分例 6.2功能要求: 通过 Array函数输入 10个分数;单击 “查找 ”按钮 (Command2)后,开始查找最高分和最低分,找到后显示在标签 Label1上Option Base 1Dim score As VariantPrivate Sub Form_Load()Label1
6、.Caption = “单击 “查找 ”按钮开始查找最高分和最低分“score = Array(89, 96, 81, 67, 79, 90, 63, 85, 95, 83)End Sub(2) 编写程序代码Private Sub Command1_Click()Dim max As Integer, min As Integermax = score(1) 设定初值min = score(1)For i = 2 To 10 与后面的数据逐一比较If max score(i) Then 找最低分min = score(i)End IfNext iChr(13)起换行作用Label1.Caption = “最高分: “ + Str(max) + _Chr(13) + “最低分: “ + Str(min)End Sub