您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > vb-数组(基础教学)
Vb数组基础主讲人:陈柳斌数组是有序的数据的集合。在其它语言中,数组中的所有元素都属于同一个数据类型,而在VisualBasic中,一个数组中的元素可以是相同类型的数据,也可以是不同类型的数据。8.1数组的概念8.2静态数组与动态数组8.3数组的基本操作8.4数组的初始化8.5控件数组8.1数组的概念数组用于表示一组性质相同的有序的数,这一组数用一个统一的名称来代替,称为数组名。数组中的每一个元素称为数组元素。数组中的每一个元素可以用数组名和下标唯一地表示。数组中下标的个数称为数组的维数。8.1.1数组的定义数组应当先定义后使用。在计算机中,数组占据一块内存区域,数组名是这个区域的名称,区域的每个单元都有自己的地址,该地址用下标表示。定义数组的目的就是通知计算机为其留出所需要的空间。VisualBasic中,可以用4个语句来定义数组,这4个语句格式相同,但适用范围不一样:DimReDimStaticPublic以上4个语句都可以用来定义数组,下面以Dim语句为例来说明数组定义的格式,当用其他语句定义数组时,其格式是一样的。在定义数组时,VB提供了两种格式:1.第一种格式:Dim数组名(下标上界)[As类型]DimArrayDemo(5)AsIntegerArrayDemo(0)ArrayDemo(1)ArrayDemo(2)ArrayDemo(3)ArrayDemo(4)ArrayDemo(5)定义了一个一维数组,该数组的名字为ArrayDemo,类型为Integer(整型),共有6个数组元素。DimTest(2,3)AsIntegerTest(0,0)Test(0,1)Test(0,2)Test(0,3)定义了一个二维数组,该数组的名字为Test,类型为Integer(整型),共有3行,4列,12个数组元素。Dim数组名(第一维下标上界,第二维下标上界)[As类型]Test(1,0)Test(1,1)Test(1,2)Test(1,3)Test(2,0)Test(2,1)Test(2,2)Test(2,3)第0行第1行第2行第0列第1列第2列第3列说明:(1)数组名的命名规则,与简单变量相同(2)数组必须先定义,后使用(3)当用Dim语句定义数组时,会进行数组元素初始化(4)默认下标下界为0,可通过OptionBase语句来设置(5)要注意区分“可以使用的最大下标值”和“元素个数”1.第二种格式:Dim数组名[下界1To]上界1,[下界2To]上界2,…As类型DimPopulation(1949To2000)DimAge(10To100)在某些情况下,使用To能更好地反映对象的特性。说明:(1)数组名要做到见名知义。(2)数组名不能与变量名相同。(3)在定义数组时,元素下标必须是常数,不能是变量或表达式,即使事先给出变量的值也是错误的。(4)可以定义数据后再指定数组的类型。(5)数组的下界都必须小于上界。8.1.2默认数组在VisualBasic中,允许定义默认数组。所谓默认数组,就是数据类型为Variant(变体型)的数组。StaticElec(1to100)相当于StaticElec(1to100)AsVariant对于默认数组来说,同一个数组中可以存放各种不同的数据。8.2静态数组与动态数组在VB中,根据数组元素的个数能否变化,数组分为静态数组和动态数组。静态数组:数组元素的个数固定不变。动态数组:数组元素的个数在运行时可以改变。使用动态数组就可以在任何时候改变其大小,并且可以在不需要时清除动态数组所占的存储空间。因此,使用动态数组更加灵活、方便,并有助于高效管理内存。8.2.1动态数组的定义(2)在过程级使用下面的ReDim语句分配数组的实际元素个数。Public|Private|Dim|static数组名()[As数据类型],…ReDim数组名(维数定义)[As类型],…这里的维数定义通常包含变量或表达式,但其中的变量或表达式应有明确的值。定义动态数组需要分以下两步进行:(1)在模块级或过程级按以下格式定义一个没有下标的数组。说明1)ReDim语句只能出现在过程中。与Dim语句不同,ReDim语句是一个可执行语句。2)可以用ReDim语句反复改变数组元素及维数的数目。3)在定义动态数组的两个步骤中,如果用步骤(1)定义了数组的类型,则不允许用步骤(2)改变类型。4)每次执行ReDim语句时,当前存储在数组中的值会全部丢失。VB重新对数组元素进行初始化,即将可变类型数组元素值置为Empty,将数值型数组元素值置为0,将字符串类型数组元素值置为零长度字符串。Dimthis()AsStringSubCommand_Click()ReDimthis(4)this(2)=MicrosoftPrintthis(2)ReDimthis(6)this(2)=MicrosoftPrintthis(2)EndSub8.2.2数组的清除和重定义要清除数组的内容或对数组重新定义,这可以用Erase语句来实现。其格式如下:Erase数组名[,数组名],…注意,在Erase语句中,只给出要刷新的数组名,不带括号和下标。例如:EraseTest几点说明:(1)当把Erase语句用于静态数组时,则清空数组元素的值(2)当把Erase语句用于动态数组时,则删除数组(3)当把Erase语句用于变体数组时,则每个元素重置为空(4)Erase释放动态数组所使用的内存。8.3数组的基本操作建立一个数组之后,可以对数组或数组元素进行操作。数组的基本操作包括输入、输出及复制,这些操作都是对数组元素进行的。ForEach…Next语句可用于对数组的操作。8.3.1数组元素的输入、输出和复制1.数组的引用数组的引用通常是指对数组元素的引用,其方法是,在数组后面的括号中指定下标,例如:x(8),y(2,3),z%(3)要注意区分数组定义和数组元素!!在引用数组时,应注意以下几点:(1)在引用数组元素时,数组名、类型和维数必须与定义数组时一致。(2)如果建立的是二维或多维数组,则在引用时必须给出两个或多个下标。(3)引用数组元素时,其下标值应在建立数组时所指定的范围内。2.数组元素的输入(1)通过赋值语句来实现数组元素的输入。(2)通过循环语句来实现数组元素的输入。(3)通过InputBox函数输入。DimA(4)AsIntegerForI=1To4A(I)=INextIDimA(4)AsStringA(1)=ZhangA(2)=WangA(3)=LiA(3)=Zhao3.数组元素的输出数组元素的输出可用Print方法来实现。Fori=1to4Forj=1to4Printa(i,j);;NextjNexti4.数组元素的复制单个数组元素可以像简单变量一样从一个数组复制到另一个数组。为了复制整个数组,仍要使用For循环语句。…ReDimname1(10),name2(10)…Fori=1To10name2(i)=name1(i)NextI[例8.2]从键盘上输入10个整数,用冒泡排序法进行排序。8.3.2ForEach…Next语句ForEach…Next循环可以用来对数组中的所有元素重复进行类似的操作,语法格式为:ForEach成员In数组循环体[ExitFor]……Next[成员]DimX(15)ForEachAInXPrintA;NextA例如:[例]用ForEach…Next语句,求1+2+3+…+100的值。PrivateSubCommand1_Click()Dimx(100),aFori=1To100x(i)=iNextiForEachaInx()s=s+aNextaLabel1.Caption=sEndSub8.4数组的初始化所谓数组的初始化,就是给数组的各元素赋初值。为此,VisualBasic提供了Array函数。利用该函数,可以使数组在程序运行之前初始化,得到初值。数组变量名=Array(数组元素值)Array函数用来为数组元素赋值,其格式为:这里的“数组变量名”是预先定义的数组名,在“数组变量名”之后没有括号。之所以称为“数组变量”,是因为它作为数组使用,但作为变量定义,它既没有维数,也没有上下界。“数组元素值”是需要赋给数组各元素的值,各值之间以逗号分开。StaticNumbersAsVariantNumbers=Array(1,2,3,4,5)注意,数组变量不能是具体的数据类型,只能是变体(Variant)类型。一般来说,数组变量可以通过以下方法定义:(1)显式定义为Variant变量。(2)在定义时不指明类型(3)不定义而直接使用。Array函数只适用于一维数组,即只能对一维数组进行初始化,不能对二维数组或多维数组进行初始化。8.5控件数组控件数组是由一组相同类型的控件组成,这些控件共用一个相同的控件名字,具有相同的属性设置。数组中的每个控件都有一个唯一索引号,其所有元素的Name属性8.5,1基本概念同一控件数组名称相同,各控件(数组元素)的索引(下标)不同,该索引由控件的Index属性决定。控件数组中可用的最大索引值为32767。同一控件数组中的不同控件可以有自己的属性设置值。控件数组名(索引)应用程序中对于一些类型相同、功能相似的控件,可将其定义成一个控件数组来实现。和数组变量一样,控件数组中的每一个控件是该控件数组的一个元素,表示为:在设计时,使用控件数组添加控件所消耗的资源比直接向窗体添加多个相同类型的控件消耗的资源要少。当希望若干控件共享代码时,控件数组也很有用,因为同一个控件数组中的不同控件共享相同的事件过程。控件数组可以在命令按钮组、单选钮组、复选框组、文本框组、标签组等控件中使用。8.5,2建立控件数组可以使用下述三种方法之一建立控件数组(1)为控件起相同的名字(2)复制现在控件(3)设置控件的Index属性为非Null数值例:计算器数字按键
本文标题:vb-数组(基础教学)
链接地址:https://www.777doc.com/doc-4428628 .html