会计考友 发表于 2012-7-31 22:10:12

2011年计算机等级考试二级VB基础教程(21)

  5.3动态数组及声明
  1. 动态数组的建立与声明
  建立动态数组的方法是:利用Dim、Private、Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。语法是:
  ReDim 数组名(下标1[,下标2…])
  其中下标可以是常量,也可以是有了确定值的变量,类型可以省略,若不省略,必须与Dim中的声明语句保持一致。
  例: Dim D() As Single
  Sub Form_Load()
  ……
  ReDim D(4,6)
  ……
  End Sub
  2.注意事项
  (1)在动态数组ReDim语句中的下标可以是常量,也可以是有了确定值的变量。
  (2)在过程中可以多次使用ReDim来改变数组的大小,也可改变数组的维数。
  (3)每次使用ReDim语句都会使原来数组中的值丢失,可以在ReDim语句后加Preserve参数来保留数组中的数据,但使用Preserve只能改变最后一维的大小,前面几维大小不能改变。
  1. 给数组元素赋初值
  (1) 利用循环结构
  例:Dim iA(1 To 10) As Integer
  For i=1 To 10
  A(i)=0
  Next i
  (2) 利用Array函数
  例:Dim a As Variant, b As Variant, i%
  a = Array (1,2,3,4,5)
  b = Array ("abc","def","67")
  For i=0 To Ubound (a)
  Picture1.print a(i);"";
  Next i
  For i=0 To Ubound (b)
  Picture1.print b(i);"";
  Next i
  2.数组的输入
  (1) 通过InputBox函数输入适合输入少量数据。
  例:Dim sB(3,4) As singer
  For i=0 To 3
  For j=0 To 4
  SB(i,j) =InputBox("输入" & i & j & "的值")
  Next j
  Next i
  (2) 通过文本框控件输入
  对大批量的数据输入,采用文本框和函数split()\join()进行处理,效率更高。
  3.数组的赋值
  在VB6.0中可以直接将一个数组的值赋值给另一个数组:
  Dim a(3) as integer, b() as integer
  A(0)=2: A(1)=5: A(2)=-2: A(3)=2
  b=a
  在早期的VB中,这需要用循环语句才可以实现:
  ReDim b(UBound(a))
  For I=0 to UBound(a)
  b(I)=a(I)
  Next i
  注意:
  (1)赋值号两边的数据类型必须一致;
  (2)如果赋值号左边的是一个动态数组,则赋值时系统自动将动态数组ReDim成右边相同大小的数组;
  (3)如果赋值号左边的是一个大小固定的数组,则数组赋值出错。
  4.数组的输出
  用For……Next循环语句输出。
  5.求数组中最大元素和所在下标及各元素之和
  求数组中最大元素及下标,一般假设第一个元素及下标为最大,然后将该数与数组中的其他元素逐一比较,若有比其大的就替换,同时替换下标。
  6.交换数组中各元素
  交换的要求是将数组第一个元素与最后一个交换,第二个与倒数第二个交换,依次类推。
页: [1]
查看完整版本: 2011年计算机等级考试二级VB基础教程(21)