vb之_數(shù)組及其使用_第1頁(yè)
vb之_數(shù)組及其使用_第2頁(yè)
vb之_數(shù)組及其使用_第3頁(yè)
vb之_數(shù)組及其使用_第4頁(yè)
vb之_數(shù)組及其使用_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第7章 數(shù)組 西南交通大學(xué)峨眉校區(qū)唐加勝唐加勝 本章要求:本章要求: 1.理解數(shù)組的概念 2.掌握數(shù)組的定義及其引用 3.掌握控件數(shù)組的建立及使用。 4. 理解常用的排序方法。本章重點(diǎn):本章重點(diǎn):數(shù)組定義及引用方法,排序算法本章難點(diǎn):本章難點(diǎn):動(dòng)態(tài)數(shù)組、排序算法p數(shù)組是具有相同數(shù)據(jù)類(lèi)型的一組有序數(shù)據(jù)。p數(shù)組中的變量稱(chēng)為數(shù)組元素。p數(shù)組元素的表示 :數(shù)組名(下標(biāo)數(shù)組名(下標(biāo)1,下標(biāo)下標(biāo)2)。p例如:a(1) 、 a(1,2)p只有一個(gè)下標(biāo)的數(shù)組叫一維數(shù)組一維數(shù)組p有兩個(gè)下標(biāo)的數(shù)組叫二維數(shù)組二維數(shù)組, ,最多可達(dá)60維。p數(shù)組在使用前必須先聲明數(shù)組在使用前必須先聲明(數(shù)組名、類(lèi)型、維數(shù)和數(shù)組的大小

2、)。p數(shù)組聲明時(shí),靜態(tài)數(shù)組靜態(tài)數(shù)組 沒(méi)有指定維數(shù)和大小的數(shù)組稱(chēng)為動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組。前者大小固定,后者在使用前需要重定義。7.1 數(shù)組的定義和使用一、數(shù)組的定義n也可以使用Public和Private來(lái)定義數(shù)組。n數(shù)組定義舉例:數(shù)組定義舉例:oDim Counter(1 To 14) As Integer oPrivate Sum (20) As Double oDim x(3,4) as Integer oDim A(-5 To 20) As Integer n數(shù)組定義說(shuō)明o數(shù)組名的命名規(guī)則與變量命名相同。o一維數(shù)組的元素個(gè)數(shù):上界上界-下界下界+1。o缺省下界為缺省下界為0 。若希望缺省下界

3、設(shè)為1,可在模塊的通用部分使用語(yǔ)句: Option Base 1o下界下界和上界上界不能使用變量,必須是常量(整型常量)o數(shù)組定義后自動(dòng)獲得默認(rèn)值:數(shù)值為0,字符為“”,邏輯為False一、數(shù)組的定義n數(shù)組中各元素在內(nèi)存占一片連續(xù)的存儲(chǔ)空間。n二維數(shù)組則按先行后列的順序。A(0)A(1)A(2)A(n). 一維數(shù)組一維數(shù)組A在內(nèi)存中存放的順序在內(nèi)存中存放的順序 S(0,0) S(0,1) S(0,2) S(0,3) S(1,0) S(1,1) S(1,2) S(1,3) S(2,0) S(2,1) S(2,2) S(2,3) 第 0 行 第 1 行 第 2 行 第 0 列 第 1 列 第 2

4、列 第 3 列 一維數(shù)組一維數(shù)組S(2,3)在內(nèi)存中存放的順序在內(nèi)存中存放的順序n數(shù)組的引用通常是指對(duì)數(shù)組元素的引用。n格式為: 數(shù)組名數(shù)組名 (下標(biāo)下標(biāo)1 , 下標(biāo)下標(biāo)2)n下標(biāo)可以是常量、變量或表達(dá)式,但表達(dá)式的值必須介于定義數(shù)組時(shí)指定的下標(biāo)的下界和上界之間,否則將導(dǎo)致“下標(biāo)越界”的錯(cuò)誤。n例如: A(1)=A(1)+B(1) 取數(shù)組元素運(yùn)算 A(i)=B(i) 下標(biāo)使用變量 B(i+1)=A(i+2) 下標(biāo)使用表達(dá)式 C(3,4)=100 下標(biāo)使用常量二、數(shù)組的使用靜態(tài)數(shù)組靜態(tài)數(shù)組只能逐個(gè)元素賦值只能逐個(gè)元素賦值。如果賦值有規(guī)律,可以使用。n用=直接賦值A(chǔ)(1)=10A(2)=20n如果

5、賦值有規(guī)律,使用賦值。o例如,給數(shù)組A(4)的元素賦值 n通過(guò)InputBox函數(shù)輸入值。例如:n通過(guò)文本框輸入值。例如:A(1)=Text1.textA(2)=Text2.text二、數(shù)組的使用n靜態(tài)數(shù)組之間不能整體賦值,只能逐個(gè)元素賦值。可使用循環(huán)結(jié)構(gòu)。n可以將一個(gè)靜態(tài)數(shù)組整體賦值給一個(gè)動(dòng)態(tài)數(shù)組,并自動(dòng)確定動(dòng)態(tài)數(shù)組的大小。相互賦值的兩個(gè)數(shù)組的類(lèi)型必須相同類(lèi)型必須相同。n例如: Dim A(4) As , B() As A(0)=0 : A(1)=1 : A(2)=2: A(3)=3 : A(4)=4 B =A n輸出數(shù)組中的全部或部分元素,一般使用 二、數(shù)組的使用nFor Each Nex

6、t 語(yǔ)句與 For Next 語(yǔ)句類(lèi)似,都是實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)。但 For Each Next 語(yǔ)句是專(zhuān)用于數(shù)組和對(duì)象集合的。 n語(yǔ)法格式:o成員成員:為一個(gè)為一個(gè)Variant變量變量,在For Each Next 語(yǔ)句中代表數(shù)組代表數(shù)組中的每個(gè)元素中的每個(gè)元素,數(shù)組中有幾個(gè)元素,此成員就重復(fù)使用幾次,循環(huán)體就執(zhí)行幾遍。o數(shù)組數(shù)組:在此之前經(jīng)過(guò)定義的數(shù)組,用在此處時(shí)僅僅是一個(gè)數(shù)組名,沒(méi)有括號(hào)和上下界。o不能在For Each Next中使用用戶(hù)自定義數(shù)據(jù)類(lèi)型。o使用For Each Next的好處是不用知道數(shù)組的大小和維數(shù),就可輸出數(shù)組的所有元素。二、數(shù)組的使用示例:Dim A(1 To 4)

