計(jì)算機(jī)軟件及應(yīng)用_第1頁(yè)
計(jì)算機(jī)軟件及應(yīng)用_第2頁(yè)
計(jì)算機(jī)軟件及應(yīng)用_第3頁(yè)
計(jì)算機(jī)軟件及應(yīng)用_第4頁(yè)
計(jì)算機(jī)軟件及應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.,1,第六章 數(shù)組,靜態(tài)數(shù)組 動(dòng)態(tài)數(shù)組 數(shù)組的基本操作 控件數(shù)組,.,2,VB學(xué)習(xí)群,.,3,數(shù)組的概念,數(shù)組:若干具有相同數(shù)據(jù)類型的數(shù)據(jù)集合 數(shù)組元素:數(shù)組中的基本單位構(gòu)成 格式: Dim 數(shù)組名(下標(biāo))As 類型 下標(biāo):只能是常數(shù),用以說(shuō)明數(shù)組的維數(shù)和每維的大小。 dim a(10) as interger ; a(1 to 5, 3 to 8) dim c(2,3) as interger;,缺省為Variant 類型,.,4,數(shù)組,101,102,103,104,105,106,.,5,數(shù)組的分類,按數(shù)組的內(nèi)存區(qū)開(kāi)辟時(shí)間的不同分:,靜態(tài)數(shù)組(Static),動(dòng)態(tài)數(shù)組(Dynamic)

2、,數(shù)組,靜態(tài)數(shù)組(定長(zhǎng)數(shù)組):數(shù)組大小確定的數(shù)組。 動(dòng)態(tài)數(shù)組(可變長(zhǎng)數(shù)組):數(shù)組大小不確定,在程序運(yùn)行時(shí)分配存儲(chǔ)空間。,.,6,數(shù)組的分類,按數(shù)組的維數(shù)分:,數(shù)組,一維數(shù)組:具有一個(gè)下標(biāo)的數(shù)組,二維數(shù)組:具有兩個(gè)下標(biāo)的數(shù)組,多維數(shù)組:具有多個(gè)下標(biāo)的數(shù)組,.,7,數(shù)組的下標(biāo),下標(biāo):即,數(shù)組的上下界,指明下標(biāo)可以使用的最大值和最小值,用以說(shuō)明數(shù)組的維數(shù)和每維的大小。 格式如下: 下界 To上界 1)下標(biāo)中如果出現(xiàn)上界,上界必須大于下界。-3 To 8 2)定義多維數(shù)組時(shí),各下標(biāo)之間用逗號(hào)分隔開(kāi) 3)如果不指定下界 To,則數(shù)組元素下標(biāo)的下界用Option Base語(yǔ)句控制,如果沒(méi)有用Option語(yǔ)

3、句,下標(biāo)下界的缺省值為0,.,8,數(shù)組的下標(biāo),實(shí)例1:dim a%(10) 說(shuō)明:數(shù)組a是一個(gè)一維整型數(shù)組,共有11個(gè)數(shù)組元素,下標(biāo)范圍從010。 實(shí)例2:Dim b(3,4) as long 說(shuō)明:數(shù)組b是一個(gè)二維長(zhǎng)整型數(shù)組,第一維的下標(biāo)范圍03,第二維的下標(biāo)范圍為04,共分配45個(gè)空間,.,9,二維數(shù)組各元素的排列,.,10,輸出斐波那契級(jí)數(shù)的前20項(xiàng) 1,1,3,4,7,11,18, Private Sub Form_Click() Dim F(20) As Integer, I As Integer F(1) = 1 : F(2) = 1 第一、第二項(xiàng)為1 For I = 3 To 2

