vb 数组(基础教学)ppt课件.ppt
Vb数组基础,主讲人:陈柳斌,数组是有序的数据的集合。在其它语言中,数组中的所有元素都属于同一个数据类型,而在Visual Basic中,一个数组中的元素可以是相同类型的数据,也可以是不同类型的数据。,8.1 数组的概念,8.2 静态数组与动态数组,8.3 数组的基本操作,8.4 数组的初始化,8.5 控件数组,8.1 数组的概念,数组用于表示一组性质相同的有序的数,这一组数用一个统一的名称来代替,称为数组名。数组中的每一个元素称为数组元素。数组中的每一个元素可以用数组名和下标唯一地表示。数组中下标的个数称为数组的维数。,8.1.1 数组的定义,数组应当先定义后使用。在计算机中,数组占据一块内存区域,数组名是这个区域的名称,区域的每个单元都有自己的地址,该地址用下标表示。定义数组的目的就是通知计算机为其留出所需要的空间。,Visual Basic中,可以用4个语句来定义数组,这4个语句格式相同,但适用范围不一样: Dim ReDim Static Public 以上4个语句都可以用来定义数组,下面以Dim语句为例来说明数组定义的格式,当用其他语句定义数组时,其格式是一样的。,在定义数组时,VB提供了两种格式:1.第一种格式:,定义了一个一维数组,该数组的名字为ArrayDemo,类型为Integer(整型),共有6个数组元素。,定义了一个二维数组,该数组的名字为Test,类型为Integer(整型),共有3行,4列,12个数组元素。,第0行,第1行,第2行,第0列,第1列,第2列,第3列,说明:(1)数组名的命名规则,与简单变量相同(2)数组必须先定义,后使用(3)当用Dim 语句定义数组时,会进行数组元素初始化(4)默认下标下界为0,可通过Option Base语句来设置(5)要注意区分“可以使用的最大下标值”和“元素个数”,1.第二种格式:,在某些情况下,使用To能更好地反映对象的特性。,说明:(1)数组名要做到见名知义。(2)数组名不能与变量名相同。(3)在定义数组时,元素下标必须是常数,不能是变量 或表达式,即使事先给出变量的值也是错误的。(4)可以定义数据后再指定数组的类型。(5)数组的下界都必须小于上界。,8.1.2 默认数组,在Visual Basic中,允许定义默认数组。所谓默认数组,就是数据类型为Variant(变体型)的数组。,相当于,对于默认数组来说,同一个数组中可以存放各种不同的数据。,8.2 静态数组与动态数组,在VB中,根据数组元素的个数能否变化,数组分为静态数组和动态数组。静态数组:数组元素的个数固定不变。动态数组:数组元素的个数在运行时可以改变。 使用动态数组就可以在任何时候改变其大小,并且可以在不需要时清除动态数组所占的存储空间。因此,使用动态数组更加灵活、方便,并有助于高效管理内存。,8.2.1 动态数组的定义,(2)在过程级使用下面的ReDim语句分配数组的实际元素个数。,这里的通常包含变量或表达式,但其中的变量或表达式应有明确的值。,定义动态数组需要分以下两步进行:(1)在模块级或过程级按以下格式定义一个没有下标的数组。,说明1)ReDim语句只能出现在过程中。与Dim语句不同, ReDim语句是一个可执行语句。2)可以用ReDim语句反复改变数组元素及维数的数目。 3)在定义动态数组的两个步骤中,如果用步骤(1)定义了 数组的类型,则不允许用步骤(2)改变类型。4)每次执行ReDim语句时,当前存储在数组中的值会全 部丢失。VB重新对数组元素进行初始化,即将可变类 型数组元素值置为Empty,将数值型数组元素值置为 0,将字符串类型数组元素值置为零长度字符串。,8.2.2 数组的清除和重定义,要清除数组的内容或对数组重新定义,这可以用Erase语句来实现。其格式如下:,注意,在Erase语句中,只给出要刷新的数组名,不带括号和下标。例如:,几点说明:(1)当把Erase语句用于静态数组时,则清空数组元 素的值(2)当把Erase语句用于动态数组时,则删除数组(3)当把Erase语句用于变体数组时,则每个元素重 置为空(4) Erase释放动态数组所使用的内存。,8.3 数组的基本操作,建立一个数组之后,可以对数组或数组元素进行操作。数组的基本操作包括输入、输出及复制,这些操作都是对数组元素进行的。For EachNext语句可用于对数组的操作。,8.3.1 数组元素的输入、输出和复制,1.数组的引用数组的引用通常是指对数组元素的引用,其方法是,在数组后面的括号中指定下标,例如:,要注意区分数组定义和数组元素!,在引用数组时,应注意以下几点:(1)在引用数组元素时,数组名、类型和维数必须与定 义数组时一致。(2)如果建立的是二维或多维数组,则在引用时必须给 出两个或多个下标。(3)引用数组元素时,其下标值应在建立数组时所指定 的范围内。,2.数组元素的输入(1)通过赋值语句来实现数组元素的输入。(2)通过循环语句来实现数组元素的输入。(3)通过InputBox函数输入。,3.数组元素的输出 数组元素的输出可用Print方法来实现。,4.数组元素的复制 单个数组元素可以像简单变量一样从一个数组复制到另一个数组。为了复制整个数组,仍要使用For循环语句。,例8.2从键盘上输入10个整数,用冒泡排序法进行排序。,8.3.2 For EachNext语句,For EachNext循环可以用来对数组中的所有元素重复进行类似的操作,语法格式为:,例如:,例 用For EachNext语句,求1+2+3+100的值。,8.4 数组的初始化,所谓数组的初始化,就是给数组的各元素赋初值。为此,Visual Basic提供了Array函数。利用该函数,可以使数组在程序运行之前初始化,得到初值。,Array 函数用来为数组元素赋值,其格式为:,这里的“数组变量名”是预先定义的数组名,在“数组变量名”之后没有括号。之所以称为“数组变量”,是因为它作为数组使用,但作为变量定义,它既没有维数,也没有上下界。“数组元素值”是需要赋给数组各元素的值,各值之间以逗号分开。,注意,数组变量不能是具体的数据类型,只能是变体(Variant)类型。 一般来说,数组变量可以通过以下方法定义:(1)显式定义为Variant变量。(2)在定义时不指明类型(3)不定义而直接使用。,Array函数只适用于一维数组,即只能对一维数组进行初始化,不能对二维数组或多维数组进行初始化。,8.5 控件数组,控件数组是由一组相同类型的控件组成,这些控件共用一个相同的控件名字,具有相同的属性设置。数组中的每个控件都有一个唯一索引号,其所有元素的Name属性,8.5,1 基本概念,同一控件数组名称相同,各控件(数组元素)的索引(下标)不同,该索引由控件的Index属性决定。控件数组中可用的最大索引值为32767。同一控件数组中的不同控件可以有自己的属性设置值。,应用程序中对于一些类型相同、功能相似的控件,可将其定义成一个控件数组来实现。和数组变量一样,控件数组中的每一个控件是该控件数组的一个元素,表示为:,在设计时,使用控件数组添加控件所消耗的资源比直接向窗体添加多个相同类型的控件消耗的资源要少。 当希望若干控件共享代码时,控件数组也很有用,因为同一个控件数组中的不同控件共享相同的事件过程。 控件数组可以在命令按钮组、单选钮组、复选框组、文本框组、标签组等控件中使用。,8.5,2 建立控件数组,可以使用下述三种方法之一建立控件数组(1)为控件起相同的名字(2)复制现在控件(3)设置控件的Index属性为非Null数值,例:计算器数字按键,