第05章 數(shù)組與過(guò)程_第1頁(yè)
第05章 數(shù)組與過(guò)程_第2頁(yè)
第05章 數(shù)組與過(guò)程_第3頁(yè)
第05章 數(shù)組與過(guò)程_第4頁(yè)
第05章 數(shù)組與過(guò)程_第5頁(yè)
已閱讀5頁(yè),還剩50頁(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)介

第五章數(shù)組與過(guò)程學(xué)習(xí)要點(diǎn)掌握數(shù)組的概念區(qū)分靜態(tài)數(shù)組和動(dòng)態(tài)數(shù)組掌握數(shù)組的基本操作(數(shù)組元素的輸入、輸出、排序)掌握控件數(shù)組的建立與應(yīng)用了解二維數(shù)組的使用5.1數(shù)組的概念

5.1.1數(shù)組和數(shù)組元素?cái)?shù)組由下標(biāo)變量名和圓括號(hào)組成。括號(hào)中有一個(gè)下標(biāo)時(shí),叫做一維下標(biāo)變量,例如:S(1),S(10)

括號(hào)中有兩個(gè)下標(biāo)時(shí),叫做二維下標(biāo)變量,例如:A(1,2)。括號(hào)中有三個(gè)下標(biāo)時(shí),叫做三維下標(biāo)變量,例如:C(1,2,2)等。靜態(tài)數(shù)組1.靜態(tài)數(shù)組的聲明數(shù)組聲明的語(yǔ)法格式:Public|Private|Dim}數(shù)組名(下標(biāo))[As類(lèi)型]下標(biāo)的格式:[下界1To]上界1[,[下界2To]上界2]…)例如:DimA(2)AsDouble一維數(shù)組A,共有三個(gè)雙精度元素,分別為A(0)、A(1)、A(2)。

DimB(-2To2)AsSingle一維數(shù)組B,共有5個(gè)單精度元素,分別為B(-2)、B(-1)、B(0)、B(1)、B(2)。

DimC(2,1To2)AsInteger二維數(shù)組C,共有6個(gè)整型元素,分別為C(0,1)、C(0,2)、C(1,1)、C(1,2)、C(2,1)、C(2,2)。

DimD(1,1)AsDouble

二維數(shù)組D,共有4個(gè)雙精度元素,分別為D(0,0)、D(0,1)、D(1,0)、D(1,1)。

動(dòng)態(tài)數(shù)組

與靜態(tài)數(shù)組對(duì)應(yīng)的是動(dòng)態(tài)數(shù)組,即數(shù)組元素個(gè)數(shù)不定的數(shù)組。若事先不知道數(shù)組的大小,并希望在運(yùn)行時(shí)可以根據(jù)需要改變數(shù)組的大小(或大小不斷改變),這時(shí)就要使用動(dòng)態(tài)數(shù)組。

動(dòng)態(tài)數(shù)組與靜態(tài)數(shù)組不同的是:動(dòng)態(tài)數(shù)組靈活、經(jīng)濟(jì)、可伸縮,可在任何時(shí)候改變數(shù)組的大小,從而不會(huì)浪費(fèi)內(nèi)存。2.動(dòng)態(tài)數(shù)組的聲明

數(shù)組聲明的語(yǔ)法格式:

{Public|Private|Dim}數(shù)組名()[As類(lèi)型]

2.創(chuàng)建動(dòng)態(tài)數(shù)組的步驟1)聲明一個(gè)空維數(shù)表的數(shù)組(不必說(shuō)明維數(shù)和界限)。

例如:DimX()AsInteger。2)在需要指定數(shù)組大小時(shí),再使用ReDim語(yǔ)句分配數(shù)組中實(shí)際元素個(gè)數(shù)。例如:ReDimX(50,50)。動(dòng)態(tài)數(shù)組ReDim語(yǔ)法格式:

