版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
子程序與函數(shù)過程第一頁(yè),共四十三頁(yè),編輯于2023年,星期二子程序過程(2)函數(shù)過程(4)過程之間參數(shù)傳遞(3)變量的作用域(1)講課次序第二頁(yè),共四十三頁(yè),編輯于2023年,星期二定義格式:[Static][Private|Public]Sub子程序名
([形參列表])
語句組1 [ExitSub]
語句組2EndSub[ByVal|ByRef]變量名[()][As類型][,…]提前結(jié)束子程序過程只能被本窗體中的過程調(diào)用能被程序中的所有過程調(diào)用。在模塊中定義,調(diào)用時(shí)直接用過程名;在窗體中定義,調(diào)用須加該過程所在窗體名第三頁(yè),共四十三頁(yè),編輯于2023年,星期二【實(shí)例6.1】交換兩個(gè)整型變量值的子過程PrivateSubSwap(XAsInteger,YAsInteger)
DimtempAsInteger
Temp=X:X=Y:Y=TempEndSub測(cè)試:參數(shù)的傳遞過程——值傳遞和地址傳遞,用下過程。第四頁(yè),共四十三頁(yè),編輯于2023年,星期二PrivateSubCommand1_Click()DimaAsInteger,bAsIntegera=3b=5CallSwap(a,b)Printa,bEndSub第五頁(yè),共四十三頁(yè),編輯于2023年,星期二【工具】|【添加過程】第六頁(yè),共四十三頁(yè),編輯于2023年,星期二子程序過程的調(diào)用格式Call過程名[(實(shí)際參數(shù))]過程名[實(shí)際參數(shù)]必須有確定值個(gè)數(shù)、類型必須與形參一一對(duì)應(yīng)第七頁(yè),共四十三頁(yè),編輯于2023年,星期二【實(shí)例6.2】試編寫一個(gè)無參數(shù)的sub子過程Formmove(),它的功能是將當(dāng)前正在運(yùn)行的窗體移動(dòng)到屏幕的中央。第八頁(yè),共四十三頁(yè),編輯于2023年,星期二Fommove()子過程代碼PublicSubformmove()Form1.Top=(Screen.Height-Form1.Height)/2Form1.Left=(Screen.Width-Form1.Width)/2EndSub第九頁(yè),共四十三頁(yè),編輯于2023年,星期二移動(dòng)按鈕代碼
PrivateSubCommand1_Click()CallFormmoveEndsub第十頁(yè),共四十三頁(yè),編輯于2023年,星期二函數(shù)過程的定義函數(shù)過程的調(diào)用第十一頁(yè),共四十三頁(yè),編輯于2023年,星期二函數(shù)過程的一般定義格式[Static][Private|Public]Function
函數(shù)名
([形參列表])[As類型]
語句組1 [函數(shù)名=返回值
ExitFunction]
語句組2
函數(shù)名=返回值EndFunction
必有該語句提前結(jié)束函數(shù)第十二頁(yè),共四十三頁(yè),編輯于2023年,星期二函數(shù)過程的調(diào)用格式變量名=函數(shù)名(實(shí)際參數(shù))注意:必須有確定值個(gè)數(shù)、類型必須與形參一一對(duì)應(yīng)第十三頁(yè),共四十三頁(yè),編輯于2023年,星期二例:定義求an值的函數(shù)。PublicFunctionan(aAsInteger,nAsInteger)x=1Fori=1Tonx=x*aNextian=xEndFunction第十四頁(yè),共四十三頁(yè),編輯于2023年,星期二PrivateFunctionGcd(mAsInteger,nAsInteger)DimrAsInteger,tAsIntegerIfm<nThent=m:m=n:n=tEndIf
Dor=mModnm=nn=rLoopWhile(r<>0)Gcd=mEndFunctionm*n/Gcd((m),(n))第十五頁(yè),共四十三頁(yè),編輯于2023年,星期二【實(shí)例6-3】編寫一個(gè)函數(shù)過程,統(tǒng)計(jì)一串字符中某個(gè)字符的出現(xiàn)次數(shù),通過調(diào)用函數(shù)過程實(shí)現(xiàn)。第十六頁(yè),共四十三頁(yè),編輯于2023年,星期二第十七頁(yè),共四十三頁(yè),編輯于2023年,星期二函數(shù)過程代碼PublicFunctionstatistic(str$,s$)AsIntegerDimk%,i%k=0Fori=1ToLen(str)IfMid(str,i,1)=sThenk=k+1EndIfNextistatistic=kEndFunction第十八頁(yè),共四十三頁(yè),編輯于2023年,星期二統(tǒng)計(jì)按鈕代碼PrivateSubcmdstat_Click()Dimc1$,c2$,m%c1=txtin.Textc2=txtsearch.Textm=statistic(c1,c2)txtcount.Text=mEndSub第十九頁(yè),共四十三頁(yè),編輯于2023年,星期二【實(shí)例6-4】某班有m名學(xué)生,要選派n名學(xué)生參加合唱隊(duì),計(jì)算有多少種選派方法。第二十頁(yè),共四十三頁(yè),編輯于2023年,星期二計(jì)算階乘的函數(shù)過程PublicFunctionfactorial(ByValnAsInteger)AsDoubleDimiAsInteger,tAsDoublet=1Fori=1Tont=t*iNextifactorial=tEndFunction第二十一頁(yè),共四十三頁(yè),編輯于2023年,星期二計(jì)算按鈕代碼:PrivateSubcmdcount_Click()DimmAsInteger,nAsInteger,cAsDoublem=Val(txtstudent.Text)n=Val(txtneed.Text)c=factorial(m)/(factorial(n)*factorial(m-n))lblways.Caption=Str(c)EndSub第二十二頁(yè),共四十三頁(yè),編輯于2023年,星期二傳地址與傳值傳值方式在形參前加關(guān)鍵字ByVal,指定該參數(shù)是傳值方式例如:PrivateSubw(ByValn%)傳地址方式在形參前加關(guān)鍵字ByRef或缺省關(guān)鍵字,則指定該參數(shù)是傳地址方式。例如:PrivateSubw(ByRefx!,y!)注意:按傳地址方式傳遞參數(shù)時(shí),要求實(shí)參必須是變量名第二十三頁(yè),共四十三頁(yè),編輯于2023年,星期二【實(shí)例6.5】編寫交換兩個(gè)數(shù)的子過程,s1用傳值方式,s2用傳地址方式,區(qū)分兩個(gè)過程分別調(diào)用后的結(jié)果。第二十四頁(yè),共四十三頁(yè),編輯于2023年,星期二s1用傳值方式PrivateSubS1(ByValxAsInteger,ByValyAsInteger)DimtempAsIntegertemp=x::x=y:y=tempEndSub第二十五頁(yè),共四十三頁(yè),編輯于2023年,星期二s2用傳地址方式PrivateSubS2(ByRefxAsInteger,yAsInteger)DimtempAsIntegertemp=x:x=y:y=tempEndSub第二十六頁(yè),共四十三頁(yè),編輯于2023年,星期二調(diào)用代碼:PrivateSubCommand1_Click()DimaAsInteger,bAsIntegera=20:b=30Print"調(diào)用前a和b的值為:";Tab(30);a;bCallS1(a,b)Print"調(diào)用s1后a和b的值為:";Tab(30);a;ba=20:b=30CallS2(a,b)Print"調(diào)用s2后a和b的值為:";Tab(30);a;bEndSub第二十七頁(yè),共四十三頁(yè),編輯于2023年,星期二在本過程內(nèi)使用的變量在本窗體內(nèi)使用的變量在所有窗體內(nèi)使用的變量變量局部變量窗體/模塊級(jí)變量全局變量靜態(tài)靜態(tài)動(dòng)態(tài)變量Static靜態(tài)變量Dim窗體或標(biāo)準(zhǔn)模塊的“通用”聲明段中用Dim或Private關(guān)鍵字聲明的變量在窗體或標(biāo)準(zhǔn)模塊中“通用”“聲明”段用public關(guān)鍵字聲明;引用其它窗體模塊中聲明的public變量,需要加窗體名。第二十八頁(yè),共四十三頁(yè),編輯于2023年,星期二例:分別將k定義為不同級(jí)別的變量,觀察單擊命令按鈕事件過程中K值的變化情況。OptionexplicitPrivateSubCommand1_Click()k=k+1PrintkEndSub注意:引用其它窗體模塊中聲明的public變量,需要加窗體名。第二十九頁(yè),共四十三頁(yè),編輯于2023年,星期二【實(shí)例6-6】模塊級(jí)變量與局部變量應(yīng)用實(shí)例。第三十頁(yè),共四十三頁(yè),編輯于2023年,星期二OptionExplicitDimx%PrivateSubForm_click()x=33Print"x=";xCallli1Callli2'printx1EndSub或工具||選項(xiàng),□要求聲明變量第三十一頁(yè),共四十三頁(yè),編輯于2023年,星期二PrivateSubli1()Dimx1%x1=11Print"x1=";x1,Print"x=";xEndSub第三十二頁(yè),共四十三頁(yè),編輯于2023年,星期二PrivateSubli2()Dimx2%x2=22Print"x2=";x2,Print"x=";xEndSub第三十三頁(yè),共四十三頁(yè),編輯于2023年,星期二
聲明形式:
Static變量名[AS類型]第三十四頁(yè),共四十三頁(yè),編輯于2023年,星期二在文本框內(nèi)隨機(jī)產(chǎn)生n個(gè)小寫英文字母作為范文;當(dāng)焦點(diǎn)進(jìn)入打字區(qū)時(shí)開始計(jì)時(shí);用戶輸入n個(gè)字母時(shí)計(jì)時(shí)結(jié)束,禁止向打字區(qū)再輸入內(nèi)容,并統(tǒng)計(jì)打字的速度和正確率。第三十五頁(yè),共四十三頁(yè),編輯于2023年,星期二測(cè)試代碼OptionExplicitDimn%,tAsDatePrivateSubcommand1_click()Dimi%,str$Randomizen=Int(Rnd*31)+10Fori=1Tonstr=Chr$(Int(Rnd*26)+97)'隨機(jī)產(chǎn)生小寫字母Text1.Text=Text1.Text&strNextiEndSub第三十六頁(yè),共四十三頁(yè),編輯于2023年,星期二開始時(shí)間PrivateSubtext2_gotfocus()t=TimeText3.Text=TimeEndSub第三十七頁(yè),共四十三頁(yè),編輯于2023年,星期二打字速度PrivateSubtext2_keypress(keyasciiAsInteger)Dimdui%,cuo%,i%IfLen(Text2)=nThen'鍵入滿n個(gè)字母Text4.Text=TimeText5.Text=str(Int(n/DateDiff("s",t,Time)*100+0.5)/100)&"字/秒"Text2.Locked=True四舍五入保留兩位小數(shù)第三十八頁(yè),共四十三頁(yè),編輯于2023年,星期二dateDiff函數(shù)形式:dateDiff(要間隔日期形式,日期1,日期2)作用:兩個(gè)指定日期按日期形式求相差的日期。日期形式:yyyy(年),q(季),m(月),y(一年的天數(shù)),d(日),w(一周的日數(shù)),ww(星期),h(時(shí)),n(分),s(秒)第三十九頁(yè),共四十三頁(yè),編輯于2023年,星期二準(zhǔn)確率Fori=1TonIfMid(Text1,i,1)=Mid(Text2,i,1)Thendui=dui+1Elsecuo=cuo+1EndIfNextiText6.Text=Int(dui/n*10000+0.5)/100&"%"'顯示準(zhǔn)確率EndIfEndSub第四十頁(yè),共四十三頁(yè),編輯于2023年,星期二下列程序代碼在單擊命令按鈕時(shí)的輸出結(jié)果SubSS(ByValX,ByRefY,Z)X=X+1Y=Y+1Z=Z+1EndSubPrivateSubCommand1_Click()a=1:b=2:c=3CallSS(a,b,c)Printa,b,cEndSub134
第四十一頁(yè),共四十
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度門店合伙人激勵(lì)機(jī)制服務(wù)合同4篇
- 2025年度二零二五農(nóng)行個(gè)人二手房交易貸款合同2篇
- 2025年度綠色建筑節(jié)能改造工程合同(二零二五版)4篇
- 二零二五年度商業(yè)門面租賃合同范本-@-1
- 2025年度綠色生態(tài)餐廳檔口租賃合同樣本4篇
- 2025年度城市軌道交通鋼管材料供應(yīng)與承包合同協(xié)議書范本
- 2025版南海區(qū)創(chuàng)新創(chuàng)業(yè)人才居住就業(yè)支持合同4篇
- 2025版門面租賃合同消防安全及責(zé)任承擔(dān)4篇
- 二零二五年度外賣送餐服務(wù)合同書(含增值服務(wù))
- 二零二五年度年薪制工資與員工晉升合同模板
- 衛(wèi)生服務(wù)個(gè)人基本信息表
- 醫(yī)學(xué)脂質(zhì)的構(gòu)成功能及分析專題課件
- 高技能人才培養(yǎng)的策略創(chuàng)新與實(shí)踐路徑
- 廣東省湛江市廉江市2023-2024學(xué)年八年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2024年湖北省知名中小學(xué)教聯(lián)體聯(lián)盟中考語文一模試卷
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- 交叉口同向可變車道動(dòng)態(tài)控制與信號(hào)配時(shí)優(yōu)化研究
- 燃?xì)庑袠I(yè)有限空間作業(yè)安全管理制度
- 數(shù)列練習(xí)題(含答案)基礎(chǔ)知識(shí)點(diǎn)
- 人教版(2024新版)七年級(jí)上冊(cè)英語期中+期末學(xué)業(yè)質(zhì)量測(cè)試卷 2套(含答案)
- 通用電子嘉賓禮薄
評(píng)論
0/150
提交評(píng)論