版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Visual Basic 程序設(shè)計(jì)教程,機(jī)械工業(yè)出版社同名教材配套電子教案,2003 年 6月,第6章 數(shù) 組,6.1 數(shù)組的概念 6.1.1 數(shù)組與數(shù)組元素 6.1.2 數(shù)組的類型 6.1.3 數(shù)組的維數(shù) 6.1.4 數(shù)組的形式 6.2 固定大小的數(shù)組 6.2.1 數(shù)組的聲明 6.2.2 數(shù)組的使用 6.3 動(dòng)態(tài)數(shù)組 6.3.1 創(chuàng)建動(dòng)態(tài)數(shù)組 6.3.2 保留動(dòng)態(tài)數(shù)組的內(nèi)容 6.4 控件數(shù)組 6.4.1 控件數(shù)組的概念,6.4.2 控件數(shù)組的建立 6.4.3 控件數(shù)組的使用 6.5 For EachNext語(yǔ)句 習(xí)題六,6.1 概 述 數(shù)組的概念:數(shù)組并不是一種數(shù)據(jù)類型,而是一組相同類型數(shù)據(jù)
2、的集合。用一個(gè)統(tǒng)一的名字(數(shù)組名)代表邏輯上相關(guān)的一批數(shù)據(jù),每個(gè)元素用下標(biāo)變量來(lái)區(qū)分;下標(biāo)變量代表元素在數(shù)組中的位置。 Visual Basic中的數(shù)組分類: 按數(shù)組的大小(元素個(gè)數(shù))是否可以改變來(lái)分為: 定長(zhǎng)數(shù)組、動(dòng)態(tài)(可變長(zhǎng))數(shù)組。 按元素的數(shù)據(jù)類型可分為: 數(shù)值型數(shù)組、字符串?dāng)?shù)組、邏輯數(shù)組、 日期型數(shù)組、變體數(shù)組等、對(duì)象數(shù)組。 按數(shù)組的維數(shù)可分為: 一維數(shù)組、二維數(shù)組、多維數(shù)組。,6.2 固定大小的數(shù)組 6.2.1 數(shù)組的聲明 有3種方法聲明固定大小的數(shù)組,用哪一種方法取決于數(shù)組應(yīng)用的有效范圍: 建立公用數(shù)組,在模塊的通用段用Public語(yǔ)句聲明數(shù)組。格式為: Public 數(shù)組名(維數(shù)
3、定義) As 類型 建立模塊級(jí)數(shù)組,在模塊的通用段用Private或Dim語(yǔ)句聲明數(shù)組。格式為: Private | Dim 數(shù)組名(維數(shù)定義) As 類型 建立局部數(shù)組,在過(guò)程中用Dim或Private語(yǔ)句聲明數(shù)組。格式為: Dim | Private 數(shù)組名(維數(shù)定義) As 類型 6.2.2 數(shù)組的使用 【例6-1】隨機(jī)產(chǎn)生10個(gè)兩位整數(shù),找出其最大值、最小值和平均值,如圖6-1所示。,設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。 (2) 編寫代碼。 考慮到要在不同的過(guò)程中使用數(shù)組,所以首先在模塊的通用段聲明數(shù)組: Dim a(1 To 10) As Integer 隨機(jī)
4、整數(shù)的生成由窗體的Load事件代碼完成:,Private Sub Form_Load() Dim p As String Randomize p = For i = 1 To 10 a(i) = Int(Rnd * 90) + 10 p = p & Str(a(i) & , Next Label1.Caption = LTrim(Left(p, Len(p) 1) End Sub “重置”按鈕Command1的Click事件代碼: Private Sub Command1_Click() Form_Load Text1.Text = Text2.Text = Text3.Text = End
5、Sub,求最大、最小以及平均值由“確定”按鈕Command2的Click事件代碼完成: Private Sub Command2_Click() Dim min As Integer, max As Integer, s As Single min = 100: max = 10: s = 0 For i = 1 To 10 If a(i) max Then max = a(i) If a(i) min Then min = a(i) s = s + a(i) Next Text1.Text = max Text2.Text = min Text3.Text = s / 10 End Sub
6、最后是“關(guān)閉”按鈕Command3的Click事件代碼: Private Sub Command3_Click() Unload Me End Sub,(1) 在“重置”按鈕的Click事件代碼中,通過(guò)調(diào)用窗體的Load事件過(guò)程來(lái)重新產(chǎn)生隨機(jī)數(shù)。 (2) 如果要求產(chǎn)生的隨機(jī)整數(shù)互不相同,應(yīng)改寫窗體的Load事件代碼: Private Sub Form_Load() Dim p As String Randomize p = For i = 1 To 10 Do x = Int(Rnd * 90) + 10 yes = 0 For j = 1 To i - 1 If x = a(j) Then
7、yes = 1: Exit For 如與前面的元素相同,則返回到 Next Do循環(huán)重新產(chǎn)生隨機(jī)數(shù) Loop While yes = 1 a(i) = x p = p & Str(a(i) & , Next Label1.Caption = LTrim(Left(p, Len(p) - 1) End Sub,【例6-2】斐波那契(Fibonacci)數(shù)列問(wèn)題。 ibonacci數(shù)列問(wèn)題起源于一個(gè)古典的有關(guān)兔子繁殖的問(wèn)題:假設(shè)在第1個(gè)月時(shí)有一對(duì)小兔子,第2個(gè)月時(shí)成為大兔子,第3個(gè)月時(shí)成為老兔子,并生出一對(duì)小兔子(一對(duì)老,一對(duì)小)。 第4個(gè)月時(shí)老兔子又生出一對(duì)小兔子,上個(gè)月的小兔子變成大兔子(一對(duì)
8、老,一對(duì)大,一對(duì)?。?。第5個(gè)月時(shí)上個(gè)月的大兔子成為老兔子,上個(gè)月的小兔子變成大兔子,兩對(duì)老兔子生出兩對(duì)小兔子(兩對(duì)老,一對(duì)中,兩對(duì)?。?。 這樣,各月的兔子對(duì)數(shù)為:1,1,2,3,5,8,。 設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。 (2) 編寫代碼。,只需編寫命令按鈕的Click事件代碼: Private Sub Command1_Click() Dim f(15) As Integer List1.Clear f(1) = 1: f(2) = 1 p = Format(Fib( & 1 & ):, !) & Format(f(1), #) List1.AddItem p,
9、 0 For i = 3 To 15 f(i) = f(i 1) + f(i - 2) p = Format(Fib( & i & ):, !) & Format(f(i), #) List1.AddItem p, i - 1 Next End Sub,【例6-3】由計(jì)算機(jī)隨機(jī)生成10個(gè)互不相同的數(shù),然后將這些數(shù)按由小到大的順序顯示出來(lái)(如圖6-6所示)。 設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。 (2) 編寫代碼。 考慮到要在不同的過(guò)程中使用數(shù)組,所以首先在模塊的通用段聲明數(shù)組: Dim a(1 To 10) As Integer 隨機(jī)整數(shù)的生成由窗體的Load事件代碼完
10、成: Private Sub Form_Load() Dim p As String Randomize p = For i = 1 To 10 Do x = Int(Rnd * 90) + 10 yes = 0,For j = 1 To i - 1 If x = a(j) Then yes = 1: Exit For Next Loop While yes = 1 a(i) = x p = p & Str(a(i) & , Next Label1.Caption = LTrim(Left(p, Len(p) - 1) Label2.Caption = End Sub 編寫“重置”按鈕Comm
11、and1的Click事件代碼: Private Sub Command1_Click() Form_Load End Sub,編寫“排序”按鈕Command2的Click事件代碼: Private Sub Command2_Click() For i = 1 To 9 For j = i + 1 To 10 If a(i) a(j) Then t = a(i): a(i) = a(j): a(j) = t End If Next Next p = Str(a(1) For i = 2 To 10 p = p & , & Str(a(i) Next Label2.Caption = LTrim(
12、p) End Sub,【例6-4】設(shè)有一個(gè)55的方陣,其中元素是由計(jì)算機(jī)隨機(jī)生成的小于100的整數(shù)。請(qǐng)求出: (1)對(duì)角線上元素之和; (2)對(duì)角線上元素之積; (3)方陣中最大的元素。,設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。 (2) 編寫代碼。 考慮到要在不同的過(guò)程中使用數(shù)組,所以首先在模塊的通用段聲明數(shù)組: Dim a(5, 5) As Integer 方陣的生成由窗體的Load事件代碼完成:,Private Sub Form_Load() List1.Clear Dim p As String Randomize For i = 1 To 5 p = For j =
13、 1 To 5 a(i, j) = Int(Rnd * 99) + 1 p = p & Format(a(i, j), !) Next List1.AddItem p, i 1 Next Text1.Text = Text2.Text = Text3.Text = End Sub,計(jì)算功能由“計(jì)算”按鈕Command1的Click事件代碼完成: Private Sub Command1_Click() Dim s As Integer, t As Long s = 0: t = 1 For i = 1 To 5 s = s + a(i, i) t = t * a(i, i) If Max a(
14、i, i) Then Max = a(i, i): p = i Next Max = a(1, 1): p = 1: q = 1 For i = 1 To 5 For j = 1 To 5 If Max a(i, j) Then Max = a(i, j): p = i: q = j Next Next Text1.Text = s Text2.Text = t Text3.Text = a( & p & , & q & ) End Sub,“重置”按鈕Command2的Click事件代碼完成: Private Sub Command2_Click() Form_Load End Sub,【例
15、6-5】設(shè)有10位同學(xué)的數(shù)學(xué)、語(yǔ)文、外語(yǔ)3門成績(jī),見(jiàn)表6-2。,試編寫程序,實(shí)現(xiàn)如圖6-9所示,即 (1) 成績(jī)的查詢。 (2) 各科平均分?jǐn)?shù)的計(jì)算。 (3) 顯示各科平均分以下的同學(xué)姓名。,設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。 (2) 編寫代碼。 考慮到要在不同的過(guò)程中使用數(shù)組,所以首先在模塊的通用段聲明數(shù)組: Dim a(1 To 10) As String, b(1 To 10, 1 To 4) As Integer,數(shù)組的賦值由窗體的Load事件代碼完成: Private Sub Form_Load() a(1) = 陳高陽(yáng): b(1, 1) = 89: b(1
16、, 2) = 85: b(1, 3) = 91 a(2) = 趙世杰: b(2, 1) = 75: b(2, 2) = 78: b(2, 3) = 84 a(3) = 李民維: b(3, 1) = 64: b(3, 2) = 82: b(3, 3) = 72 a(4) = 馬英麗: b(4, 1) = 88: b(4, 2) = 68: b(4, 3) = 64 a(5) = 楊廣民: b(5, 1) = 79: b(5, 2) = 79: b(5, 3) = 87 a(6) = 李靈君: b(6, 1) = 91: b(6, 2) = 88: b(6, 3) = 87 a(7) = 陳吉至:
17、 b(7, 1) = 68: b(7, 2) = 73: b(7, 3) = 64 a(8) = 王東明: b(8, 1) = 58: b(8, 2) = 68: b(8, 3) = 65 a(9) = 姜大偉: b(9, 1) = 76: b(9, 2) = 81: b(9, 3) = 88 a(10) = 吳曉林: b(10, 1) = 78: b(10, 2) = 89: b(10, 3) = 82 End Sub,在列表框中顯示姓名由窗體的Activate事件代碼完成: Private Sub Form_Activate() For n = 1 To 10 List1.AddItem
18、a(n), n 1 b(n, 4) = b(n, 1) + b(n, 2) + b(n, 3) Next Text1.Text = : Text2.Text = : Text3.Text = : Text4.Text = End Sub 查閱學(xué)生的各科成績(jī)由列表框的Click事件代碼完成: Private Sub List1_Click() n = List1.ListIndex + 1 Text1.Text = b(n, 1) Text2.Text = b(n, 2) Text3.Text = b(n, 3) Text4.Text = b(n, 4) End Sub,各科平均分?jǐn)?shù)的計(jì)算以及顯
19、示各科平均分以下的同學(xué)姓名則由3個(gè)命令按鈕的Click事件代碼分別完成: Private Sub Command1_Click() s = 0 For n = 1 To 10 s = s + b(n, 1) Next s = s / 10 p = For n = 1 To 10 If b(n, 1) s Then p = p & a(n) & Next MsgBox 低于平均分?jǐn)?shù)的同學(xué)有: & Chr(13) & Chr(13) & p, 0, 數(shù)學(xué)的平均分為: & s End Sub,各科平均分?jǐn)?shù)的計(jì)算以及顯示各科平均分以下的同學(xué)姓名則由3個(gè)命令按鈕的Click事件代碼分別完成: Priva
20、te Sub Command1_Click() s = 0 For n = 1 To 10 s = s + b(n, 1) Next s = s / 10 p = For n = 1 To 10 If b(n, 1) s Then p = p & a(n) & Next MsgBox 低于平均分?jǐn)?shù)的同學(xué)有: & Chr(13) & Chr(13) & p, 0, 數(shù)學(xué)的平均分為: & s End Sub,Private Sub Command3_Click() s = 0 For n = 1 To 10 s = s + b(n, 3) Next s = s / 10 p = For n = 1
21、 To 10 If b(n, 3) s Then p = p & a(n) & Next MsgBox 低于平均分?jǐn)?shù)的同學(xué)有: & Chr(13) & Chr(13) & p, 0, 外語(yǔ)的平均分為: & s End Sub,6.3 動(dòng)態(tài)數(shù)組 6.3.1 創(chuàng)建動(dòng)態(tài)數(shù)組 要?jiǎng)?chuàng)建動(dòng)態(tài)數(shù)組,可按照以下步驟進(jìn)行: (1) 用Public語(yǔ)句(公用數(shù)組)、Dim語(yǔ)句(模塊級(jí)數(shù)組)、Static或Dim語(yǔ)句(局部數(shù)組)在過(guò)程中聲明數(shù)組。給數(shù)組附以一個(gè)空維數(shù)表,這樣就將數(shù)組聲明為動(dòng)態(tài)數(shù)組。 (2) 用ReDim語(yǔ)句分配實(shí)際的元素個(gè)數(shù)。格式為 ReDim Preserve 數(shù)組名(維數(shù)定義) As類型 【例6
22、-6】在例6-2的Fibonacci數(shù)列問(wèn)題中,希望能夠選擇輸出的項(xiàng)數(shù)。 設(shè)計(jì)步驟如下: 在例6-2的窗體中,增加一個(gè)文本框Text1,刪去命令按鈕并修改各控件的屬性如圖6-10所示。,在模塊的通用段聲明數(shù)組一個(gè)動(dòng)態(tài)數(shù)組: Dim f() 為了使輸入所需項(xiàng)數(shù)并按回車后可以得到數(shù)列的各項(xiàng),編寫文本框Text1的按?。↘eyPress)事件代碼:,Private Sub Text1_KeyPress(KeyAscii As Integer) Dim n As Integer List1.Clear If KeyAscii = 13 Then n = Val(Text1.Text) ReDim f(
23、n) f(0) = 0: f(1) = 1 p = Format(Fib( & 1 & ):, !) & Format(f(1), #) List1.AddItem p, 0 For i = 2 To n f(i) = f(i 1) + f(i 2) p = Format(Fib( & i & ):, !) & Format(f(i), #) List1.AddItem p, i 1 Next End If End Sub,【例6-7】編程序,輸出楊輝三角形(國(guó)外稱Pascal三角形)。 設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。 (2) 編寫代碼。,在模塊的通用段聲明數(shù)組一
24、個(gè)動(dòng)態(tài)數(shù)組: Dim a() 為了使輸入所需項(xiàng)數(shù)并按回車后可以得到各項(xiàng),編寫文本框Text1的按?。↘eyPress)事件代碼:,Private Sub Text1_KeyPress(KeyAscii As Integer) Dim n As Integer If KeyAscii = 13 Then n = Val(Text1.Text) If n 16 Then MsgBox 請(qǐng)不要超過(guò)16 Exit Sub End If ReDim a(n, n) For i = 1 To n a(i, 1) = 1: a(i, i) = 1 Next p = Format(1, !) & Chr(13
25、) p = p & Format(1, !) & Format(1, !) & Chr(13),For i = 3 To n p = p & Format(a(i, 1), !) For j = 2 To i 1 a(i, j) = a(i 1, j 1) + a(i 1, j) p = p & Format(a(i, j), !) Next p = p & Format(a(i, i), !) & Chr(13) Next MsgBox p, 0, 楊輝三角形 End If End Sub,6.4 控件數(shù)組 6.4.2 控件數(shù)組的建立 設(shè)計(jì)時(shí)有3種方法創(chuàng)建控件數(shù)組: 將相同名字賦予多個(gè)控件。
26、 復(fù)制現(xiàn)有的控件并將其粘貼到窗體上。 將控件的Index屬性設(shè)置為非Null數(shù)值 6.4.3 控件數(shù)組的使用 1. 命令按鈕組 【例6-8】在例6-5中使用命令按鈕控件數(shù)組。 修改命令按鈕的屬性設(shè)置。 (2) 修改Command1的Click事件代碼。 首先在原有Command1的Click事件過(guò)程中增加參數(shù)聲明:Index As Integer,然后修改代碼為:,Private Sub Command1_Click(Index As Integer) k = Index Select Case k Case 0 t = 數(shù)學(xué)的平均分為: Case 1 t = 語(yǔ)文的平均分為: Case 2
27、t = 外語(yǔ)的平均分為: End Select s = 0 For n = 1 To 10 s = s + b(n, k + 1) Next s = s / 10 p = For n = 1 To 10 If b(n, k + 1) s Then p = p & a(n) & Next MsgBox 低于平均分?jǐn)?shù)的同學(xué)有: & Chr(13) & Chr(13) & p, 0, t & s End Sub 最后,刪除原有Command2與Command3的事件過(guò)程代碼。,2. 選項(xiàng)按鈕組 【例6-9】在第4章計(jì)算銀行定期存款利息的例子中,使用選項(xiàng)按鈕組,可以使代碼更為簡(jiǎn)潔。如圖6-13所示。
28、修改步驟如下: (1) 將6個(gè)選項(xiàng)按鈕改為選項(xiàng)按鈕組Option1(0)Option1(5),刪去命令按鈕Command1。 (2) 編寫選項(xiàng)按鈕組Option1()的Click事件代碼:,Private Sub Option1_Click(Index As Integer) a = Val(Text1.Text) n = Index Select Case n Case 0 x = (1 + 5 * 0.0288) * a Case 1 x = (1 + 3 * 0.027) * (1 + 2 * 0.0243) * a Case 2 x = (1 + 3 * 0.027) * (1 + 0
29、.0225) 2 * a Case 3 x = (1 + 2 * 0.0243) 2 * (1 + 0.0225) * a Case 4 x = (1 + 2 * 0.0243) * (1 + 0.0225) 3 * a Case 5 x = (1 + 0.0225) 5 * a End Select Text2.Text = Format(x, #0.0#) Text1.SetFocus Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End Sub,還可以通過(guò)循環(huán)來(lái)判斷選項(xiàng)按鈕組中哪個(gè)按鈕被選中,并調(diào)用該事件代碼: Private
30、Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then For n = 0 To 5 If Option1(n).Value Then Option1_Click (n) Next End If End Sub,3. 復(fù)選框組 【例6-10】在第4章控制文本字體風(fēng)格的例子中使用復(fù)選框組。如圖6-14所示。 修改步驟如下: (1) 將4個(gè)復(fù)選框改為復(fù)選框組Check1(0)Check1(3),其中Check1(0)為帶鎖的那個(gè)圖文復(fù)選框。 (2) 編寫復(fù)選框組的Click事件代碼:,Private Sub Check1_Clic
31、k(Index As Integer) n = Index Select Case n Case 0 For k = 1 To 3 Check1(k).Enabled = Check1(0).Value Next If Check1(0).Caption = 鎖上 Then Check1(0).Caption = 打開(kāi) Else Check1(0).Caption = 鎖上 End If Case 1 Text1.FontBold = Check1(1).Value Case 2 Text1.FontItalic = Check1(2).Value Case 3 Text1.FontUnder
32、line = Check1(3).Value End Select End Sub,4. 標(biāo)簽組 【例6-11】用“篩法”找1100之間的全部素?cái)?shù)。“篩法”求素?cái)?shù)表是由希臘著名數(shù)學(xué)家Eratost henes提出來(lái)的,其方法是 首先在紙上寫出1n的全部整數(shù)。然后逐一判斷它們是否素?cái)?shù),找出一個(gè)非素?cái)?shù)就把它挖掉(篩掉),最后剩下的就是素?cái)?shù)。具體做法是 (1) 先將1挖掉。 (2) 用2去除它后面的每個(gè)數(shù),把能被2整除的數(shù)挖掉,即把2的倍數(shù)挖掉。 (3) 用3去除它后面的每個(gè)數(shù),把3的倍數(shù)挖掉。 (4) 分別用4,5各數(shù)作為除數(shù)去除這些數(shù)后面的各數(shù)(4已被挖掉,不必再用4當(dāng)除數(shù),只需用未被挖掉的數(shù)作
33、除數(shù)即可)。這個(gè)過(guò)程一直進(jìn)行到除數(shù)為為止(如果不是整數(shù)就取其整數(shù)部分),如圖6-15所示,(5) 經(jīng)如此“篩法”,剩下的部分全都是素?cái)?shù),如圖6-16所示。,設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面。,(2) 設(shè)置對(duì)象屬性, (3) 編寫程序代碼。 編寫窗體Form1的Load事件代碼: Private Sub Form_Load() Picture1.Move 0, 0 Picture1.Height = (Label1(0).Height + 5) * 10 + 3 Picture1.Width = (Label1(0).Width + 5) * 10 + 3 Me.Height = P
34、icture1.Height + 900 Me.Width = Picture1.Width + 80 Label1(0).Visible = False For n = 1 To 100 i = (n 1) 10: j = (n 1) Mod 10 Load Label1(n) With Label1(n),.Left = 5 + j * Label1(0).Width .Top = 5 + i * Label1(0).Height .Visible = True .Caption = n End With Next End Sub 編寫“重置”按鈕Command2的Click事件代碼: P
35、rivate Sub Command2_Click() For n = 1 To 100 Label1(n).Visible = True Next End Sub,編寫“開(kāi)始”按鈕Command1的Click事件代碼: Private Sub Command1_Click() Label1(1).Visible = False n = 100 For i = 2 To Sqr(n) If Label1(i).Visible = True Then MsgBox 現(xiàn)在開(kāi)始刪去 & Str(i) & 的倍數(shù), 64, 用“篩法”找素?cái)?shù) For j = i + 1 To n If Label1(j
36、).Visible = True And j Mod i = 0 Then Label1(j).Visible = False Next End If Next MsgBox 剩下來(lái)的整數(shù)已全都是素?cái)?shù)!, 64, 用“篩法”找素?cái)?shù) End Sub,5. 文本框組 【例6-12】演示“比較法”排序過(guò)程的程序,如圖6-19所示。,設(shè)計(jì)步驟如下: (1) 建立應(yīng)用程序用戶界面。,(2) 設(shè)置對(duì)象屬性,見(jiàn)表6-4。 (3) 設(shè)計(jì)代碼。 在窗體的通用過(guò)程中聲明數(shù)組變量: Dim a(10) As TextBox 顯示數(shù)據(jù)的對(duì)象數(shù)組 編寫窗體的Activate事件代碼: Private Sub Form_
37、Activate() Randomize For i = 0 To 10 Set a(i) = Text1(i) a(i).Text = Int(Rnd * 199) 99 a(i).BackColor = RGB(255, 255, 255) Next Frame1.Height = 2256 End Sub,編寫命令按鈕控件數(shù)組Command1()的Click事件代碼: Private Sub Command1_Click() Command1.Enabled = False For i = 1 To 9 a(i).BackColor = RGB(255, 0, 255) Label2.C
38、aption = 以A( & Trim(i) & )為擂主與后邊的元素依次比較,如有比A( & _Trim(i) + )小者,則與A( & Trim(i) & )交換。 For j = i + 1 To 10 a(j).BackColor = RGB(255, 0, 255) MsgBox 比較A( & Trim(i) & )和A( & Trim(j) & ), , 比較法排序 If Val(a(i).Text) Val(a(j).Text) Then MsgBox 交換A( & Trim(i) & )和A( & Trim(j) & ), , A( & Trim(i) & _ ) A( & T
39、rim(j) & ),t = a(i).Text: a(i).Text = a(j).Text: a(j).Text = t End If a(j).BackColor = RGB(255, 255, 255) Next j a(i).BackColor = RGB(0, 255, 0) Next i a(10).BackColor = RGB(0, 255, 0) Label2.Caption = Frame1.Height = 1000 End Sub,6.5 For EachNext語(yǔ)句,For Each成員In數(shù)組 語(yǔ)句列 Exit For Next 成員,【例6-13】在本章例6-1
40、中,可以將“確定”按鈕Command2的Click事件代碼改為 Private Sub Command2_Click() Dim n As Integer, m As Integer, s As Single m = 100: n = 0: s = 0 For Each x In a If x n Then n = x If x m Then m = x s = s + x Next Text1.Text = n Text2.Text = m Text3.Text = s / 10 End Sub,習(xí)題六 6.1 某數(shù)組有20個(gè)元素,元素的值由鍵盤輸入,要求將前10個(gè)元素與后10個(gè)元素對(duì)換。即
41、第1個(gè)元素與第20個(gè)元素互換,第2個(gè)元素與第19個(gè)元素互換,第10個(gè)元素與第11個(gè)元素互換。輸出數(shù)組原來(lái)各元素的值和對(duì)換后各元素的值。 6.2 編寫程序,建立并輸出一個(gè)1010的矩陣,該矩陣兩條對(duì)角線元素為1,其余元素均為0。 6.3 有一個(gè)66的矩陣,各元素的值由鍵盤輸入,求全部元素的平均值,并輸出高于平均值的元素以及它們的行、列號(hào)。 6.4 矩陣轉(zhuǎn)置。即將矩陣行、列互換:,6.5 找出二維數(shù)組nm中的“鞍點(diǎn)”。所謂鞍點(diǎn)是指它在本行中值最大,在本列中值最小。輸出鞍點(diǎn)的行、列號(hào),有可能在一個(gè)數(shù)組中找不到鞍點(diǎn),如無(wú)鞍點(diǎn)則輸出“無(wú)”。 6.6 求方陣的兩個(gè)對(duì)角線元素和。 6.7 矩陣的加法運(yùn)算。兩
42、個(gè)相同階數(shù)的矩陣A和B相加,是將相應(yīng)位置上的元素相加后放到同階矩陣C的相應(yīng)位置。,+ =,6. 6.8 矩陣的乘法運(yùn)算。設(shè)A = (aij)為nk矩陣,B = (bij)為km矩陣,則C = AB為nm矩陣,C中元素:,6.9 輸出幻方陣?;梅疥囈卜Q魔方陣,是指由自然數(shù)1n2(n為奇數(shù))構(gòu)成的方陣,其各行、各列以及對(duì)角線元素之和均相等。如圖6-21所示。,6.10 設(shè)某班共10名學(xué)生,為了評(píng)定某門課程的獎(jiǎng)學(xué)金,按規(guī)定超過(guò)全班平均成績(jī)10%者發(fā)給一等獎(jiǎng),超過(guò)全班成績(jī)5%者發(fā)給二等獎(jiǎng)。試編制程序,輸出應(yīng)獲獎(jiǎng)學(xué)金的學(xué)生名單(包括姓名、學(xué)號(hào)、成績(jī)、獎(jiǎng)學(xué)金等級(jí))。,6.13 選擇法排序。選擇法排序的基本思路如下 設(shè)有10個(gè)數(shù)存放在數(shù)組A中,分別表示為A(1)、A(2)、A(3)、A(4)、A(5)、A(6)、A(7)、A(8)、A(9)、A(10)。 先將A(1)與A(2)比較:指針k指向1,若A(2) A(1),則將指針k指向2(指針指向較小者)。再將A(k)與A(3)、A(10)比較,并依次作出同樣的處理,指針k指向10個(gè)數(shù)中的最小者,然后將A(k)與A(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年哈爾濱市平房區(qū)第二幼兒園聘用制教師招聘?jìng)淇碱}庫(kù)及完整答案詳解
- 2026年黃山市徽州國(guó)有投資集團(tuán)有限公司招聘工作人員3名考試備考題庫(kù)及答案解析
- 2026江蘇揚(yáng)州南科能源再生有限公司招聘勞務(wù)派遣人員4人備考題庫(kù)及完整答案詳解一套
- 2026四川眉山市丹棱縣國(guó)有資產(chǎn)監(jiān)督管理局招聘縣屬國(guó)有企業(yè)兼職外部董事2人備考題庫(kù)及完整答案詳解
- 2026安徽合肥技師學(xué)院招聘勞務(wù)外包輔助教學(xué)教師10人考試參考試題及答案解析
- 2026季深廣東圳市寶安區(qū)鶴洲學(xué)校誠(chéng)聘學(xué)期八年級(jí)語(yǔ)文老師1人備考題庫(kù)及答案詳解(易錯(cuò)題)
- 2025至2030中國(guó)醫(yī)藥行業(yè)產(chǎn)能過(guò)剩領(lǐng)域退出機(jī)制與資源重組分析報(bào)告
- 2026上半年安徽事業(yè)單位聯(lián)考淮北市市直及市轄區(qū)招聘94人備考題庫(kù)帶答案詳解
- 誠(chéng)信履約質(zhì)量承諾書(shū)范文7篇
- 2026年福建莆田第二中編外合同教師招聘12人備考題庫(kù)及參考答案詳解1套
- 中國(guó)土壤污染防治法培訓(xùn)
- 升降車安全技術(shù)交底(一)
- 附:江西省會(huì)計(jì)師事務(wù)所服務(wù)收費(fèi)標(biāo)準(zhǔn)【模板】
- 合歡花苷類對(duì)泌尿系感染的抗菌作用
- 合伙人股權(quán)合同協(xié)議書(shū)
- 工程施工監(jiān)理技術(shù)標(biāo)
- 年終尾牙會(huì)領(lǐng)導(dǎo)講話稿
- 向規(guī)范要50分規(guī)范答題主題班會(huì)-課件
- cie1931年標(biāo)準(zhǔn)色度觀測(cè)者的光譜色品坐標(biāo)
- per200軟件petrel2009中文版教程
- SB/T 10595-2011清潔行業(yè)經(jīng)營(yíng)服務(wù)規(guī)范
評(píng)論
0/150
提交評(píng)論