4、0 第三項(xiàng)起每項(xiàng)為前二項(xiàng)之和 F(I) = F(I - 2) + F(I - 1) Next I For I = 1 To 20 在窗體上輸出 Print F(I); If I Mod 5 = 0 Then Print Next I End Sub,如果加入Option Base 1 程序需要怎么修改?,.,11,Option語(yǔ)句,格式:Option Base n 功能:指定數(shù)組下標(biāo)下界的缺省值 說(shuō)明: 1)n為數(shù)組下標(biāo)指定的下界,它只能是0或者1。如果不使用該語(yǔ)句,系統(tǒng)默認(rèn)下界值為0。 2)Option Base語(yǔ)句只能出現(xiàn)在窗體層或模塊層,不能出現(xiàn)在過(guò)程中,且必須位于數(shù)組定義之前。 3)如

5、果定義多維數(shù)組,則下標(biāo)的設(shè)定值對(duì)每一維都有效。,.,12,數(shù)組下標(biāo)測(cè)試函數(shù),格式:Lbound(數(shù)組名,維) Ubound(數(shù)組名,維) 功能:Lbound函數(shù)返回?cái)?shù)組中指定維的下界 Ubound函數(shù)返回?cái)?shù)組中指定維的上界 1)格式中,維指數(shù)組中要測(cè)試的某一維數(shù) 2)對(duì)于一維數(shù)組來(lái)說(shuō),則,維可以省略。如果測(cè)試多維數(shù)組,則不能省略。,.,13,數(shù)組下標(biāo)測(cè)試函數(shù),Option Base 1 Dim y(1 To 22,2 to 20,-3 to 6) Dim x(20) Print Lound(y,1),Ubound(y,1) Print Lound(y,2),Ubound(y,2) Print

6、Lound(y,3),Ubound(y,3) Print Lound (x), Ubound (x) 問(wèn)輸出結(jié)果為多少?,.,14,數(shù)組的基本操作,1.數(shù)組的引用 2.數(shù)組的輸入和輸出 3.數(shù)組的賦值,.,15,數(shù)組的引用,數(shù)組的引用通常指對(duì)數(shù)組元素的引用,數(shù)組元素的引用形式為: 數(shù)組名(下標(biāo)) 說(shuō)明:1.二維或者多維數(shù)組,引用時(shí)必須給出兩個(gè)或多個(gè)下標(biāo) a(1)(2) 2.引用數(shù)組元素時(shí),數(shù)組元素的下標(biāo)必須在建立數(shù)組時(shí)指定的范圍內(nèi),否則將發(fā)生“下標(biāo)越界”的情況。,.,16,數(shù)組的輸入,1.使用Array函數(shù) 格式:數(shù)組變量名Array(數(shù)組元素值) 注意: 1.Array只能對(duì)一維數(shù)組進(jìn)行初始

7、化,不能對(duì)二維數(shù)組進(jìn)行初始化。 2.數(shù)組變量只能是變體(Variant)類型。,.,17,Option Base 1 Private Sub Form_Click() Dim a As Variant, b As Variant a = Array(1, 2, 3, 4, 5, 6) b = Array(One, Two, Three) For Each x In a Print x; ; Next x Print For i = 1 To UBound(b) Print b(i); ; Next i Print End Sub,.,18,數(shù)組的輸入,2.使用循環(huán)語(yǔ)句 Option Base

8、1 Private Sub Form_Click() Dim a(10) As Integer For i = 1 To 10 注意數(shù)組從1開(kāi)始 a(i) = Val(InputBox(請(qǐng)輸入10個(gè)數(shù)字) Next i For Each x In a Print x; ; Next x End Sub,.,19,數(shù)組的輸入,Dim A(5,5) For I=1 to 3 For j=1 to 4 A(I,J)=I*J Next J Next I For N=1 to 2 For M=1 to 3 Print A(M,N) Next M Next N,A 1 2 3 4 2 4 B 1 2 3

9、4 6 8 C 1 2 3 2 4 6 D 1 2 3 6 3 6,.,20,For Each-Next語(yǔ)句,For EachNext語(yǔ)句專門用于數(shù)組操作 格式: For Each 成員 In 數(shù)組 循環(huán)體 Exit For Next 成員,.,21,For Each-Next語(yǔ)句,成員:是一個(gè) 變體變量(Variant),實(shí)際代表了數(shù)組中得每個(gè)元素,它可以代表任意類型得數(shù)組元素。 “數(shù)組”:是一個(gè)沒(méi)有括號(hào)和上下界得數(shù)組名。 For EachNext語(yǔ)句不能用于用戶自定義類型得數(shù)組,因?yàn)閂ariant不能包含用戶自定義類型。,.,22,Option Base 1 Private Sub For

