第五章VB中的數(shù)組_第1頁
第五章VB中的數(shù)組_第2頁
第五章VB中的數(shù)組_第3頁
第五章VB中的數(shù)組_第4頁
第五章VB中的數(shù)組_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余3頁可下載查看

下載本文檔

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

文檔簡介

1、第五章VB中的數(shù)組5.1數(shù)組的概念1 引例求1 oo個學(xué)生的平均成績及超過平均成績的人數(shù)。如果用一般變量來表示成績,需要用100個變量,如:markl、mary2、 marklOO。若用數(shù)組,可以只用一個來表示mark(1To 100)。2基本概念數(shù)組:是同類型變量的一個有序的集合。女口: A( 1 To 100 ),表示一個包含100個數(shù)組元素的名為A的數(shù)組。數(shù)組元素:即數(shù)組中的變量。用下標(biāo)表示數(shù)組中的各個元素。表示方法:數(shù)組名(P1, P2,)其中P1、P2表示元素在數(shù)組中的排列位置,稱為“下標(biāo)”。如:A(3,2)代表二維數(shù)組A中第3行第2列上的那個元素。數(shù)組維數(shù):由數(shù)組元素中下標(biāo)的個數(shù)決

2、定,一個下標(biāo)表示一維數(shù)組,二個下標(biāo)表示二維數(shù)組。VB中有一維數(shù)組、二維數(shù)組最多 60維數(shù)組。下標(biāo):下標(biāo)表示順序號,每個數(shù)組有一個唯一的順序號,下標(biāo)不能超過數(shù)組聲明時的上、下界范圍。 下標(biāo)可以是整型的常數(shù)、變量、表達(dá)式,甚至又是一個數(shù)組元素。下標(biāo)的取值范圍是:下界To上界,缺省下界時,系統(tǒng)默認(rèn)取0。3數(shù)組聲明數(shù)組必須先聲明后使用。聲明數(shù)組就是讓系統(tǒng)在內(nèi)存中分配一個連續(xù)的區(qū)域,用來存儲數(shù)組元素。聲明內(nèi)容:數(shù)組名、類型、維數(shù)、數(shù)組大小。一般情況下,數(shù)組中各元素類型必須相同,但若數(shù)組為Variant時,可包含不同類型的數(shù)據(jù)。靜態(tài)數(shù)組:聲明時確定了大小的數(shù)組。動態(tài)數(shù)組:聲明時沒有給定數(shù)組大小(省略了括號

3、中的下標(biāo)),使用時需要用重新指 ReDim語句 出其大小。使用動態(tài)數(shù)組的優(yōu)點(diǎn)是根據(jù)用戶需要,有效地利用存儲空間,它是在程序執(zhí)行到ReDim語句時才分配存 儲單元,而靜態(tài)數(shù)組是在程序編譯時分配存儲單元。5.2靜態(tài)數(shù)組及聲明1 - 一維數(shù)組靜態(tài)一維數(shù)組的聲明形式:Dim數(shù)組名(下標(biāo))As類型說明:(1)下標(biāo)必須為常數(shù),不可以為表達(dá)式或變量;(2) 下標(biāo)下界最小為-32768,最大上界為32767 ;省略下界,其默認(rèn)值為為0,維數(shù) 組的大小為:上界下界+1(3) 如果省略類型,則為變體型例:(1) Dim A ( 10) As Integer聲明了 A是數(shù)組名、整型、一維數(shù)組、有11個元素,下標(biāo)的范

