第5講-過程(4學(xué)時)_第1頁
第5講-過程(4學(xué)時)_第2頁
第5講-過程(4學(xué)時)_第3頁
第5講-過程(4學(xué)時)_第4頁
第5講-過程(4學(xué)時)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2013年3月等級考試輔導(dǎo)

二級VisualBasic授課教師:岳靜Tel-Mail:qiuqiuyj@163.com第六講過程Sub過程2變量作用域1Function過程3數(shù)組參數(shù)4對象參數(shù)5P120局部變量和全局變量名稱作用域聲明位置使用語句局部變量過程過程中Dim或Static模塊變量窗體模塊或標(biāo)準(zhǔn)模塊模塊的通用聲明段Dim或Private全局變量整個應(yīng)用程序標(biāo)準(zhǔn)模塊的聲明部分Public或Global定義在過程中的靜態(tài)變量(static)在每次執(zhí)行該過程時會保留上次執(zhí)行的結(jié)果2006年9月33題以下敘述中錯誤的是A)語句“Dima,bAsInteger”聲明了兩個整型變量B)不能在標(biāo)準(zhǔn)模塊中定義Static型變量C)窗體層變量必須先聲明,后使用D)在事件過程或通用過程內(nèi)定義的變量是局部變量√2004年9月第8題

在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下事件過程:

PrivateSubCommand1_Click()

StaticxAsInteger

Cls

Fori=1To2

y=y+x

x=x+2

Next

Printx,y

EndSub

程序運(yùn)行后,連續(xù)三次單擊Command1按鈕后,窗體上顯示的是

A)42C)1230D)46B)12182002年9月26題在窗體上畫一個名稱為Commandl的命令按鈕,然后編寫如下程序:

PrivateSubCommand1_Click()

StaticXAsInteger

StaticYAsInteger

Cls

Y=1

Y=Y+5

X=5+X

PrintX,Y

EndSub

程序運(yùn)行時,三次單擊命令按鈕Commandl后,窗體上顯示的結(jié)果為

A)1516C)1515D)56B)156考點(diǎn)3Function過程[Static][Private|Public]Function

過程名([參數(shù)])[As數(shù)據(jù)類型]

語句塊

[過程名=表達(dá)式][ExitFunction][語句塊]EndFunction編寫1個函數(shù)實(shí)現(xiàn)素?cái)?shù)求解第一步:確定形式參數(shù)。Functionfun(xAsInteger)AsBoolean第二步:編寫素?cái)?shù)算法Functionfun(xAsInteger)AsBooleanFori=2Tox-1IfxModi=0ThenExitForEndIfNextiIfi>x-1Then'是素?cái)?shù)

Else'不是素?cái)?shù)

EndIfEndFunction第三步:編寫代碼“過程名=表達(dá)式”,確定返回值函數(shù)過程fun=True'是素?cái)?shù)fun=False'不是素?cái)?shù)考點(diǎn)3Function過程說明:(1)調(diào)用Sub過程相當(dāng)于執(zhí)行一個語句,不直接返回值;調(diào)用Function過程要返回一個值,因此可以像內(nèi)部函數(shù)一樣在表達(dá)式中使用。(2)過程定義不可嵌套,因而不能在事件過程中定義通用過程,但可在事件過程內(nèi)調(diào)用通用過程。在按鈕單擊事件中調(diào)用前例中編寫的Fun過程。PrivateSubCommand1_Click()DimxAsIntegerx=Val(InputBox("請輸入要判斷的數(shù)"))

Iffun(x)=True

ThenPrintx;"是素?cái)?shù)"ElsePrintx;"不是素?cái)?shù)"EndIfEndSub過程不可嵌套定義、但可嵌套調(diào)用

真題P137-21P138-49上機(jī)真題【例】捷成36-4P121考點(diǎn)1Sub過程一、建立Sub過程[Static][Private|Public]Sub過程名([參數(shù)表])

語句塊

[ExitSub]

[語句塊]EndSubPrivateSubabc(xAsInteger)IfSgn(x)=1ThenMsgBox"輸入的是正數(shù)"ElseIfSgn(x)=-1ThenMsgBox"輸入的是負(fù)數(shù)"ElseMsgBox"輸入的0"EndIfEndSub子程序過程調(diào)用Sub過程1.用Call語句調(diào)用Sub過程

Call過程名[(實(shí)際參數(shù))]

2.把過程名作為一個語句來使用

過程名實(shí)際參數(shù)與第一種方式相比,它有兩點(diǎn)不同:(1)去掉關(guān)鍵字Call;(2)去掉"實(shí)際參數(shù)"的括號。PrivateSubCommand1_Click()DimaAsIntegera=InputBox("entera")