ReDim[Preserve]數(shù)組名(下標(biāo))[As類(lèi)型]其中:(1)ReDim語(yǔ)句中的[As類(lèi)型]可以省略,若不省略則必須要和數(shù)組聲明中的類(lèi)型一致。(2)使用ReDim相當(dāng)于數(shù)組被重新初始化,原來(lái)的數(shù)據(jù)將全部丟失。(3)Preserve表示再次使用ReDim語(yǔ)句改變數(shù)組大小時(shí)保留數(shù)組中原來(lái)的數(shù)據(jù),但Preserve只能改變多維數(shù)組中最后一維的上界,否則運(yùn)行程序報(bào)錯(cuò)。(4)ReDim

語(yǔ)句用來(lái)更改某個(gè)已聲明維數(shù)或大小的數(shù)組。如果有一個(gè)較大的數(shù)組,并且不再需要它的某些元素,ReDim

可通過(guò)減小數(shù)組大小來(lái)釋放內(nèi)存。另一方面,如果代碼確定某個(gè)數(shù)組需要更多元素,也可使用ReDim語(yǔ)句來(lái)實(shí)現(xiàn)。動(dòng)態(tài)數(shù)組5.1數(shù)組的概念

5.1.2數(shù)組說(shuō)明語(yǔ)句1.數(shù)組說(shuō)明語(yǔ)句的格式Dim<數(shù)組名>([a1To]a2[,[b1To]b2][,…])[As<類(lèi)型>]或者Dim<數(shù)組名><類(lèi)型符>([a1To]a2[,[b1To]b2][,…])

VisualBasic還允許用OptionBase來(lái)指明下界是0還是1。具體的格式為:OptionBase0'數(shù)組的下界是0OptionBase1'數(shù)組的下界是15.1數(shù)組的概念

5.1.2數(shù)組說(shuō)明語(yǔ)句2.功能該語(yǔ)句能為數(shù)組定義維數(shù)、每維的上界值、下界值和數(shù)組的類(lèi)型。5.1數(shù)組的概念

5.1.3數(shù)組賦值函數(shù)函數(shù)Array()被叫做數(shù)組賦值函數(shù)。

1.格式為:數(shù)組變量名=Array(常量列表)2.功能該函數(shù)的功能就是將常量列表中的常量依次賦給一個(gè)一維數(shù)組的對(duì)應(yīng)元素。

3.說(shuō)明:格式中的數(shù)組變量應(yīng)該被定義為變體變量;數(shù)組的上下界值可以通過(guò)LBound和UBound函數(shù)得到。5.1數(shù)組的概念

5.1.4動(dòng)態(tài)數(shù)組創(chuàng)建動(dòng)態(tài)數(shù)組,可以按照以下步驟執(zhí)行:(1)和普通數(shù)組的聲明一樣使用Dim語(yǔ)句給數(shù)組賦予一個(gè)空維數(shù)表。(2)使用時(shí)用ReDim語(yǔ)句重新分配數(shù)組的實(shí)際元素個(gè)數(shù)。

ReDim語(yǔ)句的具體語(yǔ)法格式如下:ReDim[Preserve]<數(shù)組名>(<維數(shù)定義>)[As類(lèi)型]5.1數(shù)組的概念

5.1.4動(dòng)態(tài)數(shù)組說(shuō)明:1)ReDim語(yǔ)句用來(lái)定義或重定義動(dòng)態(tài)數(shù)組的大小。2)在執(zhí)行ReDim語(yǔ)句時(shí),如果使用了Preserve關(guān)鍵字,則在重定義數(shù)組最末維的大小同時(shí)仍保留數(shù)組中的原有內(nèi)容;如果未使用Preserve關(guān)鍵字,則數(shù)組中存放的所有當(dāng)前值就會(huì)消失。5.1數(shù)組的概念例5.1用冒泡法排序法對(duì)5個(gè)無(wú)序的數(shù)從小到大排序。

分析:冒泡法排序也叫下沉法排序。其思路是在一列數(shù)中從前往后每次將兩兩相鄰的數(shù)進(jìn)行比較,然后將小的數(shù)調(diào)換到前面,大的放到后面。經(jīng)過(guò)第一輪兩兩比較后,最大的數(shù)就排到最后的位置上。然后再?gòu)牡谝粋€(gè)數(shù)至倒數(shù)第二個(gè)數(shù)之間開(kāi)始新一輪的兩兩比較、調(diào)換后,第二大的數(shù)已排在倒數(shù)第二的位置上。然后再開(kāi)始新一輪的比較,依此類(lèi)推,直至所有數(shù)從小到大排好隊(duì)。

