第9章 数组与过程
本章主要考查Visual Basic中的数组与过程,主要包括:数组基本概念、数组基本操作、控件数组、Sub过程、Function过程、过程中的参数、局部内存分配和Shell函数。通过对历年试卷内容的解析,本章考核内容约占18%,属于重点考查对象,但将保持下降趋势。
9.1 数组基本概念
9.1.1 考点1:数组的定义
数组是有序的数据的集合。在Visual Basic中,一个数组中的元素可以是相同类型的数据,也可以是不同类型的数据。在Visual Basic中,可以有两种格式定义数组:
1.第一种格式
(1)一维数组
一维数组的定义一般格式如下:
Dim 数组名(下标上界) As 类型名称
例如:Dim score (10) As Integer
该语句定义了一个一维数组,名字为score,类型为Integer,共6个元素。
(2)二维数组
二维数组的定义一般格式如下:
Dim 数组名(第一维下标上界,第二维下标上界) As 类型名称
例如:Dim stuScore (10,2) As Integer
该语句定义了一个二维数组,名字为stuScore,类型为Integer,共11X3=33个元素。
2.第二种格式
(1)定义数组
在定义数组时,指定数组下标的上界和下界。语句一般格式如下:
Dim 数组名([下界 To] 上界[,[下界 To] 上界]……) As 类型名称
例如:Dim score(1 To 5)
该语句定义了一个一维数组,下界为1,上界为5,共5个元素。
第二种格式实际上包含了第一种格式,只要省略“下界To”,即变为第一种格式。
(2)语句说明
“数组名”与简单变量相同,可以是任何合法的Visual Basic变量名,在同一过程中,数组名不能与变量名同名;
数组必须先定义后使用,并且每一维的元素个数必须是常数,不能是变量或表达式;
使用Dim语句定义数组时,数值数组中的全部元素初始化为0,字符串数组中的全部元素初始化为空字符串;
一般情况下,下标的下界默认为0,可以使用Option Base n(n只能为或1)改变下标的默认为1;使用LBound和UBound函数可以获得数组的上、下界值;
如果下标值从0开始,则数组元素的个数为最大下标值加1,如果下标值从1开始,则数组元素的个数与最大下标值相等。
3.定义数组的保留字
在Visual Basic中,定义数组时可使用4个保留字,以定义不同范围内的数组:
Dim:定义窗体模式或标准模块数组,也可用在过程中;
ReDim:用在过程中;
Static:用在过程中;
Public:用在标准模块中,定义全局数组。
例9.1.1 在窗体上画1个命令按钮,其名称为Command1,然后编写如下事件过程:[2006年4月 填空第7-8题]
Private Sub Command1_Click()
Dim arr (1 To 100) As Integer
For I = 1 To 100
arr(i)=Int(Rnd *1000)
Next i
Max = arr(1)
Min = arr(1)
For i= 1 To 100
If 【7】 Then
Max = arr(i)
End If
If 【8】 Then
Min =arr(i)
End If
Next i
Print "Max =";Max, "Min=";Min
End Sub
程序运行后,单击命令按钮,将产生100个1000以内的随机整数,放入数组arr中,然后查找并输出这100个数中的最大值Max和最小值Min,请填空。
解析:由条件判断可以得知,在【7】处的意思是将最大值Max中的数与arr(i)中的数相比较,【8】处的意思是将最小值Min中的数与arr(i)中的数相比较。
答案:【7】Max 9.1.2 考点2:默认数组
所谓默认数组,就是数据类型为Variant(默认)的数组。在一般情况下,定义数组应指明其类型。
例如:
Static Elec(1 To 100)As Integer
该语句定义了一个数组Elec,该数组的类型为整型,它有100个元素,每个元素都是一个整数。但如果使用语句:
Static Elec(1 To 100)
则定义的数组是默认数组,没有指定类型,则类型默认为Variant,该语句等价于:
Static Elec(1 To 100) As Variant
对于默认数组来说,同一个数组中可以存放各种不同的数据。因此,默认数组可以说是一种“混合数组”,这也就是默认数组的意义所在。
例9.1.2 阅读下面程序并填空。
Sub Form_Click()
【1】
Defau(1)=100
Defau(2)=234.56
Defau(3)= "CSAI"
Defau(4)= "20" & Now
For i=1 To 4
Print "Defau(";I; ")="; Defau(i)
Next i
End Sub
答案:【1】Static Defau(4)
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15080520号-20 珠峰网 版权所有 All Rights Reserved
|