Callabc(a)EndSubPrivateSubabc(xAsInteger)IfSgn(x)=1ThenMsgBox"輸入的是正數(shù)"ElseIfSgn(x)=-1ThenMsgBox"輸入的是負(fù)數(shù)"ElseMsgBox"輸入的0"EndIfEndSubPrivateSubCommand1_Click()DimaAsIntegera=InputBox("entera")

abca

EndSubPrivateSubabc(xAsInteger)IfSgn(x)=1ThenMsgBox"輸入的是正數(shù)"ElseIfSgn(x)=-1ThenMsgBox"輸入的是負(fù)數(shù)"ElseMsgBox"輸入的0"EndIfEndSub通用過程只有通過事件過程調(diào)用才能被執(zhí)行(2007年9月選擇題第30題)

下面程序的輸出結(jié)果是________。

Private

Sub

Command1_Click()

ch$=”ABCDEF”

proc

ch

Print

ch

End

Sub

Private

Sub

proc(ch

As

String)

s=""

For

k=Len(ch)

To

1

Step-1

s=s&Mid(ch,k,1)

Next

k

ch=s

End

Sub

(A)ABCDEF

(C)A

(D)F(B)FEDCBA上機(jī)教程P103-真題8.1【例】捷成37-5程序運(yùn)行后,如果單擊“讀入數(shù)據(jù)”按鈕,則調(diào)用題目所提供的ReadData1和ReadData2的過程讀入datain1.txt和datain2.txt文件中的各20個整數(shù),分別放入Arr1和Arr2兩個數(shù)組中;如果單擊“計(jì)算”按鈕,則把兩個數(shù)組中對應(yīng)下標(biāo)的元素相減,其結(jié)果放入第三個數(shù)組中(即:第一個數(shù)組的第n個元素減去第二個數(shù)組的第n個元素,其結(jié)果作為第三個數(shù)組的第n個元素。這里的n為1、2、…、20),最后計(jì)算第三個數(shù)組各元素之和,把所求得的和在窗體上顯示出來;并調(diào)用題目中給出的WriteData過程將所得的和存入考生文件夾下的dataout.txt文件中。P126考點(diǎn)4參數(shù)傳送一、參數(shù)傳遞PrivateSubCommand1_Click()DimaAsSingleDimbAsSinglea=InputBox("entera")b=InputBox("enterb")s=xiebian(a,b)PrintsEndSubPrivateFunctionxiebian(b1AsSingle,b2AsSingle)AsSinglexiebian=(b1^2+b2^2)^(1/2)EndFunction形參實(shí)參傳地址:實(shí)參為變量名或數(shù)組、形參ByRef聲明傳值:實(shí)參為常量或表達(dá)式、形參ByVal聲明4de(傳地址)6a=1:b=2:c=3:d=4Calltest1(a,b,c,d)Printa;b;c;d…PrivateSubtest1(b%,c%,d%,e%)e=b+c+dEndSub‘1236內(nèi)存單元傳地址ByRef傳地址調(diào)用:形參改變,實(shí)參發(fā)生對應(yīng)變化形參和實(shí)參類型必須一致2004年9月22題在窗體上畫一個名稱為Command1的命令按鈕,并編寫如下程序:

PrivateSubCommand1_Click()

DimxAsInteger

StaticyAsInteger

x=10

y=5

Callf1(x,y)

Printx,y

EndSub

PrivateSubf1(ByRefx1AsInteger,y1AsInteger)

x1=x1+2

y1=y1+2

EndSub

程序運(yùn)行后,單擊命令按鈕,在窗體上顯示的內(nèi)容是

A)105B)125C)107D)127

(2006年4月選擇題第25題)在窗體上畫1個命令按鈕,其名稱為Commandl,然后編寫如下程序:PrivateSubCommand1_Click()Dima(10)AsIntegerDimxAsIntegerFori=lTo10a(i)=8+iNextx=2Printa(f(x)+x)EndSubFunctionf(xAsInteger)x=x+3f=xEndFunction程序運(yùn)行后,單擊命令按鈕,輸出結(jié)果為________。(A)12(B)l5(C)17(D)18a=1:b=2:c=3:d=4Calltest2(a,b,c,d)Printa;b;c;d…PrivateSubtest2(b%,c%,d%,ByVale%)e=b+c+d EndSub‘1234e(傳值)d446內(nèi)存單元傳值ByVal傳值調(diào)用:形參改變,不影響實(shí)參(2005年4月選擇題29題)

在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下通用過程和命令按鈕的事件過程:

PrivateFunctionfun(ByValmAsInteger)

IfmMod2=0Then

fun=2

Else

fun=1

EndIfEndFunctionPrivateSubCommand1_Click()

DimiAsInteger,sAsInteger

s=0

Fori=1To5

s=s+fun(i)

Next

PrintsEndSub程序運(yùn)行后,單擊命令按鈕,在窗體上顯示的是_____。

(A)6(B)7(C)8(D)92003年9月23題

設(shè)有如下通用過程:

PublicFunctionf(xAsInteger)

