




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第7章章 數(shù)組數(shù)組w 7.1 7.1 一維數(shù)組一維數(shù)組 w 7.2 7.2 多維數(shù)組多維數(shù)組 w 7.3 7.3 動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組 w 7.4 7.4 控件數(shù)組控件數(shù)組 結(jié)束7.1 7.1 一維數(shù)組一維數(shù)組 w 7.1.1 7.1.1 引例引例 w 7.1.2 7.1.2 一維數(shù)組的概念一維數(shù)組的概念 w 7.1.3 7.1.3 一維數(shù)組的聲明和引用一維數(shù)組的聲明和引用 w 7.1.4 7.1.4 一維數(shù)組的使用一維數(shù)組的使用 返回首頁7.1.1 7.1.1 引例引例 (1 1)【例【例7.17.1】求一個(gè)班】求一個(gè)班4040名學(xué)生的平均成績,然后統(tǒng)計(jì)高于平名學(xué)生的平均成績,然后統(tǒng)計(jì)高于平均
2、分的人數(shù)。均分的人數(shù)。 若用簡單變量結(jié)合若用簡單變量結(jié)合For.NextFor.Next語句,求平均成績的程序段語句,求平均成績的程序段如下:如下:P = 0 For I = 1 to 40 S = InputBox(請輸入第請輸入第 & I & 位學(xué)生的成績:位學(xué)生的成績:) P = P + SNext IP = P / 40 但是,若要統(tǒng)計(jì)高于平均分的人數(shù),則無法實(shí)現(xiàn)。但是,若要統(tǒng)計(jì)高于平均分的人數(shù),則無法實(shí)現(xiàn)。 7.1.1 7.1.1 引例引例 (2 2) 可用數(shù)組解決求可用數(shù)組解決求4040人的平均分和高于平均分人數(shù)的問題,人的平均分和高于平均分人數(shù)的問題,完整程序編寫
3、如下:完整程序編寫如下:Private Sub Command1_Click() Dim S(1 To 40) As Integer Dim P!, N%, i% P = 0 For i=1 To 40 S(i)= InputBox(請輸入第請輸入第 & i & 位學(xué)生的成績:位學(xué)生的成績:) P = P + S(i) Next I P = P / 40 N = 0 For i=1 To 40 If S(i) P Then N = N + 1 Next i Print 平均分平均分=; P, 高于平均分的人數(shù)高于平均分的人數(shù)=; NEnd Sub返回首頁返回本節(jié)7.1.2 7.
4、1.2 一維數(shù)組的概念(一維數(shù)組的概念(1 1) 在上例中,使用的在上例中,使用的S(i)S(i)是一個(gè)數(shù)組,因?yàn)橹挥幸皇且粋€(gè)數(shù)組,因?yàn)橹挥幸粋€(gè)下標(biāo),所以又稱一維數(shù)組。一維數(shù)組就是只有一個(gè)下標(biāo),所以又稱一維數(shù)組。一維數(shù)組就是只有一個(gè)下標(biāo)的數(shù)組。實(shí)際上,數(shù)組就是一組具有相同名個(gè)下標(biāo)的數(shù)組。實(shí)際上,數(shù)組就是一組具有相同名字、不同下標(biāo)的變量的集合。需要注意數(shù)組并不是字、不同下標(biāo)的變量的集合。需要注意數(shù)組并不是一種數(shù)據(jù)類型,它是用來存放或表示一組相關(guān)的數(shù)一種數(shù)據(jù)類型,它是用來存放或表示一組相關(guān)的數(shù)據(jù)。據(jù)。 VB VB中的數(shù)組有一維數(shù)組、二維數(shù)組、中的數(shù)組有一維數(shù)組、二維數(shù)組、,最多,最多6060維;二
5、維及二維以上的數(shù)組也稱多維數(shù)組。按聲明維;二維及二維以上的數(shù)組也稱多維數(shù)組。按聲明時(shí)數(shù)組的大小確定與否分為靜態(tài)(定長)數(shù)組和動(dòng)時(shí)數(shù)組的大小確定與否分為靜態(tài)(定長)數(shù)組和動(dòng)態(tài)(可調(diào))數(shù)組兩類。態(tài)(可調(diào))數(shù)組兩類。 7.1.2 7.1.2 一維數(shù)組的概念(一維數(shù)組的概念(2 2)數(shù)組必須先聲明后使用,主要聲明數(shù)組名、類型、數(shù)組必須先聲明后使用,主要聲明數(shù)組名、類型、維數(shù)、數(shù)組大小。按聲明時(shí)下標(biāo)的個(gè)數(shù)確定數(shù)組的維數(shù)、數(shù)組大小。按聲明時(shí)下標(biāo)的個(gè)數(shù)確定數(shù)組的維數(shù)。例維數(shù)。例7.17.1中的語句:中的語句:Dim S(1 To 40) As Integer聲明了一個(gè)一維定長數(shù)組,該數(shù)組的名字為聲明了一個(gè)一
6、維定長數(shù)組,該數(shù)組的名字為C C,類類型為整型;共有型為整型;共有4040個(gè)元素,下標(biāo)范圍為個(gè)元素,下標(biāo)范圍為1 1到到4040;S S數(shù)數(shù)組的各元素是組的各元素是S(1),S(2),S(3),S(1),S(2),S(3),S(40),S(40);S(i)S(i)表表示由下標(biāo)示由下標(biāo)i i值決定是哪一個(gè)元素。值決定是哪一個(gè)元素。返回首頁返回本節(jié)7.1.3 7.1.3 一維數(shù)組的聲明和引用(一維數(shù)組的聲明和引用(1 1) 1. 1. 一維數(shù)組的聲明一維數(shù)組的聲明 聲明一維數(shù)組的格式如下:聲明一維數(shù)組的格式如下: Dim 數(shù)組名數(shù)組名(下標(biāo)下標(biāo)) As 類型類型 其中:其中: 下標(biāo)下標(biāo):必須為常數(shù)
7、,不可以為表達(dá)式或變量。下標(biāo)的形式:必須為常數(shù),不可以為表達(dá)式或變量。下標(biāo)的形式為:為: 下界下界 To To 上界上界,下標(biāo)的上下界不得超過長整型數(shù)據(jù)類,下標(biāo)的上下界不得超過長整型數(shù)據(jù)類型的范圍,且受內(nèi)存大小限制。若省略下界,其默認(rèn)值為型的范圍,且受內(nèi)存大小限制。若省略下界,其默認(rèn)值為0 0。一維數(shù)組的元素(分量)個(gè)數(shù)為:一維數(shù)組的元素(分量)個(gè)數(shù)為:上界上界下界下界+1+1。 As As 類型類型:指定數(shù)組的數(shù)據(jù)類型(數(shù)組中各元素的數(shù)據(jù)類:指定數(shù)組的數(shù)據(jù)類型(數(shù)組中各元素的數(shù)據(jù)類型)。如果省略,即不明確給出數(shù)組的類型,則數(shù)組與以前型)。如果省略,即不明確給出數(shù)組的類型,則數(shù)組與以前所述簡單
8、變量的聲明一樣,默認(rèn)為變體型數(shù)組。所述簡單變量的聲明一樣,默認(rèn)為變體型數(shù)組。 7.1.3 7.1.3 一維數(shù)組的聲明和引用(一維數(shù)組的聲明和引用(2 2) 用用DimDim語句聲明數(shù)組,實(shí)際上就是為系統(tǒng)提供數(shù)語句聲明數(shù)組,實(shí)際上就是為系統(tǒng)提供數(shù)組名、數(shù)組類型、數(shù)組的維數(shù)和各維大小等相關(guān)信組名、數(shù)組類型、數(shù)組的維數(shù)和各維大小等相關(guān)信息。息。 例如:例如: Dim W(100) As Integer 聲明了聲明了W W為數(shù)組名,整型,一維數(shù)組,有為數(shù)組名,整型,一維數(shù)組,有101101個(gè)元個(gè)元素;下標(biāo)的范圍素;下標(biāo)的范圍0 0100100。若在程序中使用。若在程序中使用W(101)W(101),則
9、系統(tǒng)會(huì)顯示錯(cuò)誤信息則系統(tǒng)會(huì)顯示錯(cuò)誤信息“下標(biāo)越界下標(biāo)越界”。 7.1.3 7.1.3 一維數(shù)組的聲明和引用(一維數(shù)組的聲明和引用(3 3) 又如:又如: Dim T(-5 To 8) As String * 6 聲明了聲明了T T為數(shù)組名,字符串類型,一維數(shù)組,有為數(shù)組名,字符串類型,一維數(shù)組,有1414個(gè)元素;下標(biāo)的范圍個(gè)元素;下標(biāo)的范圍-5-58 8,每個(gè)元素最多存放,每個(gè)元素最多存放6 6個(gè)字符。個(gè)字符。 注意,以下數(shù)組聲明是錯(cuò)誤的:注意,以下數(shù)組聲明是錯(cuò)誤的: M = 50 Dim X(M) As Single 因?yàn)閿?shù)組聲明中的下標(biāo)不能是變量,只能是常因?yàn)閿?shù)組聲明中的下標(biāo)不能是變量,只
10、能是常量。量。7.1.3 7.1.3 一維數(shù)組的聲明和引用(一維數(shù)組的聲明和引用(4 4) 2. 2. 一維數(shù)組的引用一維數(shù)組的引用 在對(duì)數(shù)組操作時(shí),引用一維數(shù)組元素的形式是:在對(duì)數(shù)組操作時(shí),引用一維數(shù)組元素的形式是: 數(shù)組名(下標(biāo))數(shù)組名(下標(biāo)) 注意:下標(biāo)不能超出數(shù)組聲明時(shí)的上、下界范圍。下標(biāo)注意:下標(biāo)不能超出數(shù)組聲明時(shí)的上、下界范圍。下標(biāo)可以是整型的常數(shù)、變量、表達(dá)式,甚至又是一個(gè)數(shù)組元可以是整型的常數(shù)、變量、表達(dá)式,甚至又是一個(gè)數(shù)組元素。素。 如如C(8)C(8)、C(3+13)C(3+13)、C(i)C(i) 都是正確的引用形式。都是正確的引用形式。 一維數(shù)組元素的使用規(guī)則與同類型的
11、簡單變量相同。一維數(shù)組元素的使用規(guī)則與同類型的簡單變量相同。 在通常情況下,數(shù)組中的各元素類型必須相同,但若數(shù)在通常情況下,數(shù)組中的各元素類型必須相同,但若數(shù)組類型為組類型為VariantVariant(變體)時(shí),可存放不同類型的數(shù)據(jù),但變體)時(shí),可存放不同類型的數(shù)據(jù),但各元素的基本類型仍為變體型。各元素的基本類型仍為變體型。 返回首頁返回本節(jié)7.1.4 7.1.4 一維數(shù)組的使用(一維數(shù)組的使用(1 1) 編寫程序時(shí),一維數(shù)組通常與編寫程序時(shí),一維數(shù)組通常與ForFor循環(huán)結(jié)合使用,循環(huán)結(jié)合使用,F(xiàn)orFor語句中的循環(huán)變量作為數(shù)組元素的下標(biāo),通過語句中的循環(huán)變量作為數(shù)組元素的下標(biāo),通過循環(huán)
12、變量的不斷改變,達(dá)到對(duì)每個(gè)數(shù)組元素依次循環(huán)變量的不斷改變,達(dá)到對(duì)每個(gè)數(shù)組元素依次進(jìn)行處理的目的。進(jìn)行處理的目的。 【例【例7.27.2】隨機(jī)產(chǎn)生】隨機(jī)產(chǎn)生1010個(gè)兩位數(shù)的隨機(jī)整數(shù),賦個(gè)兩位數(shù)的隨機(jī)整數(shù),賦給給a a數(shù)組,然后求各元素之和、平均值,將比平均數(shù)組,然后求各元素之和、平均值,將比平均值小的各元素的值打印出來,最后找出數(shù)組中的值小的各元素的值打印出來,最后找出數(shù)組中的最小值及其元素下標(biāo)并打印。最小值及其元素下標(biāo)并打印。 編寫代碼如下:編寫代碼如下:Private Sub Form_Click() Dim S, P, T, B, I, a(9) As Integer Randomize
13、7.1.4 7.1.4 一維數(shù)組的使用(一維數(shù)組的使用(2 2)隨機(jī)產(chǎn)生隨機(jī)產(chǎn)生20個(gè)兩位數(shù)的隨機(jī)整數(shù)賦給個(gè)兩位數(shù)的隨機(jī)整數(shù)賦給a數(shù)組數(shù)組 For I = 0 To 9 a(I) = Int(Rnd * 90 + 10) Print a(I); Next I Print S = 0 For I = 0 To 9 S = S + a(I) 求累加和求累加和 Next I P = S / 10 求平均值求平均值 Print 各元素累加和各元素累加和=; S, 平均值平均值=; P Print 比平均值小的各元素的值依次為比平均值小的各元素的值依次為:;7.1.4 7.1.4 一維數(shù)組的使用(一維數(shù)
14、組的使用(3 3) For I = 1 To 9 If a(I) a(I) Then T = a(I): B = I Next I Print 最小值為最小值為:; T, 其元素下標(biāo)為其元素下標(biāo)為:; BEnd Sub程序運(yùn)行時(shí)單擊窗體,顯示程序運(yùn)行時(shí)單擊窗體,顯示如圖如圖7.1所示的界面。所示的界面。 7.1.4 7.1.4 一維數(shù)組的使用(一維數(shù)組的使用(4 4) 【例例7.37.3】設(shè)某數(shù)組中有】設(shè)某數(shù)組中有1010個(gè)數(shù),用選擇法按遞個(gè)數(shù),用選擇法按遞增順序排序。增順序排序。 算法分析算法分析:選擇法排序是最為簡單且易理解的算:選擇法排序是最為簡單且易理解的算法。假定有法。假定有n n個(gè)
15、數(shù)的序列,要求按遞增的次序排序,個(gè)數(shù)的序列,要求按遞增的次序排序,算法步驟是:算法步驟是:(1 1)通過循環(huán)從)通過循環(huán)從n n個(gè)數(shù)中選出最小數(shù)的下標(biāo),出個(gè)數(shù)中選出最小數(shù)的下標(biāo),出循環(huán)后最小數(shù)與第循環(huán)后最小數(shù)與第1 1個(gè)數(shù)交換位置。個(gè)數(shù)交換位置。(2 2)除第)除第1 1個(gè)數(shù)外,其余個(gè)數(shù)外,其余n-1n-1個(gè)數(shù)再按步驟(個(gè)數(shù)再按步驟(1 1)的方法選出次小的數(shù),與第的方法選出次小的數(shù),與第2 2個(gè)數(shù)交換位置。個(gè)數(shù)交換位置。(3 3)重復(fù)步驟()重復(fù)步驟(1 1)n-1n-1遍,最后構(gòu)成遞增序列。遍,最后構(gòu)成遞增序列。7.1.4 7.1.4 一維數(shù)組的使用(一維數(shù)組的使用(5 5) 設(shè)計(jì)方法:在
16、窗體上添加一個(gè)命令按鈕,設(shè)設(shè)計(jì)方法:在窗體上添加一個(gè)命令按鈕,設(shè)Caption為為“選擇法排序選擇法排序”,用來觸發(fā)排序過程。,用來觸發(fā)排序過程。為簡化操作,數(shù)組中的為簡化操作,數(shù)組中的10個(gè)數(shù)據(jù)為個(gè)數(shù)據(jù)為099的整數(shù),的整數(shù),用隨機(jī)函數(shù)來產(chǎn)生。運(yùn)行結(jié)果如圖用隨機(jī)函數(shù)來產(chǎn)生。運(yùn)行結(jié)果如圖7.27.2,代碼詳見,代碼詳見教材。另外,數(shù)組排序還可使用冒泡法、插入法教材。另外,數(shù)組排序還可使用冒泡法、插入法等方法。等方法。 圖圖7.2 例例7.3運(yùn)行結(jié)果運(yùn)行結(jié)果 返回首頁返回本節(jié)7.2 7.2 多維數(shù)組多維數(shù)組 w 7.2.1 7.2.1 多維數(shù)組的聲明多維數(shù)組的聲明 w 7.2.2 7.2.2 多
17、維數(shù)組的使用多維數(shù)組的使用 返回首頁7.2.1 7.2.1 多維數(shù)組的聲明多維數(shù)組的聲明 (1 1) 多維數(shù)組聲明形式如下:多維數(shù)組聲明形式如下: Dim 數(shù)組名數(shù)組名(下標(biāo)下標(biāo)1,下標(biāo)下標(biāo)2,下標(biāo)下標(biāo)3 )As 類型類型 其中,下標(biāo)有兩個(gè)以上的數(shù)字,它決定了數(shù)組的維數(shù)為多其中,下標(biāo)有兩個(gè)以上的數(shù)字,它決定了數(shù)組的維數(shù)為多維。維。 每一維的大小為:每一維的大小為:上界上界下界下界+1+1;數(shù)組的大小為各維大??;數(shù)組的大小為各維大小的乘積。的乘積。 例如:例如: Dim K(0 To 2, 0 To 3) As Long 或或 Dim K(2, 3) As Long 都是聲明了長整型的二維數(shù)組都
18、是聲明了長整型的二維數(shù)組K,第一維下標(biāo)范圍為第一維下標(biāo)范圍為02;第二維下標(biāo)范圍為第二維下標(biāo)范圍為03,占據(jù),占據(jù)34個(gè)長整型變量的存儲(chǔ)空間。個(gè)長整型變量的存儲(chǔ)空間。 7.2.1 7.2.1 多維數(shù)組的聲明多維數(shù)組的聲明 (2 2)說明:說明:(1 1)在默認(rèn)情況下,聲明的靜態(tài)數(shù)組其下標(biāo)下界從)在默認(rèn)情況下,聲明的靜態(tài)數(shù)組其下標(biāo)下界從0 0開始,開始,為了便于使用,在為了便于使用,在VBVB中的窗體級(jí)或標(biāo)準(zhǔn)模塊級(jí)中可用中的窗體級(jí)或標(biāo)準(zhǔn)模塊級(jí)中可用Option Base nOption Base n 語句重新設(shè)定數(shù)組的默認(rèn)下界。例如:語句重新設(shè)定數(shù)組的默認(rèn)下界。例如: Option Base 1
19、 設(shè)定數(shù)組下標(biāo)默認(rèn)下界為設(shè)定數(shù)組下標(biāo)默認(rèn)下界為1(2 2)在數(shù)組聲明中的下標(biāo)關(guān)系到每一維的大小,是數(shù)組說)在數(shù)組聲明中的下標(biāo)關(guān)系到每一維的大小,是數(shù)組說明符,說明了數(shù)組的整體;而在程序其他地方出現(xiàn)的下標(biāo)明符,說明了數(shù)組的整體;而在程序其他地方出現(xiàn)的下標(biāo)是為了確定數(shù)組中的一個(gè)元素,也就是用來表示數(shù)組中的是為了確定數(shù)組中的一個(gè)元素,也就是用來表示數(shù)組中的一個(gè)元素。兩者寫法相同,但意義不同。例如:一個(gè)元素。兩者寫法相同,但意義不同。例如:Dim R(10) As Long 聲明了聲明了R數(shù)組,有數(shù)組,有11個(gè)元素個(gè)元素R(10)=100 對(duì)對(duì)R(10)這個(gè)數(shù)組元素賦值這個(gè)數(shù)組元素賦值7.2.1 7.
20、2.1 多維數(shù)組的聲明多維數(shù)組的聲明 (3 3)(3 3)在數(shù)組聲明時(shí)的下標(biāo)只能是常數(shù),而在其他地方出現(xiàn))在數(shù)組聲明時(shí)的下標(biāo)只能是常數(shù),而在其他地方出現(xiàn)的數(shù)組元素的下標(biāo)可以是變量,注意加以區(qū)分。例如:的數(shù)組元素的下標(biāo)可以是變量,注意加以區(qū)分。例如:Dim x(n) As Integer 出錯(cuò)出錯(cuò)n是變量,運(yùn)行時(shí)會(huì)出現(xiàn)是變量,運(yùn)行時(shí)會(huì)出現(xiàn)“要求常數(shù)表達(dá)式要求常數(shù)表達(dá)式”的提示信息的提示信息x(n) = 10 數(shù)組元素的下標(biāo)可以是變量數(shù)組元素的下標(biāo)可以是變量在對(duì)多維數(shù)組操作時(shí),引用多維數(shù)組元素的形式是:在對(duì)多維數(shù)組操作時(shí),引用多維數(shù)組元素的形式是:數(shù)組名(下標(biāo)數(shù)組名(下標(biāo)1,下標(biāo),下標(biāo)2 ,下標(biāo),
21、下標(biāo)3 )有關(guān)規(guī)則和方法與一維數(shù)組相同。有關(guān)規(guī)則和方法與一維數(shù)組相同。(4)盡管)盡管VB允許聲明多達(dá)允許聲明多達(dá)60維的數(shù)組,但是隨著數(shù)組維維的數(shù)組,但是隨著數(shù)組維數(shù)的增加,數(shù)組所占內(nèi)存會(huì)大幅度增加,甚至造成內(nèi)存溢數(shù)的增加,數(shù)組所占內(nèi)存會(huì)大幅度增加,甚至造成內(nèi)存溢出,因此應(yīng)慎用多維數(shù)組。出,因此應(yīng)慎用多維數(shù)組。返回首頁返回本節(jié)7.2.2 7.2.2 多維數(shù)組的使用多維數(shù)組的使用(1 1) 在利用多維數(shù)組編寫程序時(shí),多維數(shù)組通常與在利用多維數(shù)組編寫程序時(shí),多維數(shù)組通常與多重多重ForFor循環(huán)結(jié)合使用,每重循環(huán)結(jié)合使用,每重ForFor語句中的循環(huán)變語句中的循環(huán)變量分別作為數(shù)組元素的不同下標(biāo),
22、通過循環(huán)變量量分別作為數(shù)組元素的不同下標(biāo),通過循環(huán)變量的不斷改變,達(dá)到對(duì)多維數(shù)組中每個(gè)數(shù)組元素依的不斷改變,達(dá)到對(duì)多維數(shù)組中每個(gè)數(shù)組元素依次進(jìn)行處理的目的。次進(jìn)行處理的目的。 在多維數(shù)組中,使用最多的是二維數(shù)組。編寫在多維數(shù)組中,使用最多的是二維數(shù)組。編寫程序時(shí),二維數(shù)組通常與二重程序時(shí),二維數(shù)組通常與二重For循環(huán)結(jié)合使用,循環(huán)結(jié)合使用,每重每重For語句中的循環(huán)變量分別作為數(shù)組元素的兩語句中的循環(huán)變量分別作為數(shù)組元素的兩個(gè)下標(biāo)。個(gè)下標(biāo)。 7.2.2 7.2.2 多維數(shù)組的使用多維數(shù)組的使用(2 2) 例如,聲明一個(gè)二維數(shù)組,用于存放例如,聲明一個(gè)二維數(shù)組,用于存放2020名學(xué)生的名學(xué)生的4
23、 4門課程門課程成績:成績: Dim S(1 To 20, 1 To 4) As Integer 若數(shù)組中已有成績,下面的程序段可顯示若數(shù)組中已有成績,下面的程序段可顯示2020名學(xué)生的名學(xué)生的4 4門門課成績:課成績:For i = 1 To 20 共顯示共顯示20行行 For j = 1 To 4 每行顯示每行顯示4個(gè)成績個(gè)成績 Print S(i, j); Next j PrintNext i7.2.2 7.2.2 多維數(shù)組的使用多維數(shù)組的使用(3 3)二維數(shù)組常用于矩陣操作,下面的示例說明了它的應(yīng)用。二維數(shù)組常用于矩陣操作,下面的示例說明了它的應(yīng)用。【例【例7.47.4】利用隨機(jī)函數(shù)隨
24、機(jī)產(chǎn)生兩個(gè)兩位數(shù)的】利用隨機(jī)函數(shù)隨機(jī)產(chǎn)生兩個(gè)兩位數(shù)的5 55 5矩陣并矩陣并作運(yùn)算。作運(yùn)算。 要求如下:要求如下:(1 1)將兩個(gè)矩陣相加,結(jié)果放入矩陣)將兩個(gè)矩陣相加,結(jié)果放入矩陣C C中;中;(2 2)統(tǒng)計(jì)矩陣)統(tǒng)計(jì)矩陣C C中最大值和下標(biāo);中最大值和下標(biāo);(3 3)求矩陣)求矩陣A A兩條對(duì)角線元素之和;兩條對(duì)角線元素之和;(4 4)將矩陣)將矩陣A A按列的次序把各元素放入一維數(shù)組按列的次序把各元素放入一維數(shù)組D D中。中。7.2.2 7.2.2 多維數(shù)組的使用多維數(shù)組的使用(4 4) 設(shè)計(jì)方法:在窗體上添加設(shè)計(jì)方法:在窗體上添加4個(gè)命令按鈕,用來觸發(fā)有關(guān)個(gè)命令按鈕,用來觸發(fā)有關(guān)運(yùn)算的
25、事件過程;運(yùn)算的事件過程;3個(gè)圖片框,分別用來顯示個(gè)圖片框,分別用來顯示A矩陣、矩陣、B矩矩陣及各種運(yùn)算結(jié)果。界面設(shè)計(jì)見圖陣及各種運(yùn)算結(jié)果。界面設(shè)計(jì)見圖7.3,代碼詳見教材,代碼詳見教材。 圖圖7.3 例例7.4運(yùn)行結(jié)果運(yùn)行結(jié)果 返回首頁返回本節(jié)7.3 7.3 動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組 (1 1) 動(dòng)態(tài)數(shù)組也叫可調(diào)數(shù)組或可變長數(shù)組,指在聲動(dòng)態(tài)數(shù)組也叫可調(diào)數(shù)組或可變長數(shù)組,指在聲明數(shù)組時(shí)未給出數(shù)組的大?。ㄊ÷岳ㄌ?hào)中的下明數(shù)組時(shí)未給出數(shù)組的大?。ㄊ÷岳ㄌ?hào)中的下標(biāo)),當(dāng)要使用它時(shí),隨時(shí)用標(biāo)),當(dāng)要使用它時(shí),隨時(shí)用ReDimReDim語句重新聲明語句重新聲明數(shù)組大小。使用動(dòng)態(tài)數(shù)組的優(yōu)點(diǎn)是根據(jù)用戶需要,數(shù)組大小
26、。使用動(dòng)態(tài)數(shù)組的優(yōu)點(diǎn)是根據(jù)用戶需要,有效地利用存儲(chǔ)空間,它是在程序執(zhí)行到有效地利用存儲(chǔ)空間,它是在程序執(zhí)行到ReDimReDim語語句時(shí)分配存儲(chǔ)空間,而靜態(tài)數(shù)組是在程序編譯時(shí)句時(shí)分配存儲(chǔ)空間,而靜態(tài)數(shù)組是在程序編譯時(shí)分配存儲(chǔ)空間的。分配存儲(chǔ)空間的。 建立動(dòng)態(tài)數(shù)組的方法是,使用建立動(dòng)態(tài)數(shù)組的方法是,使用DimDim、PrivatePrivate或或PublicPublic語句聲明語句聲明括號(hào)內(nèi)為空括號(hào)內(nèi)為空的數(shù)組,然后在后的數(shù)組,然后在后續(xù)的代碼中用續(xù)的代碼中用ReDimReDim語句指明該數(shù)組的大小。語句指明該數(shù)組的大小。 7.3 7.3 動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組 (2 2)ReDimReDim語句形
27、式如下:語句形式如下:ReDim 數(shù)組名(下標(biāo)數(shù)組名(下標(biāo),下標(biāo),下標(biāo))As 類型類型其中:下標(biāo)可以是常量,也可以是有了確定值的變量(這其中:下標(biāo)可以是常量,也可以是有了確定值的變量(這一點(diǎn)與靜態(tài)數(shù)組不同)。類型可以省略,若不省略,必須一點(diǎn)與靜態(tài)數(shù)組不同)。類型可以省略,若不省略,必須與與DimDim聲明語句保持一致。聲明語句保持一致。說明:說明:(1 1)在靜態(tài)(定長)數(shù)組聲明中的下標(biāo)只能是常量,在動(dòng))在靜態(tài)(定長)數(shù)組聲明中的下標(biāo)只能是常量,在動(dòng)態(tài)數(shù)組態(tài)數(shù)組ReDimReDim語句中的下標(biāo)可以是常量,也可以是有了確定語句中的下標(biāo)可以是常量,也可以是有了確定值的變量。值的變量。(2 2)在過
28、程中可多次使用)在過程中可多次使用ReDimReDim來改變數(shù)組的大小,也可來改變數(shù)組的大小,也可改變數(shù)組的維數(shù)。改變數(shù)組的維數(shù)。 7.3 7.3 動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組 (3 3)(3 3)每次使用)每次使用ReDimReDim語句都會(huì)使原來數(shù)組中的值語句都會(huì)使原來數(shù)組中的值丟失,可以在丟失,可以在ReDimReDim關(guān)鍵字后加關(guān)鍵字后加PreservePreserve參數(shù)用來參數(shù)用來保留數(shù)組中的數(shù)據(jù),但使用保留數(shù)組中的數(shù)據(jù),但使用PreservePreserve只能改變最只能改變最后一維的大小,前面幾維大小不能改變。后一維的大小,前面幾維大小不能改變。(4 4)使用)使用UBoundUBound
29、和和LBoundLBound函數(shù)可以獲取數(shù)組的上函數(shù)可以獲取數(shù)組的上下界,并據(jù)以確定數(shù)組的大小。格式如下:下界,并據(jù)以確定數(shù)組的大小。格式如下:UBound(數(shù)組名數(shù)組名, 維維) 取上界取上界LBound(數(shù)組名數(shù)組名, 維維) 取下界取下界若省略若省略“維維”則默認(rèn)為第一維。則默認(rèn)為第一維。 7.3 7.3 動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組 (4 4)【例【例7.57.5】對(duì)例】對(duì)例7.17.1稍作改稍作改進(jìn)。學(xué)生的人數(shù)用輸入對(duì)進(jìn)。學(xué)生的人數(shù)用輸入對(duì)話框輸入,學(xué)生的成績用話框輸入,學(xué)生的成績用隨機(jī)函數(shù)產(chǎn)生,計(jì)算的平隨機(jī)函數(shù)產(chǎn)生,計(jì)算的平均分和高于平均分的人數(shù)均分和高于平均分的人數(shù)放在該數(shù)組的最后。放在該數(shù)
30、組的最后。程序運(yùn)行后當(dāng)輸入程序運(yùn)行后當(dāng)輸入n n的值為的值為1010時(shí),顯示結(jié)果如圖時(shí),顯示結(jié)果如圖7.47.4,代碼詳見教材。代碼詳見教材。 圖圖7.4 例例7.5運(yùn)行結(jié)果運(yùn)行結(jié)果 返回首頁7.4 7.4 控件數(shù)組控件數(shù)組w 7.4.1 7.4.1 控件數(shù)組的概念控件數(shù)組的概念 w 7.4.2 7.4.2 控件數(shù)組的建立和使用控件數(shù)組的建立和使用返回首頁7.4.1 7.4.1 控件數(shù)組的概念控件數(shù)組的概念 (1 1) 控件數(shù)組是由一組相同類型的控件組成。它們控件數(shù)組是由一組相同類型的控件組成。它們共用一個(gè)控件名,絕大部分屬性也相同,但至少共用一個(gè)控件名,絕大部分屬性也相同,但至少有一個(gè)屬性不
31、同,即有一個(gè)屬性不同,即IndexIndex屬性的值不同。當(dāng)建立屬性的值不同。當(dāng)建立控件數(shù)組時(shí),系統(tǒng)給每個(gè)元素賦一個(gè)唯一的索引控件數(shù)組時(shí),系統(tǒng)給每個(gè)元素賦一個(gè)唯一的索引號(hào)號(hào)( (Index)Index),通過屬性窗口的通過屬性窗口的IndexIndex屬性,可以知屬性,可以知道該控件的下標(biāo)是多少,第道該控件的下標(biāo)是多少,第1 1個(gè)元素下標(biāo)是個(gè)元素下標(biāo)是0 0。例。例如,如,CmdNum(8)CmdNum(8)表示名為表示名為CmdNumCmdNum的控件數(shù)組的第的控件數(shù)組的第9 9個(gè)元素。個(gè)元素。7.4.1 7.4.1 控件數(shù)組的概念控件數(shù)組的概念 (2 2) 控件數(shù)組最大的特點(diǎn)是:控件數(shù)組各
32、元素共享控件數(shù)組最大的特點(diǎn)是:控件數(shù)組各元素共享同樣的事件過程,所以適用于若干個(gè)控件執(zhí)行的同樣的事件過程,所以適用于若干個(gè)控件執(zhí)行的操作相似的場合。例如,控件數(shù)組操作相似的場合。例如,控件數(shù)組CmdNumCmdNum有有1010個(gè)個(gè)命令按鈕,則不管單擊哪個(gè)命令按鈕,就會(huì)調(diào)用命令按鈕,則不管單擊哪個(gè)命令按鈕,就會(huì)調(diào)用同一個(gè)單擊事件過程。為了區(qū)分是控件數(shù)組中的同一個(gè)單擊事件過程。為了區(qū)分是控件數(shù)組中的哪個(gè)元素觸發(fā)了事件,在程序運(yùn)行時(shí),通過系統(tǒng)哪個(gè)元素觸發(fā)了事件,在程序運(yùn)行時(shí),通過系統(tǒng)傳送給過程的索引值(即下標(biāo)值)來確定。傳送給過程的索引值(即下標(biāo)值)來確定。 一個(gè)控件數(shù)組至少包含一個(gè)元素,最多可達(dá)
33、一個(gè)控件數(shù)組至少包含一個(gè)元素,最多可達(dá)3276832768個(gè)。個(gè)。7.4.1 7.4.1 控件數(shù)組的概念控件數(shù)組的概念 (3 3)控件數(shù)組事件過程的結(jié)構(gòu)如下(以控件數(shù)組控件數(shù)組事件過程的結(jié)構(gòu)如下(以控件數(shù)組CmdNumCmdNum單擊事件為例):單擊事件為例):比普通控件多了比普通控件多了Index參數(shù)參數(shù)Private Sub CmdNum_Click(Index As Integer) 語句塊語句塊End Sub返回首頁返回本節(jié)7.4.2 7.4.2 控件數(shù)組的建立和使用(控件數(shù)組的建立和使用(1 1)1. 1. 在設(shè)計(jì)時(shí)建立在設(shè)計(jì)時(shí)建立(1 1)窗體上畫出某控件,可進(jìn)行控件名的屬性設(shè)置,
34、這是)窗體上畫出某控件,可進(jìn)行控件名的屬性設(shè)置,這是建立的第一個(gè)元素。建立的第一個(gè)元素。(2 2)選中該控件,進(jìn)行)選中該控件,進(jìn)行“復(fù)制復(fù)制”和和“粘貼粘貼”操作,系統(tǒng)會(huì)操作,系統(tǒng)會(huì)提示如圖提示如圖7.57.5所示的對(duì)話框。單擊【是】按鈕后,即可建立所示的對(duì)話框。單擊【是】按鈕后,即可建立控件數(shù)組元素??丶?shù)組元素。(3 3)進(jìn)行事件過程的編程。)進(jìn)行事件過程的編程。圖圖7.5 創(chuàng)建控件數(shù)組創(chuàng)建控件數(shù)組 7.4.2 7.4.2 控件數(shù)組的建立和使用(控件數(shù)組的建立和使用(2 2)【例【例7.67.6】建立含有】建立含有6 6個(gè)命令按個(gè)命令按鈕的控件數(shù)組,當(dāng)單擊其中的鈕的控件數(shù)組,當(dāng)單擊其中的
35、命令按鈕時(shí),分別顯示不同的命令按鈕時(shí),分別顯示不同的圖形或結(jié)束操作。運(yùn)行界面見圖形或結(jié)束操作。運(yùn)行界面見圖圖7.67.6。 設(shè)計(jì)方法:先在窗體上建立設(shè)計(jì)方法:先在窗體上建立一個(gè)命令按鈕控件數(shù)組(有六一個(gè)命令按鈕控件數(shù)組(有六個(gè)數(shù)組元素),然后在窗體上個(gè)數(shù)組元素),然后在窗體上添加一個(gè)圖片框添加一個(gè)圖片框。屬性設(shè)置及屬性設(shè)置及代碼見教材。代碼見教材。圖圖7.6 例例7.6運(yùn)行結(jié)果運(yùn)行結(jié)果 7.4.2 7.4.2 控件數(shù)組的建立和使用(控件數(shù)組的建立和使用(3 3)2. 2. 運(yùn)行時(shí)添加控件數(shù)組元素運(yùn)行時(shí)添加控件數(shù)組元素 (1 1)先在窗體上畫出某控件,設(shè)置該控件的)先在窗體上畫出某控件,設(shè)置該控
36、件的IndexIndex值為值為0 0,表示該控件為數(shù)組;也可進(jìn)行控件名的屬性設(shè)置,這是建表示該控件為數(shù)組;也可進(jìn)行控件名的屬性設(shè)置,這是建立的第一個(gè)元素。立的第一個(gè)元素。(2 2)在程序代碼中通過)在程序代碼中通過LoadLoad語句添加其余的若干個(gè)元素,語句添加其余的若干個(gè)元素,也可以通過也可以通過UnloadUnload語句刪除某個(gè)添加的元素。語句刪除某個(gè)添加的元素。(3 3)對(duì)每個(gè)新添加的控件數(shù)組元素通過設(shè)置)對(duì)每個(gè)新添加的控件數(shù)組元素通過設(shè)置LeftLeft和和TopTop屬屬性,確定其在窗體上的位置,并將性,確定其在窗體上的位置,并將VisibleVisible屬性設(shè)置為屬性設(shè)置為TrueTrue。 7.4.2 7.4.2 控件數(shù)組的建立和使用(控件數(shù)組的建立和使用(4 4)【例【例7.77.7】在窗體上建立一個(gè)標(biāo)簽控件數(shù)組,每個(gè)標(biāo)簽顯示】在窗體上建立一個(gè)標(biāo)簽控件數(shù)組,每個(gè)標(biāo)簽顯示不同顏色。設(shè)計(jì)界面見不同顏色。設(shè)計(jì)界面見126126頁圖頁圖7.77.7,運(yùn)行界面見圖,運(yùn)行界面見圖7.87.8。 要求:要求:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品保鮮再生塑料膜行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書
- 人造板品牌文化體驗(yàn)活動(dòng)創(chuàng)新創(chuàng)業(yè)項(xiàng)目商業(yè)計(jì)劃書
- XX幼兒園線上線下教學(xué)工作銜接計(jì)劃
- 在線少兒英語培訓(xùn)AI應(yīng)用行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書
- 休閑觀光活動(dòng)在線平臺(tái)行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書
- 八年級(jí)物理知識(shí)整合復(fù)習(xí)計(jì)劃
- 小學(xué)合唱教學(xué)數(shù)字化轉(zhuǎn)型計(jì)劃
- 2025三年級(jí)語文寫作訓(xùn)練計(jì)劃
- 復(fù)合地基路基質(zhì)量保證措施
- 女職工春游活動(dòng)方案
- T/CAPA 008-2022紅光類美容儀器在皮膚健康管理中的應(yīng)用規(guī)范
- 《危險(xiǎn)化學(xué)品企業(yè)動(dòng)火作業(yè)安全管理規(guī)定》知識(shí)培訓(xùn)
- 江蘇省宿遷市名校2025年七下數(shù)學(xué)期末檢測試題含解析
- 山東省濱州市名校2025屆物理八下期末綜合測試模擬試題含解析
- 醫(yī)療領(lǐng)域AI人才薪酬市場現(xiàn)狀及趨勢
- 中國工商銀行校園招聘筆試EPI數(shù)字推理真題匯編理科
- 晚宴合同協(xié)議書
- 醫(yī)療廢物管理
- 山東詠坤新材料科技有限公司年產(chǎn)4000噸鋰鈉電池負(fù)極材料生產(chǎn)項(xiàng)目報(bào)告書
- 中老年人健康教育宣講
- 四川省成都市成華區(qū)2023-2024學(xué)年高一下學(xué)期期末考試數(shù)學(xué)試題(解析版)
評(píng)論
0/150
提交評(píng)論