10、m_Click() Dim a(10) As Integer For i = 1 To 10 a(i) = Int(100 * Rnd) Next i For Each x In a Print x; ; Next x End Sub,.,23,Option Explicit Option Base 1 Private Sub Commandl_Click() Dim A(2,2) As Integer,B(2,2) As Integer,C(2,2)As Integer Dim n As Integer, m As Integer, S As Integer, k As Integer A(

11、1,1) =3:A(1,2) =1:A (2, 1)=-2:A(2, 2)=5 B(1,1) =2:B(1,2)=-3:B(2,1)=6:B(2, 2)=1 For n=1 TO 2 For m=1 TO 2 S=0 For k=l TO 2 S=S+A(n,k) *B(k,m) C(n,m)=S Next k Next m Next n For n=1 TO 2 For m=1 TO 2 Print C(n,m);Spc(3); Next m Print Next n End Sub,.,24,(1)以下關(guān)于語(yǔ)句“Option Base1”正確的說(shuō)法是( )。 (A)其功能是聲明數(shù)組下標(biāo)的默

12、認(rèn)上界 (B)其功能是定義動(dòng)態(tài)數(shù)組 (c)其功能是聲明數(shù)組下標(biāo)的默認(rèn)下界 (D)其功能是定義靜態(tài)數(shù)組 (2)以于關(guān)于語(yǔ)句“Option Explicit”正確的說(shuō)法是( )。 (A)表明此模塊沒(méi)有通用過(guò)程 (B)表明此模塊的通用過(guò)程不能被其他模塊調(diào)用 (c)表明此模塊變量不聲明可以直接使用 (D)表明此模塊變量必須先聲明后使用 (3)程序運(yùn)行完成后,Print C(n,m)語(yǔ)句輸出的結(jié)果是( )。 (A)0 -16 (B)12 26 (C)26 11 (D)12 -8 -13 11 -8 11 12 -8 26 11,.,25,動(dòng)態(tài)數(shù)組(Dynamic),動(dòng)態(tài)數(shù)組:僅在運(yùn)行時(shí)開(kāi)辟內(nèi)存區(qū),當(dāng)程序

13、不運(yùn)行時(shí),動(dòng)態(tài)數(shù)組不占據(jù)內(nèi)存空間。 格式:ReDim Preserve數(shù)組名(下標(biāo)) as 類型 功能:重新定義動(dòng)態(tài)數(shù)組,按定義的上下界重新分配存儲(chǔ)單元。,.,26,動(dòng)態(tài)數(shù)組(Dynamic),說(shuō)明: 1)動(dòng)態(tài)數(shù)組的定義分兩步: 1.先在窗體層、標(biāo)準(zhǔn)模塊或過(guò)程中用Dim或Public聲明一個(gè)沒(méi)有下標(biāo)的數(shù)組(括號(hào)不能省略),這樣就將數(shù)組聲明為動(dòng)態(tài)數(shù)組。 2.在過(guò)程中用ReDim語(yǔ)句定義帶下標(biāo)的數(shù)組,給數(shù)組指定實(shí)際的元素個(gè)數(shù)。,.,27,動(dòng)態(tài)數(shù)組(Dynamic),ReDim語(yǔ)句是一個(gè)可執(zhí)行語(yǔ)句,并且只能出現(xiàn)在過(guò)程中。 動(dòng)態(tài)數(shù)組的下標(biāo)用變量來(lái)表示。也可以是有確定值的變量。 聲明動(dòng)態(tài)數(shù)組時(shí)并不指定數(shù)