7、For Each x In A Print x ; Next x求二、數(shù)組的使用o動(dòng)態(tài)數(shù)組的聲明:o動(dòng)態(tài)數(shù)組大小的說(shuō)明: nPreserve :選擇Preserve時(shí),保留數(shù)組中原來(lái)的數(shù)據(jù),但只允許ReDim 語(yǔ)句改變動(dòng)態(tài)數(shù)組最后一維的上界。n例如: Dim A() AS integer Redim A(4,5) Redim Preserve A(4,)n注意:Redim語(yǔ)句可以多次使用,但只能改變數(shù)組的維數(shù)和大小,不能改變數(shù)組的類(lèi)型。動(dòng)態(tài)數(shù)組舉例o輸入n個(gè)整數(shù),存入動(dòng)態(tài)數(shù)組,再輸出這些數(shù)Array函數(shù)函數(shù)nArray函數(shù)可以對(duì)Variant類(lèi)型類(lèi)型的動(dòng)態(tài)數(shù)組或變量動(dòng)態(tài)數(shù)組或變量整體賦值。賦值

8、后的數(shù)組大小由賦值的個(gè)數(shù)決定。n例如,要將1,3,4,6,7 這些值賦值給數(shù)組a,可使用下面的方法賦值。 Dim a() A=array(1,3,4,6,7)或 Dim a A=array(1,3,4,6,7)Array函數(shù)舉例:函數(shù)舉例:自動(dòng)抽題系統(tǒng)自動(dòng)抽題系統(tǒng)2. Ubound( ) 和和Lbound( )函數(shù)函數(shù) 求數(shù)組的上界求數(shù)組的上界求數(shù)組的下界求數(shù)組的下界oN:可選;一般是整型常量或變量。指定返回哪一維的上:可選;一般是整型常量或變量。指定返回哪一維的上界。界。1 表示第一維,表示第一維,2 表示第二維,如此等等。如果省略表示第二維,如此等等。如果省略默認(rèn)是默認(rèn)是1。n例如:不知道