4、圍是010。(2) Dim B (-3 To 5) As String*3聲明了 B是數(shù)組名、字符串型、一維數(shù)組、有 9個元素,下標(biāo)的范圍是35,每個 元素最多存放3個字符。2多維數(shù)組靜態(tài)多維數(shù)組的聲明形式:Dim數(shù)組名(下標(biāo)1 ,下標(biāo)2)As類型說明: (1)下標(biāo)個數(shù)決定數(shù)組的維數(shù),最多60維。(2)每一維的大小=上界下界+1 ;數(shù)組的大小=每一維大小的乘積。例:Dim C ( -1 To 5,4) As Long聲明了 C是數(shù)組名、長整型、二維數(shù)組、第一維下標(biāo)范圍為5,第二維下標(biāo)的范圍是04,占據(jù)7x 5個長整型變量的空間。3注意事項(xiàng)(1) 在有些語言中,下界一般從1開始,為了便于使用,在

5、VB的窗體層或標(biāo)準(zhǔn)模塊層用Option Base n語句可重新設(shè)定數(shù)組的下界,如Option Base 1。(2) 在數(shù)組聲明中的下標(biāo)尖系到每一維的大小,是數(shù)組說明符,而在程序其他地方出現(xiàn)的下標(biāo)為數(shù)組 元素,兩者寫法相同,但意義不同。(3)在數(shù)組聲明時的下標(biāo)只能是常數(shù),而在其他地方出現(xiàn)的數(shù)組元素的下標(biāo)可以是變量。5.3動態(tài)數(shù)組及聲明1 動態(tài)數(shù)組的建立與聲明建立動態(tài)數(shù)組的方法是:利用 Dim、Private、Public語句聲明括號內(nèi)為空的數(shù)組,然后在過 程中用ReDim語句指明該數(shù)組的大小。語法是:ReDim數(shù)組名(下標(biāo)1 ,下標(biāo)2)As類型其中下標(biāo)可以是常量,也可以是有了確定值的變量,類型可

6、以省略,若不省略,必須與Dim中的聲明語句保持一致。例:Dim D () As SingleSub Form_Load ()ReDim D ( 4,6)End Sub2注意事項(xiàng)(1 )在動態(tài)數(shù)組ReDim語句中的下標(biāo)可以是常量,也可以是有了確定值的變量;(2) 在過程中可以多次使用ReDim來改變數(shù)組的大小,也可改變數(shù)組的維數(shù)。(3) 每次使用ReDim語句都會使原來數(shù)組中的值丟失,可以在ReDim語句后加Preserve參數(shù)來 保留數(shù)組中的數(shù)據(jù),但使用Preserve只能改變最后一維的大小,前面幾維大小不能改變。3動態(tài)數(shù)組使用示例5.4數(shù)組的基本操作1給數(shù)組元素賦初值(1)利用循環(huán)結(jié)構(gòu)例:D

7、im iA (1 To 10 ) As IntegerFor i=1 To 10A(i)=0Next i(2)利用Array函數(shù)例:Dim a As Variant, b As Variant, i%a = Array (1,2,3,4,5) b = Array (Habcn;,defH;,67n)For i=0 To Ubound (a)Picturel.printNext iFor i=0 To Ubound (b)Picturel.print b(i);""Next i2數(shù)組的輸入(1)通過InputBox函數(shù)輸入適合輸入少量數(shù)據(jù)。例:Dim sB( 3,4 ) As

