第06章數(shù)組ppt課件_第1頁
第06章數(shù)組ppt課件_第2頁
第06章數(shù)組ppt課件_第3頁
第06章數(shù)組ppt課件_第4頁
第06章數(shù)組ppt課件_第5頁
已閱讀5頁,還剩81頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Visual Basic第六章 數(shù)組數(shù)組的概念數(shù)組是變量的集合。數(shù)組是變量的集合。 該集合中的一切變量稱號一樣、類型一樣,該集合中的一切變量稱號一樣、類型一樣,下標(biāo)不同。下標(biāo)不同。例如:例如:w ( 2 )x(100, 20)數(shù)組名下標(biāo)行標(biāo)列標(biāo)兩種數(shù)組靜態(tài)數(shù)組:靜態(tài)數(shù)組:在運(yùn)轉(zhuǎn)時(shí)總是堅(jiān)持固定的大在運(yùn)轉(zhuǎn)時(shí)總是堅(jiān)持固定的大小。小。動態(tài)數(shù)組:動態(tài)數(shù)組:在運(yùn)轉(zhuǎn)時(shí)數(shù)組的大小可以改在運(yùn)轉(zhuǎn)時(shí)數(shù)組的大小可以改動。動。數(shù)組的維數(shù)一維數(shù)組 數(shù)組元素具有一個(gè)下標(biāo)。二維數(shù)組 數(shù)組元素具有兩個(gè)下標(biāo)。 n 維數(shù)組 數(shù)組元素具有 n 個(gè)下標(biāo)。例如:a (3)一維數(shù)組b (12, 5)二維數(shù)組c (2, 4, 8)三維數(shù)組m

2、 (2, 3, 6) n 維數(shù)組數(shù)組的聲明數(shù)組必需數(shù)組必需先聲明、后運(yùn)用。先聲明、后運(yùn)用。 聲明數(shù)組的四個(gè)屬性l 稱號稱號l 維數(shù)維數(shù)l 大小大小l 類型類型數(shù)組的聲明數(shù)組聲明時(shí)的語法:Dim 數(shù)組名(下標(biāo),下標(biāo)) As 類型闡明:1、“下標(biāo)的普通方式為:下界 To 上界假設(shè)不顯式指定下標(biāo)的“下界,那么缺省的下標(biāo)下界為 0。2、數(shù)組聲明后,數(shù)值數(shù)組中的全部元素都初始化為 0,字符串?dāng)?shù)組中的全部元素都初始化為空字符串。例如:例如:Dim x As Single, a(4) As Single, b(4, 1) As Singlea(0)a(1)a(2)a(3)a(4)b(0,0)b(0,1)b(

3、1,0)b(1,1)b(2,0)b(2,1)b(3,0)b(3,1)b(4,0)b(4,1)數(shù)組的聲明x留意:留意: 運(yùn)用運(yùn)用 Option Base 語句指定數(shù)組的下標(biāo)下界從語句指定數(shù)組的下標(biāo)下界從 1 開場。開場。Option Base 1Dim a(4) As Single, b(-2 To 2, 2) As Single數(shù)組的聲明a(1)a(2)a(3)a(4)b(-2,1)b(-2,2)b(-1,1)b(-1,2)b(0,1)b(0,2)b(1,1)b(1,2)b(2,1)b(2,2)數(shù)組每一維的大小為:上界下界 + 1 。整個(gè)數(shù)組的大小為: 各維大小的乘積。數(shù)組的大小數(shù)組元素的援用

4、援用一維數(shù)組元素的方式為:數(shù)組名(下標(biāo)表達(dá)式)留意:數(shù)組的下標(biāo)必需為整數(shù),下標(biāo)表達(dá)式應(yīng)為數(shù)值型表達(dá)式,假設(shè)下標(biāo)表達(dá)式的值不為整數(shù),那么 VB 會自動取整。例如:Dim x(10) As Integer 聲明 x 數(shù)組有11個(gè)元素x(10) = 100 對 x(10) 這個(gè)數(shù)組元素賦值逆序打印 n 個(gè)整數(shù)Dim n As Integer, a(100) As Integer, i As Integer n = InputBox(vbCrLf + vbCrLf + n=) Print: Print 正序打印正序打印 For i = 1 To n a(i) = i Print a(i), Next