數(shù)組的排序1.冒泡法排序原則 冒泡法排序模擬水中氣泡的排放規(guī)則,使份量“較輕”(值較小)的氣泡浮到上面,份量“較重”(值較大)的氣泡沉到下面,對(duì)每一趟排序,從第一個(gè)元素開(kāi)始,按照規(guī)則調(diào)整相鄰元素的大小關(guān)系,確定一個(gè)最大(或最?。┑臍馀莸奈恢?

冒泡法排序如:有數(shù)組a:41865,使用冒泡法從小到大排序

第一趟排序:41865148651486514685146584186514865148651468514658

經(jīng)過(guò)第一趟排序的四次調(diào)整后,使五個(gè)數(shù)的最大值8放在最后一個(gè)位置,這個(gè)位置是確定的,在以后的排序過(guò)程中不會(huì)再改變,因此,在后面的排序中就不再對(duì)該位置進(jìn)行改變 第二趟排序(對(duì)前四個(gè)元素排序): 在第一次排序的基礎(chǔ)上,經(jīng)過(guò)第二趟排序的三次調(diào)整后,使前四個(gè)數(shù)的最大值6放在倒數(shù)第二個(gè)位置,同樣,在后面的排序中就不再對(duì)該位置進(jìn)行改變

第三趟排序(對(duì)前三個(gè)元素排序):145681456814568數(shù)組的排序第四趟排序(對(duì)前二個(gè)元素排序):1456814568

最后一個(gè)元素顯然不用再排序了,這樣,經(jīng)過(guò)四趟排序,完成了對(duì)數(shù)組a中的五個(gè)元素的排序,即若數(shù)組中有N個(gè)元素,則需要進(jìn)行N-1趟排序才能完成對(duì)整個(gè)數(shù)組的排序

數(shù)組的排序程序?qū)崿F(xiàn):(其中N為數(shù)組a的下標(biāo)上界)Fori=1ToN–1’控制有幾趟排序

Forj=1ToN–I’控制每趟排序的個(gè)數(shù)

Ifa(j)>a(j+1)Thentemp=a(j)

a(j)=a(j+1)

a(j+1)=tempEndIfNextjNexti數(shù)組的排序完整的冒泡排序程序1.輸入數(shù)據(jù)DimnAsIntegerDima()n=InputBox("dd")ReDima(n)Forj=1Tona(j)=Int(Rnd*90+10)Printa(j);Nextj2.數(shù)據(jù)處理(排序)Fori=1Ton-1'控制有幾趟排序

Forj=1Ton-i'控制每趟排序的個(gè)數(shù)

Ifa(j)>a(j+1)Thentemp=a(j)

a(j)=a(j+1)

a(j+1)=tempEndIfNextjNexti3.數(shù)據(jù)輸出

Forj=1TonPrinta(j);Nextj2.選擇法排序

1)選擇法排序的基本思路將a(0)作為參考標(biāo)準(zhǔn),在a(0)-a(9)中挑選最小的一個(gè)數(shù),跟a(0)交換;再將a(1)到a(9)中最小的數(shù)與a(1)對(duì)換;依次類(lèi)推。10個(gè)數(shù)共需進(jìn)行9輪比較以達(dá)到順序的目的。假設(shè)第1個(gè)數(shù)據(jù)最小,依次同第2、第3、…、第N個(gè)數(shù)據(jù)進(jìn)行比較,一旦第1個(gè)數(shù)據(jù)大于其他值則交換。這樣,第1輪比較完畢,找出了最小數(shù)據(jù)作為第1個(gè)數(shù)據(jù)。以第2個(gè)數(shù)據(jù)為最小數(shù)據(jù),依次同第3、第4、…、第N個(gè)數(shù)據(jù)進(jìn)行比較,若第2個(gè)數(shù)據(jù)大于其他值則交換。這樣,第2輪交換完畢,則找出第二小的數(shù)據(jù)作為第2個(gè)數(shù)據(jù)。依此類(lèi)推,第N-1輪比較將找出第N-1小的數(shù)據(jù),剩下的一個(gè)數(shù)據(jù)就是最大數(shù),排列在最后。

