




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第八章 數(shù)組與記錄 教學(xué)要求:掌握一維、二維數(shù)組的定義、引用、初始化,掌握靜態(tài)和動態(tài)數(shù)組及其差別,掌握數(shù)組的基本使用方法:數(shù)組元素的輸入、輸出和賦值等,掌握使用For Each.Next語句操作數(shù)組元素的方法;掌握控件數(shù)組的定義、建立和使用,掌握排序算法。掌握記錄類型及記錄數(shù)組的概念、記錄變量的初始化及引用。 知識點:數(shù)組的定義、引用、初始化;靜態(tài)和動態(tài)數(shù)組及其差別;For Each.Next語句;控件數(shù)組。熟練數(shù)組“遍歷”算法的設(shè)計規(guī)律,冒泡排序、快速排序算法,順序查找、有序表對分查找、字符查找算法。 內(nèi)容導(dǎo)航:一、數(shù)組的概念(一)數(shù)組的定義在Visual Basic中,可以用4個語句來定義
2、數(shù)組,這4個語句格式相同,但適用范圍不一樣。Dim用在窗體模塊或標(biāo)準(zhǔn)模塊中,定義窗體或標(biāo)準(zhǔn)模塊數(shù)組;ReDim、 Static可用于過程中;Public 用在標(biāo)準(zhǔn)模塊中,定義全局?jǐn)?shù)組。Visual Basic 提供兩種格式:第一種格式:一維數(shù)組 Dim 數(shù)組名(下標(biāo)上界) As 類型名稱 二維數(shù)組 Dim 數(shù)組名(第一維下標(biāo)上界,第二維下標(biāo)上界) As 類型名稱第二種格式:Dim 數(shù)組名 (下界 To 上界,下界To上界)Dim 數(shù)組名 (下界 To 上界,下界To上界)(二)默認(rèn)數(shù)組在Visual Basic中,允許定義默認(rèn)數(shù)組。默認(rèn)數(shù)組就是數(shù)據(jù)類型為Variant(默認(rèn))的數(shù)組。在一般情況
3、下,定義數(shù)組應(yīng)指明其類型。二、動態(tài)數(shù)組(一)動態(tài)數(shù)組的定義動態(tài)數(shù)組以變量作為下標(biāo)值,在程序運行過程中完成定義,通常分為兩步:首先在窗體層、標(biāo)準(zhǔn)模塊或過程中用Dim或Public聲明一個沒有下標(biāo)的數(shù)組(括號不能省略),然后在過程中用 ReDim 語句定義帶下標(biāo)的數(shù)組。ReDim 語句格式:ReDim Preserve 變量 ( 下標(biāo) ) As 類型(二)數(shù)組的清除和重定義數(shù)組一經(jīng)定義,便在內(nèi)存中分配了相應(yīng)的存儲空間,其大小不能改變。有時需要清除數(shù)組的內(nèi)容或?qū)?shù)組重新定義,其格式為:數(shù)組的清除:Erase數(shù)組名,數(shù)組名重定義:ReDim三、數(shù)組的基本操作(一)數(shù)組元素的輸入、輸出和復(fù)制1數(shù)組的引用
4、數(shù)組的引用通常是指對數(shù)組元素的引用,其方法是,在數(shù)組后面的括號中指定下標(biāo)。2數(shù)組元素的輸入數(shù)組元素一般通過For循環(huán)語句及InputBox函數(shù)輸入,當(dāng)數(shù)組較小,或只需要對數(shù)組中的指定元素賦值時,可以用賦值語句來實現(xiàn)數(shù)組元素的輸入,多維數(shù)組元素的輸入通過多重循環(huán)來實現(xiàn)3數(shù)組元素的輸出數(shù)組元素的輸出可以用Print方法來實現(xiàn)。4數(shù)組元素的復(fù)制單個數(shù)組元素可以像簡單變量一樣從一個數(shù)組復(fù)制到另一個數(shù)組,二維數(shù)組中的元素可以復(fù)制到另一個二維數(shù)組中的某個元素,也可以復(fù)制到一個一維數(shù)組中的某個元素,并且反之亦然(二)For EachNext語句For EachNext語句類似于ForNext語句,兩者都用來
5、執(zhí)行指定重復(fù)次數(shù)的一組操作,但For EachNext語句專門用于數(shù)組或?qū)ο蟆凹稀保ū緯簧婕凹希?,其一般格式為:For Each成員In 數(shù)組循環(huán)體Exit ForNext成員這里的“成員”是一個變體變量,它是為循環(huán)提供的,代表的是數(shù)組中的每個元素?!皵?shù)組”是一個數(shù)組名,沒有括號和上下界。四、數(shù)組的初始化用 Array函數(shù)來給數(shù)組元素賦值,其格式為:數(shù)組變量名=Arra(數(shù)組元素值)注意,Array函數(shù)只適用于一維數(shù)組。即只能對一維數(shù)組進(jìn)行初始化,不能對二維或多維數(shù)組進(jìn)行初始化。五、控件數(shù)組(一)基本概念控件數(shù)組由一組相同類型的控件組成,這些控件共用一個相同的控件名,具有同樣的屬性設(shè)置。
6、數(shù)組中的每個控件都有唯一的索引號(IndexNumber),即下標(biāo),其所有元素的Name屬性必須相同。控件數(shù)組的每個元素都有一個與之關(guān)聯(lián)的下標(biāo),或稱索引(Index),下標(biāo)值由Index屬性指定。Index屬性與控件數(shù)組中的某個元素有關(guān)(二)建立控件數(shù)組通過以下兩種方法來建立控件數(shù)組:第一種方法,步驟如下:(1)在窗體上畫出作為數(shù)組元素的各個控件;(2)單擊要包含到數(shù)組中的某個控件,將其激活;(3)在屬性窗口中選擇“(名稱)”屬性,并鍵入控件的名稱;(4)對每個要加到數(shù)組中的控件重復(fù)(2)、(3)步,鍵入與第(3)步中相同的名稱。當(dāng)對第二個控件鍵入與第一個控件相同的名稱后,Visual Bas
7、ic將顯示一個對話框,詢問是否確實要建立控件數(shù)組。單擊“是”將建立控件數(shù)組,單擊“否”則放棄建立操作。第二種方法,步驟如下:(1)在窗體上畫出一個控件,將其激活;(2)執(zhí)行“編輯”菜單中的“復(fù)制”命令(熱鍵為Ctrl+C),將該控件放入剪貼板;(3)執(zhí)行“編輯”菜單中的“粘貼”命令(熱鍵為Ctrl+V),將顯示一個對話框,詢問是否建立控件數(shù)組;(4)單擊對話框中的“是”按鈕,窗體的左上角將出現(xiàn)一個控件,它就是控件數(shù)組的第二個因素,執(zhí)行“編輯”菜單中的“粘貼”命令,或按熱鍵Ctrl+V,建立控件數(shù)組中的其他元素??丶?shù)組建立后,只要改變一個控件的“Name”屬性值,并把Index屬性置為空(不是
8、0),就能把該控件從控件數(shù)組中刪除??丶?shù)組中的控件執(zhí)行相同的事件過程,通過Index屬性可以決定控件數(shù)組中的相應(yīng)控件所執(zhí)行的操作。 六、記錄(一)記錄類型和記錄類型變量1記錄類型定義格式:Private|Public Type 數(shù)據(jù)類型元素名(下標(biāo)) As 類型名元素名(下標(biāo)) As 類型名End Type2定義記錄類型變量記錄類型變量的定義和基本了類型變量的定義一樣,在引用是有所不同,用“變量元素”的格式應(yīng)用記錄中的成員。(二)記錄類型變量的初始化及其引用1記錄類型變量的初始化用賦值語句或輸入語句對記錄各個成員分別賦值。2記錄類型變量的引用及其操作成員的引用: 記錄變量.成員名七、記錄數(shù)組
9、定義的一般格式:Dim 數(shù)組名(下界To上界) As 記錄名引用記錄數(shù)組元素的成員: 記錄數(shù)組名(下標(biāo)).成員名 訓(xùn)練:一、選擇題1如下數(shù)組聲明語句中正確的是_。A) Dim A(4 5) As IntegerB) Dim A(n,n) As IntegerC) Dim A(4,5) As IntegerD) Dim A4,5 As Integer3語句Option Base 1:Dim a(3,4)定義的數(shù)組所包含的數(shù)組元素的個數(shù)是_。A) 7B) 12C) 15D) 204要分配存放如下方陣的數(shù)據(jù),正確的且最節(jié)約存儲空間的數(shù)組聲明語句是_。 1.1 2.2 3.3 4.4 5.5 6.6A
10、) Dim a(6) As SingleB) Dim a(2,3) As SingleC) Dim a(2 To 3,-3 To 1) As SingleD) Dim a(1,2) As Integer5設(shè)有數(shù)組聲明:Dim a(-2 To 4,3 To 6),則下面引用數(shù)組元素正確的是_。A) a(-2,3)B) a(5)C) a-2,4D) a(-1,7)6用下面語句定義的數(shù)組元素個數(shù)是_。Dim A(-3 To 5) As IntegerA) 6B) 7C) 8D) 97語句Dim arr(-3 To 5,2 To 6) As Integer定義的數(shù)組元素有_。A) 45B) 40C)
11、11D) 548以下程序輸出的結(jié)果是_。Option Base 1Private Sub Form_Click()Dim a,B(3,3)a=Array(1,2,3,4,5,6,7,8,9)For i=1 To 3For j=1 To 3B(i,j)=a(i*j)If(i=j) Then print Tab(j*3);format(B(i,j),#);Next jPrintNext iEnd SubA) 1 2 3 4 5 6 7 8 9B) 1 2 4 3 6 9C) 1 4 7 2 4 6 3 6 9D) 1 2 3 4 6 99在窗體上面畫一個命令按鈕,然后編寫如下事件過程:Option
12、 Base 1Private Sub Command1_Click()Dim aa=Array(1,2,3,4)j=1For i=4 To 1 Step -1s=s+a(i)*jj=j*10Next iPrint sEnd Sub運行上面的程序,單擊命令按鈕,其輸出結(jié)果是_。A) 4321B) 12C) 34D) 123410在窗體上畫一個名稱為Text1的文本框和一個名稱為Command1的命令按鈕,然后編寫如下事件過程:Private Sub Command1_Click()Dim array1(10,10) As IntegerDim i,j As IntegerFor i=1 To 3
13、For j=2 To 4array1(i,j)=i+jNext jNext iText1.Text=array1(2,3)+array1(3,4)End Sub程序運行后,單擊命令按鈕,在文本框中顯示的值是_。A) 12B) 13C) 14D) 1511在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下事件過程:Private Sub Command1_Click()Dim i As Integer,j As IntegerDim a(10,10) As IntegerFor i=1 To 3For j=1 To 3a(i,j)=(i-1)*3+jPrint a(i,j);Next
14、jPrint Next iEnd Sub程序運行后,單擊命令按鈕,在窗體上顯示的值是_。A) 1 2 3 2 3 4 3 6 9B) 2 3 4 3 4 5 4 5 6C) 1 4 7 2 5 8 3 6 9D) 1 2 3 4 5 6 7 8 912設(shè)有如下程序:Option Base 1Private Sub Form_Click()Dim aDim i As Integera=Array(1,2,3,4,5,6,7,8,9)For i=0 To 3Print a(5-i);Next iEnd Sub程序運行后,單擊命令按鈕,在窗體上顯示的值是_。A) 5 4 3 2 B) 6 5 4 3
15、C) 4 3 2 1 D) 7 6 5 413執(zhí)行以下Command1的Click事件過程在窗體上顯示_。Option Base 1Private Sub Command1_Click()Dim aa=Array(a,b,c,d,e,f,g)Print a(1);a(3);a(5)End SubA) abcB) bdfC) aceD) 出錯14設(shè)有如下程序:Dim a(3,3) As IntegerFor m=1 To 3For n=1 To 3a(m,n)=(m-1)*3+nNext nNext mFor m=2 To 3For n=1 To 2Print a(n,m);Next nNext
16、 m運行后輸出的結(jié)果是 _。A) 2 5 3 6B) 2 3 5 6C) 4 7 5 8D) 4 5 7 815下列程序段的執(zhí)行結(jié)果為_。Dim A(4)n=3A(1)=1For k=0 To n-1For P=1 To k+1X=k+2-PA(X)=A(x)+A(x-1)If km1 Thenm1=a(i)m2=iEnd IfNext iEnd IfPrint m1Print m2End Sub4寫出當(dāng)發(fā)生Command1_Click事件后,下面程序的運行結(jié)果。Private Sub Command1_Click()Dim a(10) As Integer, p(2) As Integer,
17、i As integer,k As Integerk=5For i=0 To 9a(i)=iNext iFor i=0 To 2p(i)=a(i*(i+1)Next iFor i=0 To 2k=k+p(i)*2Next iPrint kEnd Sub5寫出當(dāng)發(fā)生Command1_Click事件后,下面程序的運行結(jié)果。Private Sub Command1_Click()Dim y As Integer,i As IntegerDim a(8) As Integery=18 : i=0Do a(i)=y Mod 2i=i+1y=y2Loop Until y1For j=i-1 To 0 St
18、ep -1Print a(j)Next jEnd Sub6寫出當(dāng)發(fā)生Command1_Click事件后,下面程序的運行結(jié)果。Private Sub Command1_Click()Dim B(2,2) As IntegerDim i,k,t As IntegerFor i=0 To 2For j=0 To 2B(i,j)=jNext jNextit=1For i=0 To 2For j=i To 2t=t+B(i,B(j,j)Next jNext i Print tEnd Sub7寫出當(dāng)發(fā)生Command1_Click事件后,下面程序的運行結(jié)果。Option Base 1Private Sub
19、 Command1_Click()Dim aa(4,4) As IntegerDim i,s As Integers=0For i=1 To 4For j=1 To 4aa(i,j)=(i-1)*4+j*2Next jNext iFor i=1 To 4s=s+aa(i,1)Next iPrint sEnd Sub8寫出下面程序的運行結(jié)果。Private Sub Command1_Click()Dim a(1 To 10)Dim p(1 To 4)k=5For i=1 To 10a(i)=i+1Next iFor i=1 To 4p(i)=a(i*2)Next iFor i=1 To 4k=k
20、+p(i)*2Next iPrint kEnd Sub四、程序填空題1下面程序的功能是用”冒泡”法將數(shù)組a中的10個整數(shù)按序排列,閱讀程序并填空。Option Base 1Private Sub Command1_Click()Dim aa=Array(678,45,324,528,439,387,87,875,273,823)For i=【1 】For j=【2 】If a(j) 【3 】a(j+1) Thena1=a(j)a(j)=a(j+1)a(j+1)=a1End IfNext jNext iFor i=1 To 10Print a(i)Next iEnd Sub2以下程序代碼使用二維
21、數(shù)租A表示矩陣實現(xiàn)單擊命令按鈕Command1時使矩陣的兩條對角線上的元素值全為1,其余元素值全為0,閱讀程序并填空。Option Base 1Private Sub Command1_Click()Dim A(4,4)For i=1 To 4For j=1 To 4A【1 】=0Next jA【2 】=1A【3 】=1Next iFor i=1 To 4For j=1 To 4Print A(i,j);Next jPrintNext iEnd Sub3以下程序的功能是從鍵盤上輸入3行4列的數(shù)組,求出它的每行最大值及其下標(biāo),閱讀程序并填空。Option base 1Private Sub Fo
22、rm_Click()Dim a(3,4) As IntegerDim i As Integer,j As IntegerDim max(3) As Integer,col(3) As IntegerFor i=1 To 3For j=1 To 4a(i,j)=InputBox(請輸入一個元素值)Next jNext iFor i=1 To 3max(i)=a(i,1) : 【1 】For j=2 To 4If max(i)a(i,j) Thenmax(i)=a(i,j) : 【2 】End IfNext iPrint 數(shù)組元素值為,最大值,最大值下標(biāo)For i=1 To 3For j=1 To
23、 4【3 】Next j【4 】Next iEnd Sub4下面程序的功能是對具有10個元素的數(shù)組a中的元素進(jìn)行選擇法排序,閱讀程序并填空。Option base 1Private Sub Form_Click()Dim a(10) As Integer,i As Integer,j As IntegerDim k As IntegerFor i=1 To 10a(i)=InputBox(請輸入一個數(shù)組元素值)Next iFor i=1 To 9【1 】For j=i+1 To 10If 【2 】Then k=jNext jIf ki Thent=a(k) : 【3 】 : a(i)=tEnd
24、 IfNext iFor i=1 To 10Print a(i);Next iEnd Sub5以下程序的功能是把一個具有三行四列的A矩陣和一個具有四行三列的B矩陣相乘的結(jié)果存放到C矩陣中,閱讀程序并填空。Option Base 1Private Sub Command1_Click()Dim a(3,4) As Integer,b(4,3) As IntegerDim c(3,3) As Integer,i As Integer,j As Integer,k As IntegerFor i=1 To 3For j=1 To 4a(i,j)=i+jNext jNext iFor i=1 To 4For j=1 To 3b(i,j)=i*jNext jNe
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 華為管理課件
- 河北96年中考數(shù)學(xué)試卷
- 淮海小升初數(shù)學(xué)試卷
- 健康管理師課件口碑
- 2025屆黑龍江省慶安縣第三中學(xué)物理高二下期末質(zhì)量跟蹤監(jiān)視試題含解析
- 2025年中國植物蛋白飲料行業(yè)市場調(diào)查研究及投資前景展望報告
- 交評報告匯報范本1看丹橋工業(yè)區(qū)項目交通影響評價
- 易拉蓋產(chǎn)品項目投資可行性研究分析報告(2024-2030版)
- 2025年中國停車場建設(shè)行業(yè)發(fā)展趨勢及投資前景預(yù)測報告
- 2025年廣州地鐵建設(shè)市場調(diào)研報告
- 棗莊滕州市屬國有企業(yè)招聘考試真題2024
- 防火防爆培訓(xùn)要點
- 法院輔警筆試題及答案
- 2025實驗室管理員聘用合同書
- 民辦學(xué)校托管合同協(xié)議
- 景區(qū)安全生產(chǎn)管理規(guī)章制度大全
- 陜西行政執(zhí)法資格考試題題庫及答案
- Unit1知識梳理魯教版(五四制)英語六年級上冊
- 2025-2030中國多西他賽行業(yè)市場深度調(diào)研及發(fā)展趨勢與投資前景預(yù)測研究報告
- 林地贈予合同協(xié)議
- 以患者為中心的數(shù)字化腫瘤科管理平臺建設(shè)
評論
0/150
提交評論