5、i Print: Print: Print 逆序打印逆序打印 For i = n To 1 Step -1 Print a(i), Next i逆序打印 n 個(gè)整數(shù)a(0)a(1)a(2)a(n)一維數(shù)組習(xí)題課 題型:求和例題:從鍵盤上輸入例題:從鍵盤上輸入 n 個(gè)同窗的考試成果,輸出高于平均成果個(gè)同窗的考試成果,輸出高于平均成果的分?jǐn)?shù)。的分?jǐn)?shù)。 n aver Then Print score(i); Next i 題型:求和 題型:搜索例題:將 n 個(gè)n max Then max = a(i) If a(i) min Then min = a(i) Next i Print “最大值為最大值

6、為 ; maxPrint “最小值為最小值為 ; min 題型:最大值和最小值 增刪數(shù)組元素的值n 刪除數(shù)組元素的值刪除數(shù)組元素的值n 插入數(shù)組元素的值插入數(shù)組元素的值n 附加數(shù)組元素的值附加數(shù)組元素的值 題型:刪除數(shù)組中的數(shù)據(jù)例題:將 n 個(gè)n = 1 And x = 3a(x) = a(x) + 1x = InputBox(vbCrLf + 請輸入一個(gè)數(shù)請輸入一個(gè)數(shù))LoopPrint “1 的數(shù)目:的數(shù)目:; a(1)Print “2 的數(shù)目:的數(shù)目:; a(2)Print “3 的數(shù)目:的數(shù)目:; a(3)End Sub題型:統(tǒng)計(jì) 按分?jǐn)?shù)段統(tǒng)計(jì)學(xué)生成果例題:統(tǒng)計(jì)各分?jǐn)?shù)段例題:統(tǒng)計(jì)各分?jǐn)?shù)

7、段059、6069、7079、8089、90100的學(xué)生人數(shù)。學(xué)生成果從鍵盤輸入,以的學(xué)生人數(shù)。學(xué)生成果從鍵盤輸入,以 1 為終止標(biāo)為終止標(biāo)志。志。Private Sub Command開場開場_Click()Dim a(10) As Integer, x As Integer, i As IntegerFor i = 0 To 10a(i) = 0Next ix = InputBox(vbCrLf + “請輸入學(xué)生成果請輸入學(xué)生成果)Do While x -1a(Int( x/10) = a( Int(x/10) ) + 1x = InputBox(vbCrLf + “請輸入學(xué)生成果請輸入學(xué)

8、生成果)LoopPrint “0 59 =; a(0)+a(1)+a(2)+a(3)+a(4)+a(5)Print “60 69 =; a(6) Print “70 79 =; a(7) Print “80 89 =; a(8) Print “90 100 =; a(9) + a(10)End Sub 按分?jǐn)?shù)段統(tǒng)計(jì)學(xué)生成果例題:用挑選法求例題:用挑選法求1000以內(nèi)的一切素?cái)?shù)。以內(nèi)的一切素?cái)?shù)。算法:算法:1將數(shù)將數(shù)21000放入放入“篩中;篩中;2找出其中最小的數(shù)素?cái)?shù),然后篩去其一切倍數(shù)。找出其中最小的數(shù)素?cái)?shù),然后篩去其一切倍數(shù)。3反復(fù)第二步,直至反復(fù)第二步,直至“篩中為空。篩中為空。Priv

9、ate Sub Command開場開場_Click()Dim a(2 To 1000) As Integer, i As Integer, j As IntegerFor i = 2 To 1000a(i) = iNext i用挑選法求素?cái)?shù)For i = 2 To 1000If a(i) 0 ThenPrint a(i);For j = a(i) To 1000 Step a(i) a(j) = 0Next jEnd IfNext i : PrintEnd Sub用挑選法求素?cái)?shù) 題型:排序n 選擇法排序n 冒泡法排序選擇法排序例題:利用隨機(jī)函數(shù)產(chǎn)生例題:利用隨機(jī)函數(shù)產(chǎn)生 20 個(gè)個(gè) 2 位的隨

10、機(jī)整數(shù),按從大到小位的隨機(jī)整數(shù),按從大到小的順序進(jìn)展排序。的順序進(jìn)展排序。Private Sub Command開場開場_Click() Dim a(20) As Integer, i As IntegerDim j As Integer, k As Integer Randomize For i = 1 To 20 a(i) = 10 + Int(90 * Rnd) Print a(i); Next i: Print: PrintFor i = 1 To 19 For j = i + 1 To 20 If a(i) a(j) Then k = a(i): a(i) = a(j): a(j)