數(shù)組的排序2)實(shí)現(xiàn)選擇法排序的程序DimiAsInteger,jAsInteger,tempAsInteger

Fori=1Ton-1Forj=i+1TonIfa(i)>a(j)Thentemp=a(i)

a(i)=a(j)

a(j)=tempEndIfNextjNexti

其中i是外循環(huán)的循環(huán)變量,j是內(nèi)循環(huán)的循環(huán)變量。Fori=1Ton-1至Nexti是外循環(huán),表示總共排序的趟數(shù);Forj=1Ton-i至Nextj是內(nèi)循環(huán),表示每一趟排序時(shí),比較的次數(shù)。

數(shù)組的排序5.1數(shù)組的概念例5.2編寫(xiě)程序,將輸入的10個(gè)數(shù)據(jù)按照輸入的順序逆向輸出。

5.1數(shù)組的概念例5.2編寫(xiě)程序,將輸入的10個(gè)數(shù)據(jù)按照輸入的順序逆向輸出。程序源代碼如下:OptionExplicitOptionBase1DimD(1To10)AsSinglePrivateSubcmdInput_Click()DimI%ForI=1To10D(I)=Val(InputBox("","輸入數(shù)據(jù)"))

txtInput.Text=txtInput.Text&D(I)&""NextIEndSub5.1數(shù)組的概念例5.2編寫(xiě)程序,將輸入的10個(gè)數(shù)據(jù)按照輸入的順序逆向輸出。程序源代碼如下:PrivateSubcmdOutput_Click()DimI%ForI=10To1Step-1

txtOutput.Text=txtOutput.Text&D(I)&""NextIEndSub5.1.2二維數(shù)組及多維數(shù)組1.二維數(shù)組的定義格式:Dim數(shù)組名([<下界>]to<上界>,[<下界>to]<上界>)[As<數(shù)據(jù)類(lèi)型>]其中的參數(shù)與一維數(shù)組完全相同。例如:Dima(2,3)AsSingle二維數(shù)組在內(nèi)存的存放順序是“先行后列”。例如數(shù)組a的各元素在內(nèi)存中的存放順序是:a(0,0)→a(0,1)→a(0,2)→a(0,3)→a(1,0)→a(1,1)→a(1,2)→a(1,3)→a(2,0)→(2,1)→a(2,2)→a(2,3)2.二維數(shù)組的引用格式:數(shù)組名(下標(biāo)1,下標(biāo)2)例如:a(1,2)=10a(i+2,j)=a(2,3)*2在程序中常常通過(guò)二重循環(huán)來(lái)操作使用二維數(shù)組元素。

二維數(shù)組的使用

二維數(shù)組通常是指由兩個(gè)下標(biāo)的數(shù)組元素所組成的數(shù)組。一個(gè)二維表格就是一個(gè)二維數(shù)組。數(shù)學(xué)上形如矩陣{aij}表示的數(shù)據(jù)均可用二維數(shù)組來(lái)處理。例5.3矩陣的加減運(yùn)算。

PrivateSubCommand1_Click()Dima(1To4,1To5)AsIntegerDimb(1To4,1To5)AsIntegerDimc(1To4,1To5)AsInteger

Fori=1To4Forj=1To5

a(i,j)=Int(Rnd*40)+10

'通過(guò)Int和Rnd函數(shù)產(chǎn)生20個(gè)10~50之間的整數(shù)構(gòu)成矩陣a

b(i,j)=Int(Rnd*40)+10

c(i,j)=a(i,j)+b(i,j)

'矩陣a和矩陣b對(duì)應(yīng)元素之和放入矩陣c中

NextjNexti

