二級(jí)VB等級(jí)考試輔導(dǎo)第3講_第1頁
二級(jí)VB等級(jí)考試輔導(dǎo)第3講_第2頁
二級(jí)VB等級(jí)考試輔導(dǎo)第3講_第3頁
二級(jí)VB等級(jí)考試輔導(dǎo)第3講_第4頁
二級(jí)VB等級(jí)考試輔導(dǎo)第3講_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2012年9月等級(jí)考試輔導(dǎo)二級(jí)Visual Basic1第三講 數(shù)組 第7章 控件數(shù)組2 第7章 常用算法3 第7章 數(shù)組基礎(chǔ)1第七章 數(shù)組1靜態(tài)數(shù)組2動(dòng)態(tài)數(shù)組1. 數(shù)組定義(1)一維數(shù)組的定義Dim 數(shù)組名 (下標(biāo)下界 To 下標(biāo)上界) As 類型名稱(2)多維數(shù)組的定義Dim 數(shù)組名 (下標(biāo)1, 下標(biāo)2 ,下標(biāo)3 ) As 類型名稱 考點(diǎn)1 數(shù)組的概念數(shù)組必須先定義后使用靜態(tài)數(shù)組上下界必須是常量考點(diǎn)1 數(shù)組的概念數(shù)組定義的關(guān)鍵字Dim:在窗體模塊或標(biāo)準(zhǔn)模塊中,定義窗體或標(biāo)準(zhǔn)模塊數(shù)組,也可用于過程中。ReDim:用于過程中Static:用于過程中Public:在標(biāo)準(zhǔn)模塊中,用于定義全局?jǐn)?shù)組當(dāng)

2、用Dim語句定義數(shù)組時(shí),該語句把數(shù)值數(shù)組中的元素全都初始化為0;把字符串?dāng)?shù)組中的元素全都初始化為空字符串。.x數(shù)組aa(1)a(2)a(3)a(4)a(5)Dim x As integerDim a(1 to 5) As Integerx=2a(1)=2x=x+2a(1)=a(1)+2舉例2. 注意(1)數(shù)組名與變量名命名規(guī)則相同。(2)若省略下標(biāo)下界,則默認(rèn)下界從零開始。(3)Dim a%(1 to 5)(4)可使用LBound(數(shù)組,維)和UBound(數(shù)組,維)來測(cè)試需要知道數(shù)組的下界值和上界值。(5)在同一個(gè)過程中,數(shù)組名不能與變量名同名。(6)每一維的大小:上界-下界+1(7)Vis

3、ual Basic中,一個(gè)數(shù)組中的元素可以是相同類型的數(shù)據(jù),也可以是不同類型的數(shù)據(jù)。 可用下面語句設(shè)置下界Option base nn:只能取0或1考點(diǎn)1 數(shù)組的概念考點(diǎn)1 數(shù)組的概念2. 注意以下寫法哪個(gè)是錯(cuò)誤的?Static a(6)a(1)=1a(2)=“Good Luck”a(3)=Timea(4)=3.1415926a(5)=&HABCDa(6)=#5/18/2006#Dim a(6) As Integera(1)=1a(2)=“Good Luck”a(3)=Timea(4)=3.1415926a(5)=&HABCDa(6)=#5/18/2006#考點(diǎn)1 數(shù)組的概念3.一維數(shù)組和二維

4、數(shù)組一個(gè)數(shù)組如果只用一個(gè)下標(biāo)就能確定一個(gè)數(shù)組元素在整個(gè)數(shù)組中的位置,則稱該數(shù)組為一維數(shù)組。一個(gè)數(shù)組如果需要兩個(gè)下標(biāo)才能確定一個(gè)數(shù)組元素在整個(gè)數(shù)組中的位置,則稱該數(shù)組為二維數(shù)組。二維數(shù)組定義的格式:Dim 數(shù)組名(下標(biāo)1,下標(biāo)2) As 數(shù)據(jù)類型2012年3月(17)設(shè)有如下數(shù)組聲明語句:Dim arr(-2 to 2,0 to 3) As Integer該數(shù)組所包含的數(shù)組元素個(gè)數(shù)是A)20 B)16 C)15 D)12選擇(30)題P82-歷年真題1個(gè)二維數(shù)組可以存放1個(gè)矩形。在程序開始有語句OptionBase0,則下面定義的數(shù)組中正好可以存放1個(gè)4*3矩陣(即只有12個(gè)元素)的是_。(20

5、07年4月選擇題第15題)(A)Dima(-2To0,2)ASInteger (B)Dima(3,2)ASInteger(C)Dima(4,3) ASInteger(D)Dima(-1To-4,-1To-3) ASInteger 第七章 數(shù)組1靜態(tài)數(shù)組2動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組1. 動(dòng)態(tài)數(shù)組的定義首先在窗體層、標(biāo)準(zhǔn)模塊或過程中用Dim或Public聲明一個(gè)沒有下標(biāo)的數(shù)組(括號(hào)不能省略)然后在過程中用ReDim語句定義帶下標(biāo)的數(shù)組。2. ReDim語句的格式 ReDim Preserve 數(shù)組名 (下標(biāo)) As 數(shù)據(jù)類型ReDim 不能改變數(shù)組元素的數(shù)據(jù)類型動(dòng)態(tài)數(shù)組3. 說明 (1)一個(gè)程序中,可多次用

