配色: 字号:
第八章 数组
2016-06-21 | 阅:  转:  |  分享 
  
第八章数组引子8.1数组的概念8.2数组的声明和使用例:定义一个数组a,共包含15个元素:a(1)~a(15)。该数组中的
各个数组元素均只能存放整型数值。【例8-2】通过调用函数LBound和UBound获取数组b的下界和上界,以此控制数组元素
的输出。◇数组元素的输出数组元素的输出Print语句,同时与循环语句相结合进行。Dima(3,4),b(
4,3)AsIntegerPrint"随机产生的矩阵是:"Fori=1To3Forj=
1To4a(i,j)=Int(100Rnd())Printa(i,j);
NextjPrintNexti8.4 控件数组控件数组是由一组相同类型的控件组
成,它们拥有相同的控件名字,具有相同的属性设置。数组中的每个控件都有唯一的下标,被称为索引号。控件数组元素的引用也是把数组名和括号
中的下标结合起来的。【例8-8】在窗体上分别设置4个命令按钮和4个标签,按钮上分别显示春、夏、秋、冬4个字,用户按这4个按钮
时,在按钮右边的标签里分别显示兰、竹、菊、梅4个字。要求使用控件数组,控件数组如图所示。代码:PrivateSubComm
and1_Click(IndexAsInteger)n=IndexSelectCasenCa
se0ch="兰"Case1ch="竹"Case2ch
="菊"Case3ch="梅"EndSelectLabel1(n).Caption
=chEndSub8.5综合应用例:结合动态数组、控件数组及一些常用的算法,实现从数组中“找
出最大值”、“数组反向输出”以及“数组从小到大排序后输出”等功能,任务如下图所示,单击“数据生成”按钮,弹出输入对话框“请输入一维
数组的长度”,然后单击相应的单选项后,单击“运用算法”按钮,实现相应的结果第八章VisualBAS
IC程序设计理解数组的概念,掌握静态数组、动态数组的声明及其应用,以及控件数组的建立和使用。熟悉数组元素的引用形式,以及
如何与循环控制语句结合进行针对数组元素的逐一操作。本章要求:如何通过两层循环控制对二维数组进行逐行逐列地操作。数组作为参数在
过程之间传递的方式。区分静态数组和动态数组的不同,以及控件数组的建立和使用过程。本章重点:本章难点:PrivateSu
bForm_click()Dima1,a2,a3,a4AsStringa1="zhao"a2=
"qian"a3="sun"a4="li"Form1.Printa1Form1.Printa
2Form1.Printa3Form1.Printa4EndSubPrivateSubForm_Clic
k()DimaAsVarianta=Array("zhao","qian","sun",
"li")Fori=0To3Form1.Printa(i)NextiEndSub数组是
一组具有有序下标的相关数据形成的元素集合,可以用统一的名称和确定的下标来引用数组元素。数组的一般形式为A(n)
。其中,A代表数组名,n代表下标变量,一个数组可以有若干个下标变量。数组的维数及下标范围:Dima(5
)AsInteger ''数组a是一维数组下标范围是0-5
Dimf(1To3,2To5)AsString ''表示3行4列的二维数组
,行下标的范围是1~3,列下标的范围是2~5数组名的命名规则和一般变量的命名规则相同8.2.1静态数组及其声明1
.一维数组的声明静态数组是指元素个数在声明数组时就设定的数组,一般使用关键字Dim声明。【格式】Public|P
rivate|Static|Dim<数组名>([<下界>To]<上界>)As<类型名>【说明】Public、Privat
e、Static、Dim关键字分别界定了数组使用的不同范围:(1)建立全局数组时,在模块的声明段用Public声明。(2)建立
窗体、模块级数组时,在窗体、模块的声明段用Private或Dim声明。(3)建立局部过程中的数组时,在过程的声明段用Static
或Dim声明。As的用法与变量定义中的As功能一样。Dima(1To15)AsInteger若欲存放不同数
据类型: Dimc(15)AsVariant或者Dimc(15)如果不指定下标的下界,一般默认值为0,即下
界从0开始。如果想修改默认下界,则要执行OptionBase语句。例如:在执行OptionBase1之前Dima(5
)AsInteger ‘数组a的下标范围是0~5,含6个元素在执行OptionBase1之后Dim
a(5)AsInteger ''数组a的下标范围是1~5,含5个元素多维数组的声明方法和一维数组的声明基本一致,需要对每
一维的上界、下界做出声明。例如:Dima(1To8,6)AsInteger Dimb(9,9,9)
AsSingle二维数组a可以存放8×7个元素,相当于一个8行7列的矩阵;三维数组b可以存放10×10×10个元素。多
维数组元素的引用,仍然通过数组名和元素对应的下标号指定。2.多维数组的声明3.数组下标测试函数定义了数组的下界和上界之
后,可以调用函数LBound和UBound来获取数组下界值和上界值,以便作为控制数组元素变化范围的依据。【格式】LBound
(数组名[,维数序号])UBound(数组名[,维数序号])[维数序号]用于指定返回某
一维的下界。1表示第一维,2表示第二维,以此类推。如果省略,则返回第一维的下界。若将LBound函数与UBound函数一起使用,可
用来确定一个数组的大小。Dimb(-2To5)Print"元素下标号:";Fori=LBound
(b,1)ToUBound(b,1)Printi;NextIPrintPrint"对应元素值
:";Fori=LBound(b,1)ToUBound(b,1)b(i)=2iP
rintb(i);NextiPrintPrint"数组的第一个元素值是:";b(LBound(b,1))8
.2.2动态数组及其声明在声明数组时,有时可能遇到不能确定数组上下界和元素个数的时候。当预计到数组存储元素的个数可能不断变化
时,就需要声明一个动态数组。和静态数组不同的是,动态数组不需声明上下界,或用变量为下界定值。【格式】Dim<数组名>(
)As<类型名>例如:Dima()AsVariant在使用动态数组的过程中,如果确定了元素个数,需要对数组
的上下界进行补充声明,并重新分配存储单元,使用ReDim语句。【格式】ReDim[Preserve]<动态数组名>([<
下界>To]<上界>)执行ReDim语句后,原来存储在数组中的数据随即全部丢失。如果想保留原值,则要在ReDim
后加上Preserve关键字,原来的元素则成为最前面的元素,以后新增的元素排在后面。可以使用ReDim语句反复地改变数组的元素及维
数,但是ReDim语句不能改变该数组的数据类型。注意:ReDim语句只能出现在事件过程或通用过程中。8.3数组的基本操
作数组的基本操作包括:◇引用◇赋值
◇复制◇输出这些操作都是针对数组元素而不是整个数组进行的。对数组元素的使用
和一般变量的使用一致,只是数组元素的名称上有自己的特点。【格式】数组名(元素下标)注意:数组名、类型、维数及元素下标的范
围要与声明数组时一致。例如:Dime(3To7),则e(3)、e(4)、e(5)、e(6)、e(7)表示数组e的5个元素
。对元素的非法引用,会产生越界错误,例如e(2)e(8).8.3.1数组元素的引用◇数组元素的赋值:
在程序中,凡是简单变量出现的地方都可以用数组元素代替。而给普通变量赋值的方法同样适用于数组元素。例如:e(3)=123
e(4)="hello" .利用Array函数来完成数组的赋值。Array函数的作用是返回一个数组变量,各
数组元素的值就是Array函数括号中用逗号隔开的参数。【格式】数组变量名=Array(数组元素值表)8.3.2
.数组元素的赋值与输入【例8-4】定义一个存储3个人情况的数组,并分行输出3个人的情况,数组赋值如图8-3所示。Pri
vateSubForm_click()DimaAsVarianta=Array("张三"
,"男",80,"李四","女",87,"王五","男",90)Print"姓名","性别","
平均分"Fori=0To2Printa(3i),a(3i+1),a
(3i+2)NextiEndSub当数组元素较少或只对少数几个赋值时,可以直接使用赋值语句逐个地
对其元素赋值;如果数组较大,但输入数组的数据是有规律的,则一般可通过赋值语句、For型循环语句或InputBox函数输入。对
于元素个数不太确定的数组使用ForEach…Next语句将更为方便。【格式】ForEach<变量>In<数组名|
对象集合><循环体>Next[
<变量>]◇数组元素的输入【例8-5】声明一个具有10个元素的数组,对每个元素赋值,值为每个元素下标号的平方,赋值后使用F
orEach…Next语句输出各个元素的值。PrivateSubCommand1_Click()Dima(1T
o10)AsIntegerFori=1To10a(i)=ii ‘
将10个元素分别赋值为1、4、9、…、100NextiForEachnIna
Printn ''逐个输出元素的值NextnEndSub◇数组元素的复制数组元素之间的复制很简单,和一般单个变量之间的复制相同;但要复制整个数组,不能直接在两个数组名之间用赋值号进行,一般要与循环语句相配合,在两个数组的元素之间一一对应地赋值,从而达到整体复制的目的。1.控件数组的建立(1)相同取名法(2)复制控件法(3)设置索引号2.控件数组的使用【格式】<控件数组名>(<下标号>).<属性名>【说明】对按钮型的控件,当程序执行时,用户对其中的某个按钮进行某种操作,系统会把该按钮的Index值传递给该组控件的相应事件过程的形式参数,接下来就可以在过程中根据形式参数的值进行对应的操作。
献花(0)
+1
(本文系信检彭博海...首藏)