第07章:数组与自定义数据类型*数组的基本概念譬如我们在程序中有20个数,代表20个圆的半径,我们通常会用变量r1、r2……r20来表示,如果我们将r1到r20这些变量名分离开来,即用r(1)、r(2)……r(20),这样我们就称r(1)、r(2)……r(20)为一数组,其中r称为数组名,而1到20称为数组的下标。如果r(1)到r(20)表示的是数值型的数,则称其为数值型数组,而如果r(1)到r(20)表示的是字符串,则称其为字符串型数组。组中的每一项都称为是数组的元素。*数组的基本概念数组:是具有相同数据类型的元素所成的有序集合,每个数组是用一个统一的名称表示数组元素的集合,数组中的每一元素具有唯一索引号(即下标),可以用数组名及下标唯一地识别一个数组的元素。数组,以一个变量名引用一组变量,不同的变量下标(或称为索引)数字区分。数组的下标有上界与下界,数组元素在下界与上界之间连续分布。使用数组比使用单个变量的好处在于,可以通过对下标的操作来简化程序。*数组必须遵循先声明后使用的原则,声明一个数组就是声明其数组名、类型、维数和数组的大小。下标的个数决定数组的维数,各维下标之间用逗号分开。在VB中有一维数组、二维数组等,最多可以达到60维。按声明时是否可以确定数组的大小将数组分为静态数组和动态数组,前者大小固定,后者大小不确定,以后在使用前需要重定义。在声明数组时,给定了数组元素个数的数组称为静态数组。静态数组的声明形式为:Public|Private|Dim数组名(维数定义)[As类型]数组的基本概念*1、数组的下标默认从0开始,顺序增加至n,故数组的大小应为n+1。例:DimintM(5)AsInteger定义了一个整型数组,它有6个元素,在内存中分配空间如下:intM(0)intM(1)intM(2)intM(3)intM(4)intM(5)2、可以更改下标下界默认值,从1开始。方法为:在模块开头模块的声明段中加入语句: OptionBase1即指定数组下标从1开始,这时上例数组的元素个数为5。3、可以任意指定数组下标的上下界。定义形式为:Dim数组名(mTon)[As类型名]此时数组元素个数为:n-m+1。例:DimsngArray(-10To–2)AsSingleDimDblArray(-5To5)Asdouble数组的基本概念*数组的类型4、数组的引用一般是通过使用数组元素来引用数组的。数组元素的下标可以使用整型常量或变量,甚至可使用表达式。数组元素在程序中的地位相当于变量,用法也与变量相似。例:x=intM(2)*5-b*数组的类型5、数组的输入输出(1)直接赋值例:给上例定义的数组可如下赋值:intM(0)=80:intM(1)=83:intM(2)=70intM(3)=68:intM(4)=90:intM(5)=86数组在内存中存放如下:intM(0)intM(1)intM(2)intM(3)intM(4)intM(5)80 83 70 68 90 86(2)用循环语句例:DimiAsInteger,Score(6)AsIntegerFori=1To6 score(i)=InputBox(请输入第i个数组元素)Nexti*数组的类型一、常规数组数组也分为全局级(应用程序级)、模块级或局部(过程级)。(1)全局数组:在标准模块的声明部分使用Public语句: Public数组名(n)As类型名(2)模块级数组:在模块的声明部分使用Private或Dim语句: Private|Dim数组名(n)As类型名(3)局部数组:在过程中使用Dim或Static语句: Dim|Static数组名(n)As类型名 其中Static定义的是静态数组。其中当n是取值不超过长整型的非负整数常量时,n值决定了数组中元素的个数。*一维数组当定义的是一维数组时,有三种情况:(1)默认情况下,数组共有n+1个元素。如: DimintN1(5)AsInteger定义了一个名为“intN1”的数组,共有:intN1(0)、intN1(1)、intN1(2)、intN1(3)、intN1(4)、