6、ReDim語句定義同一個(gè)數(shù)組,隨時(shí)修改數(shù)組中元素的個(gè)數(shù)。注:除了ReDim語句中能用變量作為下標(biāo)外,其他聲明語句中如果要使用下標(biāo)就必須為常量 (2)Preserve參數(shù)的功能是不清除前一次數(shù)組元素的賦值,但使用該參數(shù)只能改變數(shù)組最后一維的大小??蛇@樣編程:ReDim Preserve a (10, UBound (a, 2) + 1) 而不可這樣編程:ReDim Preserve a (UBound (a, 1) + 1, 10)真題以下有關(guān)數(shù)組定義的語句序列中,錯(cuò)誤的是_。A)Static arr1(3) arr1(1) = 100 arr1(2) = Hello arr1(3) = 123

7、.45 B)Dim arr2() As Integer Dim size As Integer Private Sub Command2_Click() size = InputBox(輸入:) ReDim arr2(size) End SubC)Option Base 1 Private SubCommand3_Click() Dim arr3(3) As Integer End Sub (D)Dim n As Integer Private Sub Command4_Click() Dim arr4(n) As Integer End Sub 數(shù)組相關(guān)函數(shù)Lbound(數(shù)組名, 維): 返

8、回?cái)?shù)組中指定維的下界Ubound(數(shù)組名, 維): 返回?cái)?shù)組中指定維的上界Dim y(1 To 12, 5 To 20, -3 To 6)Print Lbound(y, 1), Ubound(y, 1)Print Lbound(y, 2), Ubound(y, 2)Print Lbound(y, 3), Ubound(y, 3)1 125 20-3 6考點(diǎn)2 數(shù)組的基本操作(1)數(shù)組的引用數(shù)組的引用通常是指對(duì)數(shù)組元素的引用,其方法是,在數(shù)組后面的括號(hào)中指定下標(biāo)。(2)數(shù)組元素的輸入數(shù)組元素一般通過For循環(huán)語句及InputBox函數(shù)輸入。(3)數(shù)組元素的輸出數(shù)組元素的輸出可以用Print方法來

9、實(shí)現(xiàn)。 (4)數(shù)組元素的復(fù)制 單個(gè)數(shù)組元素可以像簡單變量一樣從一個(gè)數(shù)組復(fù)制到另一個(gè)數(shù)組,也可在同一個(gè)數(shù)組中進(jìn)行復(fù)制。如:a(2)=a(3)a(5)=b(3,2)c(3,1)=a(1)當(dāng)要復(fù)制整個(gè)數(shù)組時(shí),有時(shí)需要用到For循環(huán)。如果要輸出一個(gè)二維數(shù)組,則需要用到For循環(huán)嵌套。如果要對(duì)一個(gè)二維數(shù)組輸入,則需要用到兩層For循環(huán)嵌套。依此類推在引用數(shù)組元素時(shí),數(shù)組名、類型和尾數(shù)必須和定義數(shù)組時(shí)一致,如引用二維數(shù)組中的元素為:test(3,4)=123考點(diǎn)2 數(shù)組的基本操作For EachNext語句For EachNext語句類似于ForNext語句,兩者都用來執(zhí)行指定重復(fù)次數(shù)的一組操作,但For

10、 EachNext語句專門用于數(shù)組或?qū)ο蟆凹稀保湟话愀袷綖?For Each成員In 數(shù)組 循環(huán)體 Exit For Next成員考點(diǎn)2 數(shù)組的基本操作數(shù)組的初始化:給數(shù)組各元素賦初值 數(shù)組變量名=Array(數(shù)組元素值)數(shù)組變量名就是數(shù)組名,但后面沒有括號(hào);數(shù)組元素值之間要用逗號(hào)分開。數(shù)組變量只能是變體(Variant)類型。Array函數(shù)僅適用于一維數(shù)組初始化。默認(rèn)情況下數(shù)組的下標(biāo)是從0開始的。還可以用For循環(huán)或InputBox函數(shù)來對(duì)數(shù)組元素進(jìn)行初始化賦值。說明:“數(shù)組變量名”是程序中定義的數(shù)組名,其后既沒有括號(hào)也沒有下標(biāo);在定義時(shí),它作為變量定義,作為數(shù)組使用,因此定義時(shí)不需要指

11、定上下界及其維數(shù)。它不能是某一具體數(shù)據(jù)類型,只能是變體型?!皵?shù)組元素值”是賦給各數(shù)組元素的具體值,每個(gè)值之間用逗號(hào)分隔。以下定義數(shù)組或給數(shù)組元素賦值的語句中,正確的是_。(A)Dim a As Variant a=Array(1,2,3,4,5)(B)Dim a(10) As Integer a=Array(1,2,3,4,5)(C)Dim a%(10) a(1)=ABCDE“(D)Dim a(3),b(3) As Integer a(0)=0 a(1)=1 a(2)=2 b=a真題靜態(tài)數(shù)組不允許整體賦值Option Base 1Private Sub Command1_Click()Dim