8、 singerFor i=0 To 3For j=0 To 4SB(i,j) =lnputBox(H 輸入 H & i & j & H 的值 H)Next jNext i(2)通過文本框控件輸入對大批量的數(shù)據(jù)輸入,采用文本框和函數(shù)split()join()進(jìn)行處理,效率更高3數(shù)組的賦值在VB6.0中可以直接將一個數(shù)組的值賦值給另一個數(shù)組:Dim a(3) as integer, b() as integerA(0)=2: A(1)=5: A(2)=-2: A(3)=2b=a在早期的VB中,這需要用循環(huán)語句才可以實(shí)現(xiàn):ReDim b(UBound(a)For 1=0 to

9、 UBound(a)b(D=a(l)Next i注意:(1)賦值號兩邊的數(shù)據(jù)類型必須一致;(2) 如果賦值號左邊的是一個動態(tài)數(shù)組,則賦值時系統(tǒng)自動將動態(tài)數(shù)組ReDim成右 邊相同大小的數(shù)組;(3) 如果賦值號左邊的是一個大小固定的數(shù)組,則數(shù)組賦值出錯。4數(shù)組的輸出用ForNext循環(huán)語句輸出。5求數(shù)組中最大元素和所在下標(biāo)及各元素之和求數(shù)組中最大元素及下標(biāo),一般假設(shè)第一個元素及下標(biāo)為最大,然后將該數(shù)與數(shù)組中的其他元素逐一 比較,若有比其大的就替換,同時替換下標(biāo)。6交換數(shù)組中各元素交換的要求是將數(shù)組第一個元素與最后一個交換,第二個與倒數(shù)第二個交換,依次類推。5.5控件數(shù)組1 控件數(shù)組的概念控件數(shù)組

10、是由一組相同類型的控件組成的,它們共用一個控件名,具有相同的數(shù)組??丶?shù)組適用 于若干個控件執(zhí)行的操作相似的場合,控件組共享同樣的事件過程。控件數(shù)組通過索引號(屬性中的Index )來標(biāo)識各控件,第一個下標(biāo)是0。如:Text1(0)、Textl、Textl、Text1(3)2控件數(shù)組的建立(1 )在設(shè)計(jì)時建立步驟:1)在窗體上畫岀某控件,并進(jìn)行屬性設(shè)置。2) 選中該控件進(jìn)行“復(fù)制”和“粘貼”操作,系統(tǒng)提示“是否建立控件數(shù)組”,選擇是即 可。多次粘貼就可以創(chuàng)建多個控件元素。3) 進(jìn)行事件過程的編程。(2)運(yùn)行時添加控件數(shù)組方法:1)在窗體上畫出某控件,設(shè)置該控件的Index值為0,表示該控件為數(shù)

11、組2)在編程時通過Load方法添加其余若干個元素也可以通過Unload刪除某個添加的元3 )每個添加的控件數(shù)組通過Left和Top屬性,確定其在窗體上的位置,并將Visible 設(shè)置為True。使用示例:建立一個類似國際象棋的棋盤,要求黑白交替,運(yùn)行時單擊某個棋格,會改變顏色并顯 示其序號。5.6自定義數(shù)據(jù)類型1. 自定義數(shù)據(jù)類型的定義是指由若干標(biāo)準(zhǔn)數(shù)據(jù)類型組成的一種復(fù)合類型,也稱為記錄類型。(1)定義方式:Type自定義類型名元素名(下標(biāo))As類型名元素名(下標(biāo))As類型名End Type元素名:表示自定義類型中的一個成員下標(biāo)(可選):表示是數(shù)組,類型名:為標(biāo)準(zhǔn)類型例:定義一個學(xué)生信息的自定

12、義類型:Type studtypeNo As Integer1定義學(xué)號Name As String*1O * 定義姓名Sex As String*2 '定義性別Mark (1 TO 4) As Single '定義4門課程的成績Total As Single '定義總分End Type(2)注意事項(xiàng)1)自定義類型一般在標(biāo)準(zhǔn)模塊(bas)中定義,默認(rèn)是 Public2) 自定義類型中的元素可以是字符串,但應(yīng)是定長字符串3)不可把自定義類型名與該類型的變量名混淆4)注意自定義類型變量與數(shù)組的差別:它們都由若干元素組成,前者的元素代表不同性質(zhì)、不同類型的 數(shù)據(jù),以元素名表示不同的元素;后者存放的是同種性質(zhì)、同種類型的數(shù)據(jù),以下標(biāo)表示不同元素。2. 自定義型變量的聲明和使用使用形式:Dim變量名As自定義類型名例女D : Dim student As studtype , mystud As studtype自定義類型中元素的表示方法是:變量名元素名如: student.mark 為了簡單起見'可以用WithEnd With語句進(jìn)行簡化。例:With student.no=99001.name="H,sex=m,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論