【正文】
利用數(shù)組可以有效地存儲和處理成批數(shù)據(jù) 本章主要內(nèi)容 數(shù)組的概念 數(shù)組的聲明和應(yīng)用 動態(tài)數(shù)組 For Each...Next循環(huán)語句 控件數(shù)組 程序舉例 第 6章 數(shù) 組 數(shù)組與數(shù)組元素 簡單變量用一個變量名標(biāo)識,不同的變量使用不同的變量名表示。處理成批的數(shù)據(jù)時,必須使用數(shù)組來處理表示 100個學(xué)生的成績,采用簡單變量來表示: s1, s2, s3, … s99 , s100 采用數(shù)組來表示: t(0), t(1), t(2),… t(98), t(99) t(k) (k=0,1,2,…99) 為數(shù)組元素 (或稱 下標(biāo)變量 ),它表示第 k個學(xué)生的成績 , k稱為下標(biāo)變量的 下標(biāo) 數(shù)組的一個主要特點是通過下標(biāo) (相當(dāng)于索引 )來引用數(shù)組元素 數(shù)組的概念 例如計算這 100個學(xué)生成績的平均分,可用: S= 0 For k=0 To 99 S = S + t(k) ‘ 累加分?jǐn)?shù) Next k Aver=S/100 ‘ 求平均分 數(shù)組是一組按一定順序排列的數(shù)據(jù)的集合 例如,學(xué)生成績T= [t(0), t(1), … t(99) ] 是一個數(shù)組 a11 a12 a13 A= a21 a22 a23 a31 a31 a33 也是一個數(shù)組 數(shù)組名 (不能與簡單變量同名 );數(shù)組類型 又稱有序的變量 ——下標(biāo)變量 默認(rèn)情況下,下標(biāo)從 0開始 例如,由一行共 5個元素組成的數(shù)組 x,它的 5個下標(biāo)變 x(0) x(1) x(2) x(3) x(4) 由三行四列元素組成的數(shù)組 y,它的 12個下標(biāo)變量可表 y(0,0) y(0,1) y(0,2) y(0,3) y(1,0) y(1,1) y(1,2) y(1,3) y(2,0) y(2,1) y(2,2) y(2,3) 下標(biāo)變量 與 簡單變量 具有基本相同的性質(zhì)和作用 數(shù)組元素 下標(biāo)用來標(biāo)明該下標(biāo)變量在數(shù)組中的位置 下標(biāo)可以是常數(shù)值,也可以是變量 (包括下標(biāo)變量 )或數(shù)值表達(dá)式 例如: 若 x(2)=10, k=2,則 y(x(2))就是 y(10), y(x(2)+k)就是 y(12) 只要有規(guī)則地改變下標(biāo)值,就可以很方便地使下標(biāo)變量(如 a(i))成為所需要的具體下標(biāo)變量 數(shù)組的維數(shù) 下標(biāo)和數(shù)組的維數(shù) 數(shù)組聲明語句 使用數(shù)組之前,一般需要定義數(shù)組,以便讓系統(tǒng)分配相應(yīng)的存儲單元。格式為: Dim 數(shù)組名 ([下界 1 to]上界 1[,[下界 2 to]上界2?])[As 數(shù)據(jù)類型 ] 功能:指定數(shù)組的維數(shù)、各維的上下界和數(shù)據(jù)類型 舉例: Dim Sum(10) As Long ?下標(biāo)號從 0~ 10,共 11個元素 Dim Ary(1 to 20) As Integer ?下標(biāo)號從 1~ 20,共 20個元素 Dim d(1 to 5,1 to 10) As Double ?定義二維數(shù)組 還可以使用 Public、 Static、 Private等語句來聲明數(shù)組 數(shù)組的聲明和應(yīng)用 設(shè)定下界的方法 Option Base 1 ?設(shè)定下界為 1 Dim Data(10) As Single ?下標(biāo)號從 1~ 10 Array函數(shù) 使用 Array函數(shù)可以為數(shù)組元素賦值 示例 Dim D As Variant ?定義數(shù)組名 (變體類型 ) D = Array(1, 2, 3, 4) 執(zhí)行結(jié)果: 1→D(0) , 2→D(1), 3→D(2), 4→D(3) 例 輸入某小組 5個同學(xué)的成績,計算總分和平均分 (取小數(shù)后一位 ) 本例利用 InputBox函數(shù)來輸入成績,輸入完畢后經(jīng)過計算,再采用 Print直接在窗體上輸出結(jié)果 數(shù)組的應(yīng)用 Private Sub Form_Load() Dim d(5) As Integer Dim i As Integer, total As Single, average As Single Show For i = 1 To 5 39。輸入成績 d(i) = Val(InputBox(請輸入第 amp。 Str(i) amp。 _ 個學(xué)生的成績 , 輸入成績 )) Next i total = 0 For i = 1 To 5 39。計算總分和平均分 total = total + d(i) Next i average = total / 5 Print 總分: amp。 total Print 平均分: amp。 Format(average, .0) End Sub 程序中,先通過 Dim語句為數(shù)組 d定義維數(shù)及下標(biāo)范圍,也即為數(shù)組安排一塊連續(xù)的內(nèi)存存儲區(qū),但這并不意味著內(nèi)存里該數(shù)組已建立了應(yīng)有的內(nèi)容 本例中輸入數(shù)組中的數(shù)據(jù)是由 InputBox函數(shù)來實現(xiàn)的,共循環(huán)了五次,輸入的五個數(shù)依次賦值給下標(biāo)變量 d(1)~ d(5) 建立了數(shù)組中的數(shù)據(jù)后,就可以按要求進行處理 (1)創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性 例 輸入 10名學(xué)生的成績,求出最高分和最低分 功能要求: 通過 Array函數(shù)輸入 10個分?jǐn)?shù);單擊“查找”按鈕 (Command2)后,開始查找最高分和最低分,找到后顯示在標(biāo)簽 Label1上 Option Base 1 Dim score As Variant Private Sub Form_Load() = 單擊“查找”按鈕開始查找最高分和最低分 score = Array(89, 96, 81, 67, 79, 90, 63, 85, 95, 83) End Sub (2) 編寫程序代碼 Private Sub Command1_Click() Dim max As Integer, min As Integer max = score(1) 39。設(shè)定初值 min = score(1) For i = 2 To 10 If max score(i) Then 39。找最高分 max = score(i) End If If min score(i) Then 39。找最低分 min = score(i) End If Next i 39。Chr(13)起換行作用