14、組的維數(shù),數(shù)組的維數(shù)由第一次出現(xiàn)的ReDim語(yǔ)句指定。 Preserve選項(xiàng):當(dāng)改變?cè)袛?shù)組最末維的大小時(shí),使用此關(guān)鍵字可以保持?jǐn)?shù)組中原來(lái)的數(shù)據(jù)。,.,28,動(dòng)態(tài)數(shù)組(Dynamic),如果使用了 Preserve 關(guān)鍵字,就只能重定義數(shù)組最末維的大小,且根本不能改變維數(shù)的數(shù)目。例如,如果數(shù)組就是一維的,則可以重定義該維的大小,因?yàn)樗亲钅┚S,也是僅有的一維。不過(guò),如果數(shù)組是二維或更多維時(shí),則只有改變其最末維才能同時(shí)仍保留數(shù)組中的內(nèi)容。下面的示例介紹了如何在為已有的動(dòng)態(tài)數(shù)組增加其最末維大小的同時(shí)而不清除其中所含的任何數(shù)據(jù)。 ReDim X(10, 10, 10) . . . ReDim Pre

15、serve X(10, 10, 15),.,29,動(dòng)態(tài)數(shù)組舉例,Option Explicit Option Base 1 數(shù)組下標(biāo)從1開(kāi)始 Private Sub Command1_Click() Dim i As Integer Dim MyArray() As Integer: Rem 聲明動(dòng)態(tài)數(shù)組。 ReDim MyArray(5): Rem 分配 5 個(gè)元素。 For i = 1 To 5 循環(huán) 5 次。 MyArray(i) = i 初始化數(shù)組。 Next i Print 第一次定義的動(dòng)態(tài)數(shù)組: For i = 1 To 5 Print MyArray(i); Next i Pri

16、nt End sub,.,30,控件數(shù)組,控件數(shù)組由一組相同的控件組成,這些控件共用一個(gè)數(shù)組名,具有相同的屬性,數(shù)組中的每個(gè)控件系統(tǒng)都指定一個(gè)唯一的索引號(hào),即控件數(shù)組的下標(biāo)。,.,31,列表框和組合框,列表框主要屬性 List屬性:用于列出列表框中的所有項(xiàng)目 格式: x$=列表框名.List(下標(biāo)) 也可以改變列表框中的某一項(xiàng)的值。 格式: 列表框名list(下標(biāo))字符串,.,32,列表框,ListCount:用于返回在列表框中的列表項(xiàng)數(shù)只能在運(yùn)行時(shí)使用。 格式:列表框.ListCount ListIndex屬性:當(dāng)前選中的列表框項(xiàng)的索引,表項(xiàng)在列表中的位置由索引值指定。第一項(xiàng)的索引項(xiàng)為0。如

17、果沒(méi)有選擇項(xiàng)目,ListIndex-1 Text屬性:用于得到當(dāng)前列表項(xiàng)的內(nèi)容,.,33,列表框,Colunms屬性:設(shè)置列表框按幾列顯示。 0按單列顯示(默認(rèn))列表項(xiàng)較多時(shí)出現(xiàn)垂直滾動(dòng)條 1按單列顯示,列表項(xiàng)較多時(shí)出現(xiàn)水平滾動(dòng)條 2按多列顯示,.,34,列表框,Sorted屬性:設(shè)置列表框中的各列表項(xiàng)是否按字母數(shù)字自動(dòng)排序,True為自動(dòng)排序,F(xiàn)alse為不自動(dòng)排序(默認(rèn)) MultiSelect屬性:用于設(shè)置是否允許同時(shí)選擇多個(gè)列表項(xiàng)。 0每次只能選擇一個(gè)項(xiàng)目 1允許通過(guò)鼠標(biāo)單擊或者按下空格鍵選擇多個(gè)項(xiàng)目 2為允許Shift單擊鼠標(biāo)或Shift+箭頭鍵選擇連續(xù)多個(gè)項(xiàng)目,Ctrl單擊鼠標(biāo)可選