11、= k End If Next j Print a(i); Next i: Print a(20)End Sub選擇法排序冒泡法排序例題:利用隨機(jī)函數(shù)產(chǎn)生例題:利用隨機(jī)函數(shù)產(chǎn)生 20 個(gè)個(gè) 2 位的隨機(jī)整數(shù),按從大到小位的隨機(jī)整數(shù),按從大到小的順序進(jìn)展排序。的順序進(jìn)展排序。Private Sub Command開場開場_Click() Dim a(20) As Integer, i As IntegerDim j As Integer, k As Integer Randomize For i = 1 To 20 a(i) = 10 + Int(90 * Rnd) Print a(i); Ne

12、xt i: Print: Print For i = 20 To 2 Step -1 For j = 1 To i - 1 If a(j) a(j) Then t = a(i): a(i) = a(j): a(j) = t End If Next j Print a(i); Next i: Print a(n)題型:數(shù)組中插入數(shù)據(jù) x = InputBox(X=) Print: Print X=; x t = 1 While x a(t) And t n Then n = n + 1 a(n) = x題型:數(shù)組中插入數(shù)據(jù) Else For i = n To t Step -1 a(i + 1)

13、 = a(i) Next i a(t) = x: n = n + 1 End If Print: Print 插入數(shù)組元素插入數(shù)組元素 X 后后 For i = 1 To n Print a(i); Next iEnd Sub題型:數(shù)組中插入數(shù)據(jù)二維數(shù)組習(xí)題課二維數(shù)組ij 寫出以下程序的運(yùn)轉(zhuǎn)結(jié)果Private Sub Command開場開場_Click() Dim a(2, 3) As Integer, i As Integer, j As Integer For i = 1 To 2 For j = 1 To 3 a(i, j) = i + j Print a(i, j); Next j P

14、rint Next iEnd Sub 主、次對角線 主、次對角線Dim a(10, 10) As Integer, i As Integer, j As Integer For i = 1 To 10 For j = 1 To 10 If i = j Or i = 11 - j Then a(i, j) = 1 Else a(i, j) = 0 End If Print a(i, j); Next j: Print Next i 題型:矩陣相加Private Sub Command開場開場_Click()Dim a(4, 4) As Integer, b(4, 4) As IntegerDim

15、 c(4, 4) As Integer, i As Integer, j As IntegerPrint A 矩陣矩陣For i = 1 To 4 For j = 1 To 4 a(i, j) = (i - 1) * 4 + j Print a(i, j), Next j: Print Next i 題型:矩陣相加Print B 矩陣矩陣For i = 1 To 4 For j = 1 To 4 b(i, j) = i * 10 + j Print b(i, j), Next j: Print Next i 題型:矩陣相加Print C 矩陣矩陣For i = 1 To 4 For j = 1

16、 To 4 c(i, j) = a(i, j) + b(i, j) Print c(i, j), Next j: Print Next iEnd Sub 題型:矩陣相加 題型:矩陣轉(zhuǎn)置Private Sub Command開場開場_Click()Dim a(2, 4) As Integer, b(4, 2) As IntegerDim i As Integer, j As IntegerPrint A 矩陣矩陣For i = 1 To 2For j = 1 To 4a(i, j) = (i - 1) * 4 + jPrint a(i, j),Next j: PrintNext i 題型:矩陣轉(zhuǎn)

17、置Print B 矩陣矩陣For i = 1 To 4For j = 1 To 2b(i, j) = a(j, i)Print b(i, j),Next j: PrintNext iEnd Sub 題型:矩陣轉(zhuǎn)置揚(yáng)輝三角形Private Sub Command開場開場_Click()Dim a(10, 10) As IntegerDim i As Integer, j As Integera(1, 1) = 1:Print Tab(30); a(1, 1)a(2, 1) = 1: a(2, 2) = 1Print Tab(27); a(2, 1); Tab(33); a(2, 2)揚(yáng)輝三角形F

