2011年度計算機等級考試二級VB基礎(chǔ)教程(21)

字號:

2011年度計算機等級考試二級VB基礎(chǔ)教程(21)

    5.3動態(tài)數(shù)組及聲明
    1. 動態(tài)數(shù)組的建立與聲明
    建立動態(tài)數(shù)組的方法是:利用Dim、Private、Public語句聲明括號內(nèi)為空的數(shù)組,然后在過程中用ReDim語句指明該數(shù)組的大小。語法是:
    ReDim 數(shù)組名(下標1[,下標2…]) [As 類型]
    其中下標可以是常量,也可以是有了確定值的變量,類型可以省略,若不省略,必須與Dim中的聲明語句保持一致。
    例: Dim D() As Single
    Sub Form_Load()
    ……
    ReDim D(4,6)
    ……
    End Sub
    2.注意事項
    (1)在動態(tài)數(shù)組ReDim語句中的下標可以是常量,也可以是有了確定值的變量。
    (2)在過程中可以多次使用ReDim來改變數(shù)組的大小,也可改變數(shù)組的維數(shù)。
    (3)每次使用ReDim語句都會使原來數(shù)組中的值丟失,可以在ReDim語句后加Preserve參數(shù)來保留數(shù)組中的數(shù)據(jù),但使用Preserve只能改變最后一維的大小,前面幾維大小不能改變。
    1. 給數(shù)組元素賦初值
    (1) 利用循環(huán)結(jié)構(gòu)
    例:Dim iA(1 To 10) As Integer
    For i=1 To 10
    A(i)=0
    Next i
    (2) 利用Array函數(shù)
    例: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.數(shù)組的輸入
    (1) 通過InputBox函數(shù)輸入適合輸入少量數(shù)據(jù)。
    例: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) 通過文本框控件輸入
    對大批量的數(shù)據(jù)輸入,采用文本框和函數(shù)split()\join()進行處理,效率更高。
    3.數(shù)組的賦值
    在VB6.0中可以直接將一個數(shù)組的值賦值給另一個數(shù)組:
    Dim a(3) as integer, b() as integer
    A(0)=2: A(1)=5: A(2)=-2: A(3)=2
    b=a
    在早期的VB中,這需要用循環(huán)語句才可以實現(xiàn):
    ReDim b(UBound(a))
    For I=0 to UBound(a)
    b(I)=a(I)
    Next i
    注意:(1)賦值號兩邊的數(shù)據(jù)類型必須一致;
    (2)如果賦值號左邊的是一個動態(tài)數(shù)組,則賦值時系統(tǒng)自動將動態(tài)數(shù)組ReDim成右邊相同大小的數(shù)組;
    (3)如果賦值號左邊的是一個大小固定的數(shù)組,則數(shù)組賦值出錯。
    4.數(shù)組的輸出
    用For……Next循環(huán)語句輸出。
    5.求數(shù)組中元素和所在下標及各元素之和
    求數(shù)組中元素及下標,一般假設(shè)第一個元素及下標為,然后將該數(shù)與數(shù)組中的其他元素逐一比較,若有比其大的就替換,同時替換下標。
    6.交換數(shù)組中各元素
    交換的要求是將數(shù)組第一個元素與最后一個交換,第二個與倒數(shù)第二個交換,依次類推。