|
7.1 數(shù)組的概念
7.1.1 數(shù)組的定義
1.?dāng)?shù)組的定義
2.什么是
7.1.2 靜態(tài)數(shù)組與動(dòng)態(tài)數(shù)組
1. 靜態(tài)數(shù)組
l 以一維數(shù)組為例,其語法格式為
[Dim | Static | Private |Public] <數(shù)組名>([Lower to] Upper)[As 元素類型說明]
其中,[Dim | Static | Private | Public]可選項(xiàng)指明數(shù)組的作用域。
Dim聲明為過程級(jí)數(shù)組;
Static聲明為靜態(tài)過程級(jí)數(shù)組;
Private聲明為模塊級(jí)數(shù)組;
Public聲明為全局?jǐn)?shù)組;
[Lower to] Upper指明數(shù)組的上下界,下界可以省略,其默認(rèn)下界為0。
【例7.1】建立兩個(gè)數(shù)組,一個(gè)包含整數(shù),而另一個(gè)包含字符串。然后聲明一個(gè)Variant數(shù)組,并將整數(shù)數(shù)組和字符串?dāng)?shù)組放置其中。
(1)創(chuàng)建Command1,編寫單擊事件過程
(2)程序功能
l 簡單介紹靜態(tài)二維數(shù)組與三維數(shù)組。
2.動(dòng)態(tài)數(shù)組
一維動(dòng)態(tài)數(shù)組的聲明語法格式如下
[Dim | Static | Private | Public] <數(shù)組名>()[As 元素類型說明]
創(chuàng)建動(dòng)態(tài)數(shù)組的步驟為:
(1) 聲明數(shù)組為動(dòng)態(tài)數(shù)組,只須給數(shù)組附以一個(gè)空的維數(shù)表。
(2) 在使用數(shù)組之前,使用ReDim語句聲明其下標(biāo),以確定數(shù)組的維數(shù)以及元素的個(gè)數(shù),并立即為其分配存儲(chǔ)空間。
7.2 數(shù)組的基本操作
7.2.1 數(shù)組元素的輸入
1. 使用賦值語句為數(shù)組元素賦初值
【例7.2】使用賦值語句對數(shù)組進(jìn)行初始化。
Private Sub Form_Click()
Dim week(6) As String
week(0)="Sunday"
week(1)="Monday"
print week(0),week(1)
End Sub
2. 使用Array 函數(shù)為一維數(shù)組賦初值
Array函數(shù)語法格式為
Dim <數(shù)組名> As Variant
<數(shù)組名>=Array(<列表>)
【例7.3】使用Array函數(shù)給數(shù)組City的元素賦初值。
編寫窗體的單擊事件過程如下:
Private Sub Form_Click()
Dim City() As Variant
City()=Array("北京","上海","西安","長沙")
For i =0 to 3
Print "City("; i ; ")= ";City(i)
Next i
End Sub
3. 使用InputBox函數(shù)為多維數(shù)組賦初值
【例7.4】給數(shù)組Fruit(4)的元素賦初值。
Dim Fruit(4) As String
For i = 1 To 4
Day(i) = InputBox("enter Day: ")
Next i
7.2.2 For Each…Next語句
1. For Each…Next循環(huán)的語法:
For Each element In group
Statement
Next element
2. 使用For Each…Next時(shí)的幾點(diǎn)限制:
對于集合,element只能是一個(gè)Variant變量的名字,或一般的Object對象變量,或“對象瀏覽器”中列出的對象。對于普通數(shù)組。element 只能是Variant變量。For Each…Next不能與用戶自定義類型的數(shù)組一起使用,因?yàn)?/SPAN>Variant 不可能包含用戶自定義類型。
3. 舉例說明:下面的了過程利用For Each…Next結(jié)構(gòu)輸出字符型數(shù)組a中的每一個(gè)元素
Private Sub Form_Click()
Dim a() As String
Dim x As Variant
N = InputBox("請輸入一個(gè)整數(shù)") '隨意指定一個(gè)數(shù)
ReDim a(1 To N) As String '按指定的數(shù)N調(diào)整數(shù)組a的大小
For i = 1 To N '用常規(guī)For…Next循環(huán)語句給數(shù)組a各元素賦值
a(i) = "第" & i & "個(gè)元素"
Next i
For Each x In a '用For Each…Next結(jié)構(gòu)輸出數(shù)組a各元素的值
Print x '注意用到Variant變量x
Next
End Sub
7.2.3 數(shù)組間的初始化
舉例說明。
【例7.5】將數(shù)組D整體賦值給數(shù)組E。
Dim D(4) As String ,E() As string
D(0)="王華":D(1)="黎明":D(2)="白雪":D(3)="劉芳":D(4)="吳情"
E =D
通過數(shù)組間的賦值,將數(shù)組D整體賦值給數(shù)組E,同時(shí)數(shù)組E的大小被確定為5。
7.2.4 數(shù)組的輸出
舉例說明。
【例7.6】隨機(jī)產(chǎn)生二維數(shù)組a(3,3),交換最左邊和最右邊的兩列元素,然后輸出對角線上的元素。
編寫窗體的單擊事件過程如下:
Private Sub Form_Click()
Dim a(3, 3) As Integer
For i = 0 To 3
For j = 0 To 3
a(i, j) = Int(90 * Rnd + 10)
Next j
Next i
For i = 0 To 3
Print
For j = 0 To 3
Print a(i, j);
Next j
Next i
For i = 0 To 3
temp = a(i, 0): a(i, 0) = a(i, 3): a(i, 3) = temp
Next i
Print
Print "輸出數(shù)組對角線元素"
For i = 0 To 3
If i - (3 - i) <= 0 Then
Print Tab(i * 3 + 1); a(i, i); Spc((2 - 2 * i) * 3 + 1); a(i, 3 - i)
Else
Print Tab((3 - i) * 3 + 1);a(i, 3 - i);Spc((2 * i - 4) * 3 + 1); a(i, i)
End If
Next i
End Sub
7.3 控 件 數(shù) 組
7.3.1 控件數(shù)組的概念
控件數(shù)組是一組具有相同名稱(即Name屬性相同)和類型的控件,比如一組按鈕或一組單選鈕,這些控件共享相同的事件過程。與其他類型的數(shù)組一樣,控件數(shù)組中的每個(gè)控件都有惟一的下標(biāo),其下標(biāo)值由Index屬性指定。
7.3.2 創(chuàng)建控件數(shù)組
1. 創(chuàng)建一個(gè)控件數(shù)組的步驟。
2. 舉例說明。
小結(jié):
數(shù)組這個(gè)概念,在各種編程語言中都有出現(xiàn)。數(shù)組,簡言之,就是將一連串?dāng)?shù)字聚集在一起,形成組這個(gè)概念,其功能中存儲(chǔ)一系列類型相同的變量,并且可以用相同名稱引用這些變量,當(dāng)使用多個(gè)類型和功能一致的數(shù)據(jù)時(shí),使用數(shù)組可縮短和簡化程序。本講重點(diǎn)介紹數(shù)組的概念、定義和使用方法及其在程序設(shè)計(jì)中的應(yīng)用。
作業(yè):
1.什么是靜態(tài)數(shù)組?什么是動(dòng)態(tài)數(shù)組?二者有什么區(qū)別?
2.使用控件數(shù)組有什么好處?如何創(chuàng)建控件數(shù)組?
3.對于動(dòng)態(tài)數(shù)組,如何實(shí)現(xiàn)既增加數(shù)組元素的個(gè)數(shù),又保存該數(shù)組中原有的值?
4.舉例說明控件數(shù)組中不同的數(shù)組元素可以對同一事件過程有不同的響應(yīng)。
|