9、數(shù)組例如:不知道數(shù)組A的元素個(gè)數(shù),要用的元素個(gè)數(shù),要用FOR循環(huán)輸出數(shù)組循環(huán)輸出數(shù)組A的的全部元素值。全部元素值。For i=Lbound(a) to Ubound(a) print a(i)Next i 數(shù)據(jù)的排序就是將一批數(shù)據(jù)由小大到數(shù)據(jù)的排序就是將一批數(shù)據(jù)由小大到(升序)(升序)或由大到小或由大到?。ń敌颍ń敌颍┻M(jìn)行排列。常用的有進(jìn)行排列。常用的有選擇法、冒泡法。選擇法、冒泡法。v 冒泡排序是常用的一種排序方法。假設(shè)n個(gè)元素按遞增的順序排序,排序思想為:從數(shù)組的第一項(xiàng)開(kāi)始,每一項(xiàng)(i)都與下一項(xiàng)(i+1)進(jìn)行比較。如果下一項(xiàng)的值較小,就將這兩項(xiàng)的位置交換,直到最后第n-1與第n項(xiàng)進(jìn)行比

10、較,將最大的數(shù)排列在最后。從數(shù)組的第一項(xiàng)開(kāi)始,每一項(xiàng)(i)都與下一項(xiàng)(i+1)進(jìn)行比較。如果下一項(xiàng)的值較小,就將這兩項(xiàng)的位置交換,直到最后第n-2與第n-1項(xiàng)進(jìn)行比較,將第二大的數(shù)排列在倒數(shù)第二位。直到只有第一項(xiàng)與第二項(xiàng)進(jìn)行比較交換,完成遞增法排序。例:隨機(jī)產(chǎn)生例:隨機(jī)產(chǎn)生1010個(gè)個(gè)1010100100的整數(shù),從小到大順序輸出。的整數(shù),從小到大順序輸出。 Randomize Dim a(1 To N) As Integer Print 原始數(shù)據(jù):原始數(shù)據(jù): For i = 1 To N 產(chǎn)生產(chǎn)生10個(gè)隨機(jī)數(shù)個(gè)隨機(jī)數(shù) a(i) = Int(91 * Rnd + 10) Print a(i);

11、Next i For i = 1 To N-1 For j = 1 To N - i If a(j) a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t 交換位置交換位置 End If Next j Next i Print: Print 排序結(jié)果:排序結(jié)果: For i = 1 To N Print a(i); Next i v選擇法排序是最為簡(jiǎn)單且易理解的算法,其基本思想是每次將最?。ɑ蜃畲螅┑臄?shù)找出來(lái)放在序列的最前面。假設(shè)按遞增法將有n個(gè)數(shù)的數(shù)組A(1To n)進(jìn)行排列,步驟為:(1)假定最小值Temp,將Temp與A(2)進(jìn)行比較

12、,若A(2) a(j) Then t = a(i): a(i) = a(j): a(j) = t 交換位置交換位置 End If Next j Next i Print: Print 排序結(jié)果:排序結(jié)果: For i = 1 To N Print a(i);Next i For i = 1 To N - 1 p = i For j = i + 1 To N If a(p) a(j) Then p = j Next j t = a(i): a(i) = a(p): a(p) = tNext i o控件數(shù)組:控件數(shù)組:具有相同的具有相同的名稱(chēng)名稱(chēng)和和事件過(guò)程事件過(guò)程的一組的一組同類(lèi)型控件同類(lèi)型控件。n控件數(shù)組中的每一個(gè)控件具有一個(gè)唯一的索引值index屬性值,它相當(dāng)于數(shù)組的下標(biāo)。n控件數(shù)組中的所有控件共享同一事件過(guò)程控件數(shù)組中的所有控件共享同一事件過(guò)程。例如,假定某個(gè)控件數(shù)組含有5個(gè)命令按鈕,則不管單擊哪個(gè)標(biāo)簽,系統(tǒng)都會(huì)調(diào)用同一個(gè)Click過(guò)程。由于每個(gè)按鈕在程序中的作用不同,系統(tǒng)會(huì)將被單擊的按鈕的Index屬性值傳遞給過(guò)程,由事件過(guò)程根據(jù)不同的Index值執(zhí)行不同的操作

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論