18、擇多個(gè)不連續(xù)項(xiàng)目。,.,35,列表框的事件,列表框的方法 AddItem方法:用于在列表框中插入一個(gè)列表框 格式:列表框.AddItem 項(xiàng)目字符串,索引值 Clear和RemoveItem方法:Clear方法和RemoveItem方法都是用于刪除列表項(xiàng),Clear方法用于清除列表框中的全部?jī)?nèi)容,而RemoveItem方法每次只能刪除一個(gè)項(xiàng)目。 格式:列表框.Clear 列表框.RemoveItem 索引值,.,36,列表框,例:利用列表框創(chuàng)建一個(gè)輸入省市名稱的界面,并能將選擇的省市名稱加入到另一個(gè)列表框內(nèi)。 Option Explicit Private Sub Command1_Click

19、() List1.AddItem Text1.Text Text1.Text = End Sub Private Sub Command2_Click() List2.AddItem List1.Text Text2.Text = List2.ListCount End Sub,.,37,例題1,1.將列表框中添加1-10 2.顯示列邊框中的個(gè)數(shù) 3.顯示列邊框中具體某一個(gè)項(xiàng)的值,.,38,例題,1.隨機(jī)生成10個(gè)100-1000之間的數(shù) 2.將10個(gè)數(shù)中是偶數(shù)的添加到列邊框中 3.顯示數(shù)字的個(gè)數(shù)與和,.,39,隨機(jī)生成10個(gè)數(shù),Dim a(9) As Integer Randomize Fo

20、r i = 0 To 9 a(i) = Int(901 * Rnd + 100) Next i,.,40,組合框,Style屬性:用于確定組合框的類型和顯示方式。 取值為0、1、2 0下拉組合框(默認(rèn)),由一個(gè)文本框和一個(gè)下拉列表框組成,用戶可以在文本框中輸入也可單擊列表框來(lái)選擇列表項(xiàng)。 1簡(jiǎn)單組合框,由一個(gè)文本框和一個(gè)標(biāo)準(zhǔn)列表框組成,列表框的下拉項(xiàng)一直展開(kāi)顯示在屏幕上。 2下拉列表框,不允許用戶輸入文本,只能從下拉列表框選擇。,.,41,單選框,1.Value 屬性:設(shè)置單選按鈕是否被選中,1為選中 2.Click事件:鼠標(biāo)單擊事件,.,42,復(fù)選框,1.Value 設(shè)置復(fù)選框是否被選中,1

21、為選中 2.Click事件,.,43,排序算法,1.比較交換法排序 2.選擇法排序 3.冒泡法排序,.,44,數(shù)字的交換問(wèn)題,如何實(shí)現(xiàn)a、b兩個(gè)數(shù)字的交換 T=a A=b B=t,.,45,比較交換法排序(交換值),基本方法: 對(duì)n個(gè)數(shù)按升序排列,先將第一個(gè)數(shù)依次與第二個(gè)數(shù)到第n個(gè)數(shù)逐一比較,如果a(1)a(j)(j=2,3,n),則交換a(1),a(j)的值。從而將最小值存放在a(1)中。 然后將第二個(gè)數(shù)依次與第三個(gè)數(shù)到第n個(gè)數(shù)逐一比較,如a(2)a(j)(j=3,4n),則交換a(2),a(j)的值。將第二個(gè)數(shù)到第n個(gè)數(shù)中最小值放在a(2)中。 重復(fù)上述步驟。,.,46,Option Ex

22、plicit Option Base 1 Private Sub Form_Click() Dim a As Variant Dim n As Integer, i As Integer, j As Integer, t As Integer Dim ii As Variant a = Array(56, 90, -123, 58, 5, 10, 100, 54, 66) n = UBound(a) Print 排序前的10個(gè)數(shù)為: For Each ii In a Print ii; “; Next ii Print,.,47,For i = 1 To n - 1 For j = i + 1 To n If a(i) a(j) Then t = a(i) a(i) = a(j) a(j) = t End If Next j Next i Print 排序后的10個(gè)數(shù)為: For i = 1 To n Print a(i); ; Next i End Sub,.,48,比較交換法排序,For i = 1 To n - 1 For j = i + 1

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論