第五章 VB中的數(shù)組 5.1 數(shù)組的概念 1.引例 求100個(gè)學(xué)生的平均成績及超過平均成績的人數(shù)。 如果用一般變量來表示成績,需要用100個(gè)變量,如:mark1、mary2、……mark100。若用數(shù)組,可以只用一個(gè)來表示mark(1 2.基本概念 數(shù)組:是同類型變量的一個(gè)有序的集合。 如:A(1 To 100),表示一個(gè)包含100個(gè)數(shù)組元素的名為A的數(shù)組。 數(shù)組元素: 即數(shù)組中的變量。用下標(biāo)表示數(shù)組中的各個(gè)元素。 表示方法:數(shù)組名(P1,P2,……) 其中P1、P2表示元素在數(shù)組中的排列位置,稱為“下標(biāo)”。 如:A(3,2)代表二維數(shù)組A中第3行第2列上的那個(gè)元素。 數(shù)組維數(shù): 由數(shù)組元素中下標(biāo)的個(gè)數(shù)決定,一個(gè)下標(biāo)表示一維數(shù)組,二個(gè)下標(biāo)表示二維數(shù)組。 VB中有一維數(shù)組、二維數(shù)組、……最多60維數(shù)組。 下標(biāo): 下標(biāo)表示順序號(hào),每個(gè)數(shù)組有一個(gè)唯一的順序號(hào),下標(biāo)不能超過數(shù)組聲明時(shí)的上、下界范圍。下標(biāo)可以是整型的常數(shù)、變量、表達(dá)式,甚至又是一個(gè)數(shù)組元素。 下標(biāo)的取值范圍是:下界 To 上界 ,缺省下界時(shí),系統(tǒng)默認(rèn)取0。 3.數(shù)組聲明 數(shù)組必須先聲明后使用。聲明數(shù)組就是讓系統(tǒng)在內(nèi)存中分配一個(gè)連續(xù)的區(qū)域,用來存儲(chǔ)數(shù)組元素。 聲明內(nèi)容:數(shù)組名、類型、維數(shù)、數(shù)組大小。 一般情況下,數(shù)組中各元素類型必須相同,但若數(shù)組為Variant時(shí),可包含不同類型的數(shù)據(jù)。 靜態(tài)數(shù)組:聲明時(shí)確定了大小的數(shù)組。 動(dòng)態(tài)數(shù)組: 聲明時(shí)沒有給定數(shù)組大小(省略了括號(hào)中的下標(biāo)),使用時(shí)需要用ReDim語句重新指出其大小。 使用動(dòng)態(tài)數(shù)組的優(yōu)點(diǎn)是根據(jù)用戶需要,有效地利用存儲(chǔ)空間,它是在程序執(zhí)行到ReDim語句時(shí)才分配存儲(chǔ)單元,而靜態(tài)數(shù)組是在程序編譯時(shí)分配存儲(chǔ)單元。 5.2 靜態(tài)數(shù)組及聲明 1. 一維數(shù)組 靜態(tài)一維數(shù)組的聲明形式: Dim 數(shù)組名(下標(biāo)) [As 類型] 說明:(1)下標(biāo)必須為常數(shù),不可以為表達(dá)式或變量; 例:?。?/span>1) Dim A(10) As Integer 2.多維數(shù)組 靜態(tài)多維數(shù)組的聲明形式: 說明:?。?/span>1)下標(biāo)個(gè)數(shù)決定數(shù)組的維數(shù),最多60維。 例:Dim C(-1 To 5, 4) As Long 3.注意事項(xiàng) (1)在有些語言中,下界一般從1開始,為了便于使用,在VB的窗體層或標(biāo)準(zhǔn)模塊層用Option
Base n 語句可重新設(shè)定數(shù)組的下界,如Option
Base 1。 5.3 動(dòng)態(tài)數(shù)組及聲明 1. 動(dòng)態(tài)數(shù)組的建立與聲明 建立動(dòng)態(tài)數(shù)組的方法是:利用Dim、Private、Public語句聲明括號(hào)內(nèi)為空的數(shù)組,然后在過程中用ReDim語句指明該數(shù)組的大小。語法是: 例: Dim D() As Single
2.注意事項(xiàng) (1)在動(dòng)態(tài)數(shù)組ReDim語句中的下標(biāo)可以是常量,也可以是有了確定值的變量; 3.動(dòng)態(tài)數(shù)組使用示例 5.4 數(shù)組的基本操作 1. 給數(shù)組元素賦初值 (1) 利用循環(huán)結(jié)構(gòu) 例:Dim
iA(1 To 10) As Integer (2) 利用Array函數(shù) 例:Dim a As Variant, b As Variant,
i% 2.數(shù)組的輸入 (1) 通過InputBox函數(shù)輸入適合輸入少量數(shù)據(jù)。 例:Dim sB(3,4) As singer (2) 通過文本框控件輸入 對(duì)大批量的數(shù)據(jù)輸入,采用文本框和函數(shù)split()\join()進(jìn)行處理,效率更高。 3.數(shù)組的賦值 在VB6.0中可以直接將一個(gè)數(shù)組的值賦值給另一個(gè)數(shù)組: 注意:(1)賦值號(hào)兩邊的數(shù)據(jù)類型必須一致; 4.數(shù)組的輸出 用For……Next循環(huán)語句輸出。 5.求數(shù)組中最大元素和所在下標(biāo)及各元素之和 求數(shù)組中最大元素及下標(biāo),一般假設(shè)第一個(gè)元素及下標(biāo)為最大,然后將該數(shù)與數(shù)組中的其他元素逐一比較,若有比其大的就替換,同時(shí)替換下標(biāo)。 6.交換數(shù)組中各元素 交換的要求是將數(shù)組第一個(gè)元素與最后一個(gè)交換,第二個(gè)與倒數(shù)第二個(gè)交換,依次類推。 5.5 控件數(shù)組 1.控件數(shù)組的概念 控件數(shù)組是由一組相同類型的控件組成的,它們共用一個(gè)控件名,具有相同的數(shù)組。控件數(shù)組適用于若干個(gè)控件執(zhí)行的操作相似的場(chǎng)合,控件組共享同樣的事件過程。控件數(shù)組通過索引號(hào)(屬性中的Index)來標(biāo)識(shí)各控件,第一個(gè)下標(biāo)是0 。如:Text1(0)、Text1(1)、Text1(2)、Text1(3)…… 2.控件數(shù)組的建立 (1)在設(shè)計(jì)時(shí)建立 (2)運(yùn)行時(shí)添加控件數(shù)組 方法:1)在窗體上畫出某控件,設(shè)置該控件的Index值為0,表示該控件為數(shù)組。 使用示例:建立一個(gè)類似國際象棋的棋盤,要求黑白交替,運(yùn)行時(shí)單擊某個(gè)棋格,會(huì)改變顏色并顯示其序號(hào)。 5.6 自定義數(shù)據(jù)類型 1. 自定義數(shù)據(jù)類型的定義 是指由若干標(biāo)準(zhǔn)數(shù)據(jù)類型組成的一種復(fù)合類型,也稱為記錄類型。 (1)定義方式: Type 自定義類型名 元素名:表示自定義類型中的一個(gè)成員 例:定義一個(gè)學(xué)生信息的自定義類型: (2)注意事項(xiàng) 1)自定義類型一般在標(biāo)準(zhǔn)模塊(.bas)中定義,默認(rèn)是Public 2. 自定義型變量的聲明和使用 使用形式:
Dim 變量名
As 自定義類型名 3.自定義類型數(shù)組的使用 自定義類型數(shù)組就是數(shù)組中的每個(gè)元素都是自定義類型。 |
|