DimyAsInteger

x=20

y=2

f=x*y

EndFunction

在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下事件過程:

PrivateSubCommand1_Click()

StaticxAsInteger

x=10

y=5

y=f(x)

Printx;y

EndSub程序運(yùn)行后,如果單擊命令按鈕,則在窗體上顯示的內(nèi)容是A)105B)205D)1040C)2040上機(jī)真題【例】捷成21-5P127數(shù)組參數(shù)用數(shù)組作為過程的參數(shù)時,應(yīng)在數(shù)組名的后面加上一對括號。

1、要把整個數(shù)組作參數(shù)傳遞給過程,形參與實(shí)參都要使用數(shù)組名,但要省略數(shù)組的上下界,且保留括號;

2、整個數(shù)組作參數(shù)傳遞時,只能傳地址;

3、單個數(shù)組元素作參數(shù)傳遞給過程時,實(shí)參要指明元素的下標(biāo);

4、在過程中可以使用LBound()和UBound()函數(shù)來確定數(shù)組的上下界。(2006年9月選擇題第26題)SubsubP(b()AsInteger) Fori=1To4b(i)=2*i NextiEndSubPrivateSubCommand1_Click() Dima(1To4)AsInteger a(1)=5 a(2)=6 a(3)=7 a(4)=8 subPa() Fori=1To4Printa(i) NextiEndSub(A)2(B)5 (C)10(D)出錯

4 6 126 7 148 8 16√(2003年9月選擇題第24題)

設(shè)有如下通用過程:

PublicSubFun(a(),ByValxAsInteger)

Fori=1To5

x=x+a(i)

Next

EndSub

在窗體上畫一個名稱為Text1的文本框和一個名稱為Command1的命令按鈕,然后編寫如下的事件過程:

PrivateSubCommand1_Click()

Dimarr(5)AsVariantFori=1To5

arr(i)=i

Next

n=10

CallFun(arr(),n)

Text1.Text=n

EndSub

程序運(yùn)行后,單擊命令按鈕,則在文本框中顯示的內(nèi)容是________。(A)10(B)15(C)25(D)24P63-上機(jī)真題6.2【例】捷成29-4

上機(jī)真題8.4【例】捷成26-4數(shù)組作為過程參數(shù)形參:數(shù)組名(),括號不可省,括號內(nèi)不帶下標(biāo);實(shí)參:可以是數(shù)組名或數(shù)組名(),若帶括號,不帶下標(biāo)。上機(jī)真題【例】捷成33-3P129可選參數(shù)和可變參數(shù)可選參數(shù)

在過程的形參列表中加入Optional關(guān)鍵字,就可以指定過程的參數(shù)為可選的。如果指定了可選參數(shù),則參數(shù)表中此參數(shù)后面的其它參數(shù)也必是可選的,并且要用Optional關(guān)鍵字來聲明。

例:求兩個或三個數(shù)的和的函數(shù)過程。PublicFunctionmysum(firstAsInteger,secondAsLong,Optionalthird)mysum=first+secondIfNotIsMissing(third)Thenmysum=mysum+thirdEndFunctionPrivateSubCommand1_Click()DimaAsInteger,bAsLong,cAsDoubleDimsumAsIntegera=10:b=20Sum=mysum(a,b)Print"sum=";Suma=10:b=20:c=30Sum=mysum(a,b,c)Print"sum=";SumEndSubIsMissing()——檢測可選參數(shù)是否被省略P129可選參數(shù)和可變參數(shù)P130考點(diǎn)5對象參數(shù)

對象作為參數(shù)的格式為:

Sub過程名(形參表)語句塊[ExitSub]

……

EndSub"形參表"中形參的類型通常為Control或Form。注意,在調(diào)用含有對象的過程時,對象只能通過傳地址方式傳送。因此在定義過程時,不能在其參數(shù)前加關(guān)鍵字ByVal。P130-考點(diǎn)6對象參數(shù)一、窗體參數(shù)當(dāng)形參表中的形參的類型為Form時,是把窗體作為函數(shù)的參數(shù),它通常用在對一批窗體進(jìn)行相同的屬性設(shè)置。二、控件參數(shù)當(dāng)形參表中的形參的類型為Control時,是把控件作為函數(shù)的參數(shù),它通常用在對一批控件進(jìn)行相同的屬性設(shè)置。(2004年9月選擇題第21題)設(shè)一個工程由兩個窗體組成,其名稱分別為Form1和Form2,在Form1上有一個名稱為Command1的命令按鈕。窗體Form1的程序代碼如下:PrivateSubCommand1_Click()

DimaAsInteger

a=10

Callg(Form2,a)EndSubPrivateSubg(fAsForm,xAsInteger)

y=IIf(x>10,100,-100)

f.Show

f.Caption=yEndSub

運(yùn)行以上程序,正確的結(jié)果是_____

溫馨提示

  • 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

提交評論