Fori=1To4Forj=1To5Printa(i,j)&"";'輸出矩陣a中的數(shù)據(jù)

NextjPrint

NextiPrint"----------------------"'兩個(gè)矩陣之間用"-"隔開(kāi)

Fori=1To4Forj=1To5Printb(i,j)&"";'輸出矩陣b中的數(shù)據(jù)

NextjPrint

NextiPrint"----------------------"二維數(shù)組的使用

Fori=1To4Forj=1To5Printc(i,j)&"";'輸出矩陣c中的數(shù)據(jù)

NextjPrint

NextiEndSubPrivateSubCommand2_Click()

ClsEndSub二維數(shù)組的使用

【例5.3】求方陣的轉(zhuǎn)置方法一程序代碼如下:Fori=2ToMForj=1ToI-1Temp=a(i,j)

a(i,j)=a(j,i)

a(j,i)=TempNextjNexti設(shè)A是M*N的矩陣,要重新定義一個(gè)N*M的二級(jí)數(shù)組B,將A轉(zhuǎn)置得到B。方法二程序代碼如下:Fori=1ToMForj=1ToN

b(j,i)=a(i,j)NextjNexti5.3.1動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組:在聲明時(shí)未給出數(shù)組的大小。在程序執(zhí)行時(shí)分配存儲(chǔ)空間。1.動(dòng)態(tài)數(shù)組的建立及使用建立動(dòng)態(tài)數(shù)組包括聲明和大小說(shuō)明兩步:

(1)在使用Dim、Private或Public語(yǔ)句聲明括號(hào)內(nèi)為空的數(shù)組。格式:Dim|Private|Public

數(shù)組名()As數(shù)據(jù)類(lèi)型例:Dima()AsInteger(2)在過(guò)程中用ReDim語(yǔ)句指明該數(shù)組的大小。格式:ReDim[Preserve]數(shù)組名(下標(biāo)1[,下標(biāo)2…])Preserve參數(shù):保留數(shù)組中原來(lái)的數(shù)據(jù)例:RedimA(10)

RedimPreserveA(20)說(shuō)明:

(1)ReDim語(yǔ)句是一個(gè)可執(zhí)行語(yǔ)句,只能出現(xiàn)在過(guò)程中,并且可以多次使用,改變數(shù)組的維數(shù)和大小。

(2)定長(zhǎng)數(shù)組聲明中的下標(biāo)只能是常量,而動(dòng)態(tài)數(shù)組ReDim

語(yǔ)句中的下標(biāo)是常量,也可以是有了確定值的變量。例:

PrivateSubForm_Click()DimNAsIntegerN=Val(InputBox(“輸入N=?”))Dima(N)AsIntegerEndsub【例5.4】多次使用ReDim

語(yǔ)句。在窗體層聲明如下數(shù)組:OptionBase1 '規(guī)定數(shù)組默認(rèn)下界值為1DimsName()AsString ' sName

為變長(zhǎng)字符串類(lèi)型數(shù)組然后編寫(xiě)如下事件過(guò)程:PrivateSubForm_Click()ReDimsName(2) '第一次重定義含2個(gè)元素sName(1)="趙陽(yáng)"sName(2)="張明"PrintsName(1);sName(2)ReDimPreservesName(3) '第二次重定義含3個(gè)元素,使用Preserve選項(xiàng)sName(3)="李好"PrintsName(1);sName(2);sName(3)ReDimsName(4) '第三次重定義含4個(gè)元素,不使用Preserve選項(xiàng)sName(4)="王華"PrintsName(1);sName(2);sName(3);ame(4)EndSub

5.1.4ForEachNext語(yǔ)句

ForEach…Next語(yǔ)句與For…Next語(yǔ)句類(lèi)似,都是實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)句。但ForEach…Next語(yǔ)句是專(zhuān)用于數(shù)組和對(duì)象集合的。格式:ForEach成員In 數(shù)組循環(huán)體[Exit For]…Next成員

