Visual Basic程序设计 第七章 数组
数组 一组变量,名字相同,数据类型相同,用下标(索引-Index)来区分。例如: a(0),a(1),…,a(n) 两种类型的数组: 静态数组: 成员数量不变. 动态数组: 成员数量可变。
静态数组 定义(声明): Dim | Private | Public | Static _ 数组名([下界 To ] 上界) [As 数据类型] 缺省的下界为 0 (或 1,如有 Option Base 1 ) 除Variant型外,数组内所有元素有相同类型。 例: Dim a(4) As Integer ‘含5个元素a(0),…,a(4) Dim s(10 To 20) As String ‘含11个元素 Dim b(3,2) ‘2维数组,变体型,4×3个元素
多维数组 Dim a%(3,4) ‘定义了1个二维数组 A(0,0) A(0,1) A(0,2) A(0,3) A(0,4) A(1,0)
数组的使用 数组元素与一般变量一样使用。 注意: 声明后初值为0(数值型)或空(字符型) 声明数组和引用数组元素时,都用圆括号括住下标。 下标值不能超过定义范围 数组与简单变量在同一范围内不能同名。
赋值 每个数组元素都是一个变量,一般应逐个赋值。例如: For i=0 to ubound(a) a(i)=i Next i 使用Array函数。例如: Dim a as variant ‘a是一个变体型变量 a=Array(1,3,6) ‘结果a成为数组,且:a(0)=1,a(1)=3,a(2)=6
与数组有关函数 Lbound(a) 数组a的下界 Ubound(a) 数组a的上界 Array(a1,a2,…) 创建一个数组 Split(A[,c]) A-String, c-Character
使用InputBox()函数输入 逐个输入: For i=0 to 5 a(i)=inputbox(“a(“ & i & “)=“) Next I 一次输入: Dim a as Variant,s as String s= inputbox(“输入数据,用逗号隔开”) a=split(s,”,”) for I=0 to ubound(a) print a(I) next i
动态数组(1) 创建动态数组的步骤: 声明动态数组,给数组附以一个空维数表,例如: Dim DynA ( ) as integer 用ReDim 语句在程序执行过程中给数组指定维数和分配实际的元素个数,例如: ReDim [Preserve] DynA (4 to 12) Preserve 保留数组内容。此时只能改变最后一维上界。
动态数组(2) 值得注意的是:ReDim 语句与 Dim 语句不同,ReDim 语句是一个可执行语句,通过在应用程序中执行ReDim 语句,给维数和元素个数待定的数组指定维数和元素个数。 在程序中还可以使用变量设置动态数组的边界。 例如: ReDim DynA (X, Y)
控件数组 一组控件,名字相同,类相同,用下标(索引-Index)来区分。 例如: Command1(0), Command1(1),…, Command1(n) Font
For Each...Next循环 语法格式: For Each <元素> In <集合> 语句块 For Each...Next 循环是以对象集合中的每一个元素作为重复依据的,如果不知道一个集合有多少元素, For Each...Next 循环非常有用。 语法格式: For Each <元素> In <集合> 语句块 Next <元素>
例:移动窗体中所有控件(Controls) Private Sub form_Click() Dim ob1 As Object For Each ob1 In Controls ob1.Left = ob1.Left + 20 Next ob1 End Sub
数据排序(Sort) 冒泡排序(Buble Sort) 选择排序(Selection Sort) 插入排序(Insertion Sort)
数据查找 顺序查找 折半查找