12、c As Integer,d As Integerd=0c=6x=Array(2,4,6,8,10,12)For i=1 To 6 If x (i)c Then d=d+x(i) c=x(i) Else d=d-c End IfNext iPrint dEnd Sub程序運(yùn)行后,如果單擊命令按鈕,則在窗體上輸出的內(nèi)容為_。(A)10 (B)16 (D)20真題(C)12 上機(jī)真題5.1【例4.1】捷成38-3:數(shù)組求平均值第七章 數(shù)組1求最值2排序3 查找P89-考點(diǎn)3 最值算法算法描述求最大值時(shí),假設(shè)第一個(gè)數(shù)為最大值,然后將每個(gè)數(shù)逐個(gè)與最大值相比較,若比最大值大則將該數(shù)作為新的最大值,直到數(shù)

13、組元素比較完。一維數(shù)組:123456789二維數(shù)組:1 2 3 45 6 7 89 1 2 3最值要點(diǎn):數(shù)組、最大值的初始值 Dim a(10) As Integer For i = 0 To 9 a(i) = InputBox(enter a number) Next iMax=a(0)For i = 1 To 9 If a(i) Max Then Max = a(i) End IfNext iMin = a(0)For i = 1 To 9 If a(i) ”)for i=1 to N-1外層循環(huán)N-1次for j=i+1 to N內(nèi)層依賴外層if (S(j) OP S(i))thent=

14、S(i):S(i)=S(j):S(j)=t交換End ifNext jNext I方法:雙重循環(huán)(循環(huán)嵌套)外循環(huán):控制排序趟數(shù)內(nèi)循環(huán):排序過程中的數(shù)組元素下標(biāo)取值869327原始數(shù)據(jù)689327689327683927682297682379第一輪排序冒泡排序8 6 9 3 2 7Option base 1 Dim a As Variant a = Array(56, 90, -123, 58, 5, 10, 100, 53, 66, 518) n = UBound(a) For i = 1 To n - 1 For j = 1 To n - i If a(j) a(j + 1) Then

15、t = a(j): a(j) = a(j + 1): a(j + 1) = t End If Next j Next i 冒泡排序Option base 1Dim a As Variant a = Array(56, 90, -123, 58, 5, 10, 100, 54, 66, 518) n = UBound(a) For i = 1 To n - 1 For j = n To i+1 step -1 If a(j) a(j) Then k = j 如按從大到小排序,則a(k)a(j) Next j If (i k) Then t = a(i): a(i) = a(k): a(k) =

16、t End IfNext i選擇法排序第七章 數(shù)組1求最值2排序3 查找方法:從數(shù)組的第一個(gè)元素(最后一個(gè)元素)開始依次向后(前)與要查詢的數(shù)據(jù)進(jìn)行比較,當(dāng)有數(shù)組元素與被查詢的數(shù)據(jù)相同時(shí),查詢結(jié)束,否則繼續(xù)比較下去,直到所有數(shù)據(jù)元素比較完畢。查詢的結(jié)果有兩種情況:一是查詢成功,二是查詢失?。ㄕ也坏脚c查詢的數(shù)據(jù)相同的數(shù)據(jù)元素)。 順序查找適用于有序或無序數(shù)組 用Do While進(jìn)行順序查找(為待查找的數(shù)):P=1初始化比較位置Do while xS(p) And p N Then 沒找到,處理 Else 找到,處理 End If【例5.4】捷成60-5P65-上機(jī)真題6.3上機(jī)真題【例5.5】捷

17、成13-4P93-考點(diǎn)4 控件數(shù)組由一組相同類型的控件組成共用相同的控件名,即其所有元素的Name屬性相同;數(shù)組中的每個(gè)控件都有唯一的索引(Index) 值,即下標(biāo);除Name和Index屬性外其它屬性可以相同也可以不同;共享相同的事件過程,通過Index參數(shù)來進(jìn)行區(qū)分。Private Sub Option1_Click(Index As Integer) End Sub控件數(shù)組操作建立控件數(shù)組取消控件數(shù)組第一種方法,通過改變已有控件名稱添加控件數(shù)組元素第二種方法,通過復(fù)制現(xiàn)存控件添加數(shù)組元素改變一個(gè)控件的“Name”屬性值,并把Index屬性置為空(不是0),2012年3月(18)現(xiàn)有由多個(gè)

18、單選按鈕構(gòu)成的控件數(shù)組,用于區(qū)別該控件數(shù)組中各控件的屬性是A)Name B)Index C)Caption D)Value2012年3月(19)現(xiàn)有如下一段程序Option Basce 1Private Sub Command1_Click() Dim a a=Array(3,5,7,9) x=1 For i=4 to 1 step -1 s=s+a(i)*x x=x*10 next print sEnd Sub執(zhí)行程序,單擊Command1命令按鈕,執(zhí)行上述事件過程,輸出結(jié)果是A)9753 B)3579 C)35 D)792012年3月(29)有如下程序:Option Base 1Private Sub Co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論