数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。下面主要介绍VB中的数组。
1、数组的概念
(1) 引例
若我们要求一个班60个学生的平均成绩,然后统计高于平均分的人数。按以前简单变量的使用和循环结构相结合,求平均成绩程序段如下:
- Dim ave As Single, sum As Single, mark As Single
- Dim i As Integer
- ave = 0
- sum = 0
- For i = 1 To 6
- mark = InputBox("输入第" & i & "个学生的成绩")
- sum = sum + mark
- Next
- ave = sum / 6
- Print "平均分是:"; ave
但若要统计高于平均分的人数,则无法实现。mark是一个简单变量,存放的是最后一个学生的成绩。已有知识解决方法:再重复输入成绩,带来两个问题:
(1)输入数据的工作量成倍增加;
(2)若本次输入的成绩与上次不同,则统计的结果不正确。
解决此问题的根本方法,引入数组,始终保持输入的数据,一次输入,多次使用。
(2)数组的概念
数组就是把有限个类型相同的变量用同一个名字命名,然后用编号区分它们的变量的集合。这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。
在引例中,可以定义一个数组mark(1 to 60),记录60个学生的成绩,如果第一个学生的成绩是90分,则mark(1)=90;如果第2个学生的成绩为80分,则mark(2)=80,第60个学生的成绩为96分,则mark(60)=96,依此类推。
2、数组的定义。
声明数组的一般格式如下:
Dim 数组名([下界 to ] 上界 [,[下界 to ] 上界…])As 数据类型
对于VB的数组,表示数组元素时应注意:
① 下标要紧跟在数组名后,而且用圆括号括起来(不能用其他括号);
② 数组名的命名与变量名的命名规则相同;
③ 下标可以是常量、变量或表达式,但其值必须是整数(如果是小数将四舍五入为整数);
④ 数组中可以存储数据的个数是由下标的下界和上界决定的,当下界省略时,默认的下界值为0。
- Dim x(10 to 20) As Integer ‘下标范围是10~20,可保存11个数据
- Dim y(1 to 20) As Integer ‘下标范围是1~20,可保存20个数据
- Dim z(20) As String ‘下标范围是0~20,可保存21个数据
⑤ 通过指定数组名和下标来使用数组中的元素,下标可以是一个表达式。例如:
- x(10)=100
- x(11)=150
- z(1)=“Visual Basic”
- i=10
- y(i+5)=30
⑥ 在同一数组中,数组变量的类型必须是声明时指定的数据类型。下面的情形是不允许的:x(10)= “Visual Basic”
但是,因为把一个数值赋给一个字符串类型的变量时,系统会自动进行类型转换,所以下面的语名是允许的:z(2)=100
⑦ 如果数组只有一个下标则称为一维数组,但有许多场合一个下标是不够的。例口,在电影院确定位置,要有行数和位数(如第3行8号),如果要用一个数组来记录这种位置就得有两个下标。 如:
- Dim x(1 to 20,1 to 30) As Integer
有几个下标的数组就称为几维数组(VB最多允许60维)。
⑧ 数组应该在使用前定义。定义数组用“Dim”语句。例如:
- Dim Cscore(1 to 40) As Single, K(20,30) As Long
这个Dim浯句定义了两个数组。数组Cscore足Single类型的一维数组,有40个分量,下标的下界是1,上界是40。而数组K(20,30)是Long型的二维数组,下标省略了下界(对省略下界的情况VB自动用0做下界),它的第一维的下标范围是0—20,第二维的下标范围是0—30,数组K有2l x 31=651个分量。
⑨ 对于预先不能确定数组元素个数情形,可以使用动态数组。声明一个动态数组的方法是:在声明数组时不指定下标范围,当明确下标范围时,用ReDim语句再次声明该数组。例如:
- Dim x() As Integer ‘声明数组时不指定下标范围
当数组x的元素明确后(例如20个),则用ReDim语句声明如下:
- ReDim x(20)
如果动态数组的元素个数需要多次改变,可以多次应用ReDim语句。为了保留数组中原有的数据,必须在使用ReDim语句时使用Preserve关键字。例如要把数组x的元素个数改为30,并保留原来的20个元素中的数据,声明语句如下:
- ReDim Preserve x(30)
由于第一次用Dim语句声明数组时已经指定了数组的类型,因此不能在ReDim语句中再次用As关键字来指定数组的类型。
3、数组元素的输入和输出。
数组元素往往有很多,因此输入和输出有时需要用一些比较特殊的方法。
数组元素的输入,可以使用赋值语句、文本框、InputBox函数等等。
数组元素输出时,一般可以考虑两种方法:
①用PRINT方法直接输出到窗体,但当数据量大时难以实现数据的滚动;
②使用控件,如标签、文本框等,并且设置滚动条。
4、数组的应用
判断程序运行结果
- Private Sub Command1_Click()
- Dim i As Integer
- Dim a(1 To 10) As Integer
- For i = 1 To 10
- a(i) = 2 * i + 1
- Next i
- For i = 1 To 5
- Print a(2 * i - 1);
- Next i
- End Sub
希望通过本文的介绍,可以对初学者有帮助。
【编辑推荐】