說(shuō)明:(1)成員:為一個(gè)Variant變量,是為循環(huán)提供的,在ForEach…Next語(yǔ)句中代表數(shù)組中的每個(gè)元素,數(shù)組中有幾個(gè)元素,此成員就重復(fù)使用幾次,循環(huán)體就執(zhí)行幾遍。(2)在此之前經(jīng)過(guò)定義的數(shù)組,用在此處時(shí)僅僅是一個(gè)數(shù)組名,沒(méi)有括號(hào)和上下界。(3)ForEach…Next語(yǔ)句可以對(duì)數(shù)組元素進(jìn)行讀取、查詢(xún)、輸出等操作。例如:DimTest(1To20)…ForEach t In TestPrint t;Next t【例5.6】統(tǒng)計(jì)成績(jī)高于80分的學(xué)生人數(shù)。分析:假設(shè)有N個(gè)學(xué)生,學(xué)生成績(jī)已知,則定義一個(gè)數(shù)組變量Score,用Array函數(shù),給數(shù)組元素賦初值。在ForEach…Next循環(huán)體內(nèi)用行If語(yǔ)句檢查每一個(gè)元素的值,如果大于80就進(jìn)行統(tǒng)計(jì)(設(shè)Count為統(tǒng)計(jì)人數(shù)的變量)。VisualBasic應(yīng)用程序設(shè)計(jì)步驟如下:(1)建立應(yīng)用程序用戶(hù)界面:(2)建立Form1窗體界面。(3)設(shè)置界面中各對(duì)象的屬性:設(shè)置Form1的Caption為“統(tǒng)計(jì)成績(jī)大于80的人數(shù)”。(4)編寫(xiě)程序:OptionBase1PrivateSubForm_Load()ShowConstN=10DimCountAsInteger'Count變量用于統(tǒng)計(jì)人數(shù)Dimone,Score'one和Score都是Variant類(lèi)型Score=Array(67,78,45,90,85,63,93,82,48,88)'數(shù)組初始化Count=0ForEachoneInScoreIfone>80ThenCount=Count+1'若有成績(jī)>80的數(shù),Count值增1Nextone'輸出部分Print"成績(jī)分別是:"ForEachoneInScorePrintone;'輸出每個(gè)元素NextonePrint'輸出換行Print"成績(jī)>80的人數(shù)有";Count;"個(gè)"EndSub5.1.5控件數(shù)組1.控件數(shù)組的概念控件數(shù)組是由一組相同類(lèi)型的控件組成。它們共用一個(gè)控件名,絕大部分屬性也相同,但有一個(gè)屬性不同,即Index屬性的值不同。當(dāng)建立控件數(shù)組時(shí),系統(tǒng)給每個(gè)元素賦一個(gè)唯一的索引號(hào)(Index),通過(guò)屬性窗口的Index屬性,可以知道該控件的下標(biāo)是多少,第1個(gè)元素下標(biāo)是0。例如,CmdNum(8)表示名為CmdNum的控件數(shù)組的第9個(gè)元素。2.控件數(shù)組的建立控件數(shù)組的建立有兩種方法:(1)在設(shè)計(jì)時(shí)建立建立的步驟如下:①窗體上畫(huà)出某控件,可進(jìn)行控件名的屬性設(shè)置,這是建立的第一個(gè)元素。②選中該控件,進(jìn)行“復(fù)制”和“粘貼”操作,系統(tǒng)會(huì)提示對(duì)話框(假設(shè)先畫(huà)了一個(gè)“Command1”命令按鈕)。單擊【是】按鈕后,就建立了一個(gè)控件數(shù)組元素,進(jìn)行若干次“粘貼”操作,即可建立所需個(gè)數(shù)的控件數(shù)組元素?!纠?.7】按圖5-6設(shè)計(jì)窗體,其中單選按鈕(共5個(gè))構(gòu)成控件數(shù)組,要求當(dāng)單擊某個(gè)單選按鈕時(shí),能夠改變文本框中文字的大小5.2過(guò)程5.2.1過(guò)程的概念通用過(guò)程告訴應(yīng)用程序如何完成一項(xiàng)指定的任務(wù)。一旦確定了通用過(guò)程,就必須由應(yīng)用程序來(lái)調(diào)用。反之,直到為響應(yīng)用戶(hù)引發(fā)的事件或系統(tǒng)引發(fā)的事件而調(diào)用事件過(guò)程時(shí),事件過(guò)程通常總是處于空閑狀態(tài)。5.2.2子程序過(guò)程Sub1.子程序過(guò)程的定義格式:[Private|Public][Static]Sub<過(guò)程名>[<形參表>][<語(yǔ)句序列>][ExitSub][<語(yǔ)句序列>]EndSub2.子程序過(guò)程的建立Sub過(guò)程的建立操作步驟如下:(1)執(zhí)行“工程”菜單中的“添加模塊”命令,打開(kāi)“添加模塊”對(duì)話框,在該對(duì)話框中選擇“新建”選項(xiàng)卡,然后雙擊“模塊”圖標(biāo),打開(kāi)模塊代碼窗口。(2)選擇“工具”菜單中的“添加過(guò)程”菜單項(xiàng),打開(kāi)“添加過(guò)程”對(duì)話框。(3)在“名稱(chēng)”文本框中輸入過(guò)程名,從“類(lèi)型”組中選擇過(guò)程類(lèi)型,從“范圍”組中選擇范圍。(4)在“范圍”欄內(nèi)選擇過(guò)程的適用范圍,可以選擇“公有的”或“私有的”。(5)單擊“確定”按鈕。3.子程序過(guò)程的調(diào)用調(diào)用引起過(guò)程的執(zhí)行。也就是說(shuō),要執(zhí)行一個(gè)過(guò)程,必須調(diào)用該過(guò)程。每次調(diào)用子過(guò)程都會(huì)執(zhí)行Sub與EndSub之間的語(yǔ)句序列。調(diào)用子過(guò)程有多種技巧,它們與過(guò)程的類(lèi)型、位置以及在應(yīng)用程序中的使用方法有關(guān)。調(diào)用子過(guò)程有兩種方法:(1)使用Call語(yǔ)句:Call<過(guò)程名>([<實(shí)參表>](2)直接使用過(guò)程名:<過(guò)程名>[<實(shí)參表>]