18、or i = 3 To 10a(i, 1) = 1For j = 2 To i - 1a(i, j) = a(i - 1, j - 1) + a(i - 1, j)Next ja(i, i) = 1For j = 1 To iPrint Tab(27 - 3 * i + j * 6); a(i, j);Next j: PrintNext iEnd Sub揚(yáng)輝三角形動態(tài)數(shù)組的特點(diǎn):聲明時(shí),不確定數(shù)組的大小。運(yùn)轉(zhuǎn)時(shí),再確定數(shù)組的大小。動態(tài)數(shù)組的定義分為兩步:第一步:聲明一個(gè)沒有下標(biāo)參數(shù)的數(shù)組。格式為:Dim 數(shù)組名() As 類型第二步:援用數(shù)組前用 ReDim語句重新定義。格式為:ReDim P

19、reserve 數(shù)組名(下標(biāo),下標(biāo)As 類型動態(tài)數(shù)組動態(tài)數(shù)組何時(shí)運(yùn)用動態(tài)數(shù)組?在程序運(yùn)轉(zhuǎn)前無法確定數(shù)組的大小時(shí)。動態(tài)數(shù)組例如:例如:Private Sub Command1_Click() Dim a() As Integer Dim n As Integer n = Val(InputBox( input n ) ReDim a(n) End Sub闡明:闡明:1、Dim語句是闡明性語句,可出如今過程內(nèi)或通用聲明段。語句是闡明性語句,可出如今過程內(nèi)或通用聲明段。 ReDim語句是執(zhí)行語句,只能出如今過程內(nèi)。語句是執(zhí)行語句,只能出如今過程內(nèi)。2、可多次改動動態(tài)數(shù)組的大小和維數(shù)。、可多次改動動態(tài)

20、數(shù)組的大小和維數(shù)。 但不能改動動態(tài)數(shù)組的數(shù)據(jù)類型,除非動態(tài)數(shù)組被聲明為但不能改動動態(tài)數(shù)組的數(shù)據(jù)類型,除非動態(tài)數(shù)組被聲明為Variant類型。類型。3、運(yùn)用、運(yùn)用ReDim語句會使原來數(shù)組中的值喪失,可以在語句會使原來數(shù)組中的值喪失,可以在ReDim語句后加語句后加Preserve參數(shù)來保管數(shù)組中的數(shù)據(jù)。運(yùn)用參數(shù)來保管數(shù)組中的數(shù)據(jù)。運(yùn)用Preserve參參數(shù)時(shí)只能改動最后一維的大小,前面幾維大小不能改動。數(shù)時(shí)只能改動最后一維的大小,前面幾維大小不能改動。 動態(tài)數(shù)組動態(tài)數(shù)組4、在ReDim語句中,動態(tài)數(shù)組的下標(biāo)可以是常量,變量必需有確定的值。5、靜態(tài)數(shù)組在編譯時(shí)分配數(shù)組存儲空間, 動態(tài)數(shù)組在運(yùn)轉(zhuǎn)時(shí)

21、分配數(shù)組存儲空間。 求二維數(shù)組的和 求二維數(shù)組mn每行元素之和、每列元素之和、一切元素之和。m、n由鍵盤輸入,數(shù)組元素的值為兩位隨機(jī)整數(shù)。00 求二維數(shù)組的和Dim a() As Integer, i As Integer, j As Integer m = InputBox(M=) n = InputBox(N=) ReDim a(m, n) For i = 0 To m a(i, 0) = 0 Next i For j = 0 To n a(0, j) = 0 Next j 求二維數(shù)組的和 For i = 1 To m For j = 1 To n a(i, j) = Int(Rnd *

22、90 + 10) Print a(i, j); a(i, 0) = a(i, 0) + a(i, j) a(0, j) = a(0, j) + a(i, j) a(0, 0) = a(0, 0) + a(i, j) Next j: Print Next i: Print 求二維數(shù)組的和 For i = 0 To m For j = 0 To n Print Tab(8 * j); a(i, j); Next j: Print Next I留意:數(shù)組元素的值均為兩位整數(shù),簡單地運(yùn)用緊湊打印格式即可打印整齊。但和有能夠?yàn)槿换蛩奈徽麛?shù),必需運(yùn)用Tab函數(shù)定位才干打印整齊。 求二維數(shù)組的和 最大值和

23、最小值 求二維數(shù)組mn每行元素的最大值、每列元素的最小值。m、n由鍵盤輸入,數(shù)組元素的值為兩位隨機(jī)整數(shù)。00 最大值和最小值 最大值和最小值 Dim a() As Integer, i As Integer, j As Integer, t As Integer m = InputBox(M=) n = InputBox(N=) ReDim a(m, n) For i = 1 To m For j = 1 To n a(i, j) = Int(90 * Rnd + 10) Print a(i, j); Next j: Print Next i: Print 最大值和最小值 For i = 1

