數(shù)組的概念 在VB中,,如果把一組有序的數(shù)或變量作為一個(gè)整體來處理,這一組數(shù)或變量稱為數(shù)組,,數(shù)組中的每一個(gè)數(shù)或變量稱為數(shù)組元素,,每一個(gè)數(shù)組給定一個(gè)名稱,叫做數(shù)組名,,一個(gè)數(shù)組中各個(gè)數(shù)組元素之間的區(qū)別用數(shù)組名的下標(biāo)來表示,,放在數(shù)組名后的圓括號(hào)內(nèi)。數(shù)組中的任意一個(gè)數(shù)組元素都可以存放一個(gè)數(shù)據(jù),,和使用簡(jiǎn)單變量一樣,,所以又稱數(shù)組元素為下標(biāo)變量。 例如:用A來表示一個(gè)班50個(gè)同學(xué)的數(shù)學(xué)成績(jī),,用A(1)表示1號(hào)同學(xué)的成績(jī),;A(2)表示2號(hào)同學(xué)的成績(jī);A(3)表示3號(hào)同學(xué)的成績(jī),;...,;A(50)表示第50號(hào)同學(xué)的成績(jī)。則A為數(shù)組名,,A(1),、A(2)、A(3)等都稱為A數(shù)組的元素,。 數(shù)組也有數(shù)值型和字符串型等類型之分,。在一個(gè)數(shù)組中通常只能放置一種類型的數(shù)據(jù),并且與數(shù)組的類型一致。 此外,,數(shù)組還有靜態(tài)數(shù)組和動(dòng)態(tài)數(shù)組之分,。 注意:在使用數(shù)組前通常都要對(duì)數(shù)組進(jìn)行維數(shù)、類型及大小等內(nèi)容的定義或說明,。 靜態(tài)數(shù)組 一,、靜態(tài)數(shù)組定義 靜態(tài)數(shù)組是在定義數(shù)組時(shí)就指定了數(shù)組維數(shù)的多少及數(shù)組的大小。 1,、語(yǔ)法 Dim redim Static Public 2,、語(yǔ)法說明: (1)Dim:定義窗體模塊數(shù)組。ReDim:在過程中定義,。Static:在過程中定義,。Public:在標(biāo)準(zhǔn)模塊中定義全局?jǐn)?shù)組。 (2)數(shù)組名的命名規(guī)則和變量命名規(guī)則相同,,但是數(shù)組名不能與一般變量同名,。 (3)凡是VB的數(shù)據(jù)類型,在數(shù)組中都可以說明和使用,,當(dāng)“As類型”省略時(shí),,為變體型數(shù)組(Variant)。 (4)下限值和上限值的大小范圍是從-32768至32767,。下限值及關(guān)鍵字TO可以省略,,當(dāng)省略時(shí)下限值為0。使用數(shù)組時(shí),,其下標(biāo)不能超出所定義的范圍,。下標(biāo)可以是負(fù)數(shù)。 (5)維數(shù)可以多達(dá)60維,。 (6)數(shù)組要先定義后使用,。 (7)在一個(gè)過程內(nèi)部,數(shù)組名不能與某個(gè)變量同名,。 (8)用Dim語(yǔ)句定義數(shù)據(jù)組,數(shù)值型元素置0,,字符型元素置空字符串,。 (9)可用類型說明符說明數(shù)組類型。 (10)若在定義時(shí)不指明下標(biāo),,下標(biāo)為0,,這里可用Option Base 1定義下標(biāo)為1。 例子:數(shù)組定義舉例 定義的例子 | 數(shù)組維數(shù) | 數(shù)組元素 | Dim A(5) As Integer '整型 | 一維 | A(0), A(1),A(2), A(3), A(4), A(5) | Dim A(1 To 5) As String '字符型 | A(1),A(2), A(3), A(4), A(5) | Dim B(2,3) As Single '單精度實(shí)型 | 二維 | B(0,0),,B(0,1),,B(0,2),B(0,3) B(1,0),B(1,1),,B(1,2),,B(1,3) B(2,0),B(2,1),,B(2,2),,B(2,3) | Dim B(1 To 2,1 To 3) As Integer '整型 |
| B(1,1),B(1,2),,B(1,3) B(2,1),,B(2,2),B(2,3) | Dim C#(2,3,2) '雙精度實(shí)型 | 三維 | C(0,0,0),,C(0,0,1),,C(0,0,2) C(0,1,0),C(0,1,1),,C(0,1,2) C(0,2,0),,C(0,2,1),C(0,2,2) C(0,3,0),,C(0,3,1),,C(0,3,2) C(1,0,0),C(1,0,1),,C(1,0,2) C(1,1,0),,C(1,1,1),C(1,1,2) C(1,2,0),,C(1,2,1),,C(1,2,2) C(1,3,0),C(1,3,1),,C(1,3,2) C(2,0,0),,C(2,0,1),C(2,0,2) C(2,1,0),,C(2,1,1),,C(2,1,2) C(2,2,0),C(2,2,1),,C(2,2,2) C(2,3,0),,C(2,3,1),C(2,3,2) |
二,、測(cè)試數(shù)組上,、下標(biāo)函數(shù) 1、測(cè)試數(shù)組下標(biāo)函數(shù):Lbound(數(shù)組[,,維]) 2,、測(cè)試數(shù)組上標(biāo)函數(shù):Ubound(數(shù)組[,,維]) 例子: Dim D(3, 5, 7,9) As String Private Sub Form_Click() Print LBound(D, 1), Print UBound(D, 1) Print LBound(D, 2), Print UBound(D, 2) Print LBound(D, 3), Print UBound(D, 3) Print LBound(D, 4), Print UBound(D, 4) End Sub 結(jié)果顯示: 0 3 0 5 0 7 0 9 三、變體型(默認(rèn))數(shù)組 若定義數(shù)組時(shí)不指定類型,,則該數(shù)組是一個(gè)變體型數(shù)組,。其元素的類型可以不同。 即:Dim A(2,3)等同于:Dim A(2,3) As Variant 例子: Dim A(5) Private Sub Form_Click() A(1) = '中華人民共和國(guó)' A(2) = 12345 A(3) = 3456789 A(4) = 987654321 A(5) = 'ABCDE' + 'abcde' Print A(1) Print A(2) Print A(3) Print A(4) Print A(5) End Sub 四,、數(shù)組的操作 數(shù)組的操作包括對(duì)數(shù)組元素進(jìn)行數(shù)值的輸入,、輸出和復(fù)制。 1,、數(shù)組元素的賦值 方法一:用賦值語(yǔ)句對(duì)數(shù)組元素逐個(gè)賦值,。 例子: Dim A(5) Private Sub Form_Click() A(1) = '中華人民共和國(guó)' A(2) = 12345 A(3) = 3456789 A(4) = 987654321 A(5) = 'ABCDE' + 'abcde' Print A(1) Print A(2) Print A(3) Print A(4) Print A(5) End Sub 方法二:用賦值語(yǔ)句結(jié)合For循環(huán)語(yǔ)句。 Dim D(0 To 2, 1 To 3) As Integer Private Sub Form_Click() For i = 0 To 2 For j = 1 To 3 D(i, j) = 100 Print D(i, j) Next j Next i End Sub 方法三:用InputBox函數(shù),。 Dim array1(5) As Variant Private Sub Form_Click() For i = 1 To 5 array1(i) = InputBox('輸入元素的值:') Next i For i = 1 To 5 Print array1(i) Next i End Sub 方法四:對(duì)于 變體型一維數(shù)組,,可應(yīng)用Array()函數(shù)賦值。 格式:Array(值1,,值2,,值3… …) 例子:設(shè)一個(gè)一維變體型數(shù)組ABC,不指定維數(shù),,用Array()函數(shù)賦值,,然后顯示元素值。 Option Base 1 Dim ABC Private Sub Form_Click() ABC = Array('One', 'Two', 'Three', 'Four', 1, 2, 3, 4, 5, 6) For i = 1 To 10 Print ABC(i) Next i End Sub 2,、數(shù)組元素值的輸出 用Print語(yǔ)句顯示輸出,。前面有相應(yīng)的例子。這里討論如何進(jìn)行“格式”輸出,。 例子:設(shè)有一個(gè)單精度實(shí)型三維數(shù)組array2(2,3,4),,其元素值: 11 12 13 14 15 16 17 18 19 20 21 22 31 32 33 34 35 36 37 38 39 40 41 42 源程序如下: Option Base 1 Dim array2(2, 3, 4) As Single Private Sub Form_Click() For i = 1 To 2 For j = 1 To 3 For k = 1 To 4 array2(i, j, k) = InputBox('輸入元素的值:') Next k Next j Next i For i = 1 To 2 For j = 1 To 3 For k = 1 To 4 Print array2(i, j, k); ''; Next k Print Next j Print Next i End Sub 3、For Each … Next語(yǔ)句 該語(yǔ)句是專門用于數(shù)組操作的語(yǔ)句,。 (1)語(yǔ)句格式 For Each 成員 in 數(shù)組 循環(huán)體 [ Exit For] … … Next 成員 (2)說明 利用語(yǔ)句中的成員變量可實(shí)現(xiàn)數(shù)組元素的賦值,、計(jì)算、顯示等操作,。 例子:設(shè)一個(gè)二維數(shù)組array5(3,4),,將其中的第一個(gè)元素賦值100,后面的元素依次再加1賦值 Option Base 1 Dim array5(3, 4) Private Sub Form_Click() n = 100 For Each x In array5 ’x為成員 x = n n = n + 1 Print x Next x End Sub 五,、嵌套數(shù)組 在Visual Basic中,,可以用一個(gè)數(shù)組作為另一個(gè)數(shù)組的元素。在使用時(shí),,可將一個(gè)數(shù)組(嵌套數(shù)組)賦值給另一個(gè)數(shù)組(被嵌套數(shù)組)的元素,,嵌套數(shù)組名后面加空括號(hào),。 要求:嵌套數(shù)組是數(shù)據(jù)類型,,被嵌套數(shù)組不指定類型,。 例子:將數(shù)組a(4)賦給數(shù)組b(2), Dim a(4) As Integer Dim b(2) Private Sub Form_Click() For i = 1 To 4 a(i) = i Next i b(1) = a() b(2) = a() Print b(1)(1) Print b(1)(2) Print b(1)(3) Print b(1)(4) Print Print b(2)(1) Print b(2)(2) Print b(2)(3) Print b(2)(4) End Sub |