【例5.8】編寫(xiě)交換兩個(gè)數(shù)的子過(guò)程,并調(diào)用該過(guò)程交換a和b,c和d兩組變量的值。分析:首先要編寫(xiě)一個(gè)交換兩個(gè)數(shù)的過(guò)程。交換a和b的值時(shí),調(diào)用該過(guò)程一次,交換c和d的值時(shí)再調(diào)用該過(guò)程一次。編一個(gè)交換兩個(gè)整型變量值的子過(guò)程。PrivateSubSwap(XAsInteger,YAsInteger)DimtempAsIntegerTemp=X:X=Y:Y=TempEndSub編寫(xiě)事件過(guò)程來(lái)調(diào)用通用過(guò)程。PrivateSubCmdchange1_Click()DimaAsInteger,bAsIntegera=4:b=5Print"交換前a,b的值為:"Print"a=";a,"b=";bCallswap(a,b)Print"交換后a,b的值為:"Print"a=";a,"b=";bEndSubPrivateSubCmdchange2_Click()DimcAsInteger,dAsIntegerc=2:d=3Print"交換前c,d的值為:"Print"c=";c,"d=";dSwapc,dPrint"交換后c,d的值為:"Print"c=";c,"d=";dEndSub程序運(yùn)行結(jié)果如下圖所示

5.2.3函數(shù)過(guò)程Function1.函數(shù)過(guò)程的定義函數(shù)過(guò)程的定義與子過(guò)程的定義很相似。不同的是,函數(shù)過(guò)程可以返回一個(gè)值。Function函數(shù)的語(yǔ)法格式如下:[Private|Public][Static]Function<函數(shù)名>[<形參表>][As<類(lèi)型>][<語(yǔ)句序列>][<函數(shù)名>=<表達(dá)式>][ExitFunction][<語(yǔ)句序列>]EndFunction【例題5.9】編寫(xiě)計(jì)算任意整數(shù)

溫馨提示

  • 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)論