24、To m a(i, 0) = a(i, 1) For j = 2 To n If a(i, j) a(i, 0) Then a(i, 0) = a(i, j) End If Next j Next i 最大值和最小值 For j = 1 To n a(0, j) = a(1, j) For i = 2 To m If a(i, j) a(0, j) Then a(0, j) = a(i, j) End If Next i Next j 最大值和最小值 For i = 0 To m For j = 0 To n If i = 0 And j = 0 Then Print ; Else Print

25、 a(i, j); End If Next j: Print Next i兩個(gè)函數(shù)這兩個(gè)函數(shù)是配合動態(tài)數(shù)組運(yùn)用的。語法:Lbound(數(shù)組名, 維數(shù))功能:求數(shù)組某一維的下標(biāo)下界。語法:Ubound(數(shù)組名, 維數(shù))功能:求數(shù)組某一維的下標(biāo)上界。例如:Lbound(x, 1) 求x數(shù)組第一維的下界值。Ubound(x, 2) 求x數(shù)組第二維的上界值。數(shù)組的初始化可以運(yùn)用Array函數(shù)給數(shù)組元素賦初值:Dim ib As Variant ib = Array(abc, def, 67) For i = 0 To UBound(ib) Picture1.Print ib(i); ; Next I留

26、意:1、利用Array函數(shù)對數(shù)組各元素賦值,聲明的數(shù)組必需是動態(tài)數(shù)組連圓括號都可省,并且其類型只能是Variant。2、數(shù)組的下界為零,上界由 Array 函數(shù)括號內(nèi)參數(shù)的個(gè)數(shù)決議,也可經(jīng)過 Ubound 函數(shù)獲得。例如:例如:Dim a() As Variant, b() As Varianta = Array(1, 2, 3, 4, 5)ReDim b(UBound(a)b = a 闡明:闡明:1、只能對動態(tài)數(shù)組整數(shù)組賦值。、只能對動態(tài)數(shù)組整數(shù)組賦值。2、賦值號兩邊數(shù)組的數(shù)據(jù)類型必需一致。、賦值號兩邊數(shù)組的數(shù)據(jù)類型必需一致。3、賦值時(shí),系統(tǒng)自動將賦值號左邊的數(shù)組、賦值時(shí),系統(tǒng)自動將賦值號左

27、邊的數(shù)組ReDim成賦成賦值號右邊數(shù)組的大小。養(yǎng)成一個(gè)好習(xí)慣,數(shù)組對數(shù)組的賦值值號右邊數(shù)組的大小。養(yǎng)成一個(gè)好習(xí)慣,數(shù)組對數(shù)組的賦值時(shí),兩個(gè)數(shù)組的類型、維數(shù)和大小應(yīng)一致時(shí),兩個(gè)數(shù)組的類型、維數(shù)和大小應(yīng)一致數(shù)組對數(shù)組賦值控件數(shù)組控件數(shù)組為我們處置功能相近的控件提供了極大的方便??丶?shù)組由一組一樣類型的控件組成,這些控件共用一個(gè)控件數(shù)組名字,具有類似的屬性設(shè)置,共享同樣的事件過程。控件數(shù)組中各個(gè)控件相當(dāng)于普通數(shù)組中的各個(gè)元素,同一控件數(shù)組中各個(gè)控件的 Index 屬性相當(dāng)于普通數(shù)組中的下標(biāo)。建立控件數(shù)組的兩種方法:方法一:復(fù)制已有的控件并將其粘貼到窗體上。方法二:將窗體上已有的類型一樣的多個(gè)控件的 Name 屬性設(shè)為同一個(gè)值??丶?shù)組的建立 控件數(shù)組的事件過程 控件數(shù)組共享同樣的事件過程,經(jīng)過前往的下標(biāo)值區(qū)分控件數(shù)組中的各個(gè)元素。 例如:Private Sub cmdName _Click(Index As Integer) If Index = 3 then 處置第四個(gè)命令按鈕的操作 End If End Sub計(jì)算器設(shè)計(jì)一個(gè)簡易計(jì)算器,能進(jìn)展整數(shù)的加、減、乘、除運(yùn)算。界面設(shè)計(jì)如下:一個(gè)文本框用于計(jì)算器輸出;數(shù)字按鈕

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論