版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
3.4過(guò)程過(guò)程是完成特定功能的一組程序代碼,這組程序代碼是由若干個(gè)語(yǔ)句構(gòu)成的。在程序設(shè)計(jì)過(guò)程中,將一些常用的功能編寫(xiě)成過(guò)程,可供多個(gè)不同的事件過(guò)程多次調(diào)用,從而可以減少重復(fù)編寫(xiě)代碼的工作量,實(shí)現(xiàn)代碼重用,使程序簡(jiǎn)練、便于調(diào)試和維護(hù)。3.4.1過(guò)程概述PrivateSubForm_Click()DimiAsInteger,k1AsLong,k2AsLongk1=1:k2=1Fori=1To5k1=k1*iNextiFori=1To10k2=k2*iNextiPrint"5!+10!=";k1+k2EndSub現(xiàn)有一個(gè)實(shí)際問(wèn)題,要求編寫(xiě)程序求5!+10!的值。對(duì)于這個(gè)問(wèn)題,可以用前面所學(xué)的循環(huán)結(jié)構(gòu)編寫(xiě)如下程序:將求階乘的過(guò)程編寫(xiě)如下:PrivateFunctionJc(nAsInteger)AsLongDimiAsInteger,kAsLongk=1Fori=1Tonk=k*iNextiJc=kEndFunction調(diào)用上面的過(guò)程求出5!和10!,編寫(xiě)代碼如下:PrivateSubCommand1_Click()Print"5!+10!=";Jc(5)+Jc(10)EndSub結(jié)論通過(guò)上面的例子,可以體會(huì)到過(guò)程在編寫(xiě)程序中的重要作用在VisualBasic中,過(guò)程通常使用在兩個(gè)方面:(1)如果一個(gè)應(yīng)用程序要完成一個(gè)復(fù)雜任務(wù),則通常把這個(gè)復(fù)雜任務(wù)劃分為若干個(gè)小任務(wù),并把這些小任務(wù)編寫(xiě)成一個(gè)個(gè)過(guò)程。(2)在一個(gè)完成復(fù)雜任務(wù)的應(yīng)用程序中,往往要編寫(xiě)一些功能完全相同或相近的程序段,為了避免程序繁瑣冗長(zhǎng)使程序簡(jiǎn)練一些,也可以把這樣的程序段獨(dú)立出來(lái)編寫(xiě)成過(guò)程,然后在需要的地方調(diào)用該過(guò)程,完成相應(yīng)的工作。VisualBasic的過(guò)程分類系統(tǒng)提供的過(guò)程(1)內(nèi)部函數(shù):可以直接調(diào)用其完成相應(yīng)的功能;(2)事件過(guò)程:是VisualBasic應(yīng)用程序的主體,系統(tǒng)提供了它們的框架,用戶可以根據(jù)需要填寫(xiě)具體的內(nèi)容。用戶自定義的通用過(guò)程。(1)子程序過(guò)程(Sub過(guò)程):沒(méi)有返回值(2)函數(shù)過(guò)程(Function過(guò)程):有返回值。3.4.2Function過(guò)程1.Function過(guò)程的建立建立Function過(guò)程有兩種方法:直接定義和利用菜單。在窗體或標(biāo)準(zhǔn)模塊的“代碼窗口”(注意在“對(duì)象”框中應(yīng)選擇“通用”)中直接定義Function過(guò)程,采用如下格式:[Public|Private][Static]Function函數(shù)名([形參列表])[As類型]語(yǔ)句組函數(shù)名=表達(dá)式[ExitFunction]EndFunction說(shuō)明:(1)一個(gè)Function過(guò)程以Function開(kāi)頭,而以EndFunction結(jié)束,兩者之間的部分是描述過(guò)程操作的語(yǔ)句組,可以稱為“過(guò)程體”或“函數(shù)體”。(2)函數(shù)名:命名規(guī)則與變量名規(guī)則相同。但不能與系統(tǒng)的內(nèi)部函數(shù)或其它通用過(guò)程同名,也不能與已定義的全局變量和本模塊中模塊級(jí)變量同名。(3)在函數(shù)體內(nèi),函數(shù)名可以當(dāng)變量使用,函數(shù)的返回值就是通過(guò)對(duì)函數(shù)名的賦值語(yǔ)句來(lái)實(shí)現(xiàn)的,在函數(shù)過(guò)程中至少要對(duì)函數(shù)名賦值一次。(4)形參列表:形式參數(shù)通常簡(jiǎn)稱“形參”,必須是變量;僅表示形參的類型、個(gè)數(shù)、位置;定義時(shí)是無(wú)值的,只有在過(guò)程被調(diào)用時(shí),形參和實(shí)參結(jié)合后才獲得相應(yīng)的值;多個(gè)形參之間用逗號(hào)分隔。過(guò)程可以無(wú)形式參數(shù),但括號(hào)不能省。(5)As類型:是指函數(shù)返回值的類型。若省略,則函數(shù)返回值是變體類型。(6)ExitFunction:表示退出函數(shù)過(guò)程,通常是與選擇結(jié)構(gòu)(If或SelectCase語(yǔ)句)聯(lián)用,即當(dāng)滿足一定條件時(shí),退出函數(shù)過(guò)程。(7)關(guān)鍵字Public、Private和Static表示了過(guò)程的作用域(有效范圍)。Public表示公有過(guò)程,該過(guò)程可以被任何模塊(窗體模塊和標(biāo)準(zhǔn)模塊)中的過(guò)程調(diào)用;Private表示私有過(guò)程,該過(guò)程只能被本模塊(窗體模塊或標(biāo)準(zhǔn)模塊)中的其他過(guò)程調(diào)用;Static過(guò)程也是私有過(guò)程,但這時(shí)表明過(guò)程中的局部變量都是Static型。注意VisualBasic的過(guò)程默認(rèn)為Public過(guò)程。例3.17編寫(xiě)一個(gè)求兩個(gè)數(shù)中較大數(shù)的Function過(guò)程。具體實(shí)現(xiàn)代碼如下:PublicFunctionMax(xAsSingle,yAsSingle)AsSingle………③Ifx>yThenMax=xElseMax=yEndIfEndFunction……④2.Function過(guò)程的調(diào)用調(diào)用引起過(guò)程的執(zhí)行。也就是說(shuō),要執(zhí)行一個(gè)過(guò)程,必須調(diào)用該過(guò)程。Function過(guò)程的調(diào)用比較簡(jiǎn)單,可以像使用VisualBasic的內(nèi)部函數(shù)一樣來(lái)調(diào)用Function過(guò)程,調(diào)用時(shí)只需寫(xiě)出函數(shù)名和相應(yīng)的參數(shù)即可。調(diào)用格式如下:
函數(shù)名([實(shí)參列表])說(shuō)明:(1)實(shí)參可以是常量、表達(dá)式、有效的變量名等,如果是變量必須有確定的值;多個(gè)實(shí)參之間用逗號(hào)分隔;實(shí)參列表為可選項(xiàng),缺省時(shí)調(diào)用的是無(wú)參過(guò)程。(2)調(diào)用時(shí)把實(shí)參傳遞給函數(shù)過(guò)程中的形參,注意實(shí)參和形參的數(shù)據(jù)類型、順序、個(gè)數(shù)必須匹配。(3)函數(shù)過(guò)程調(diào)用只能出現(xiàn)在表達(dá)式中,其功能是求得函數(shù)過(guò)程的返回值。調(diào)用前面的Max函數(shù)可以使用下面的語(yǔ)句:(1)c=Max(5,10)‘用一個(gè)變量接收函數(shù)過(guò)程的返回值(2)s=Max(5,10)+Max(10,20)‘函數(shù)過(guò)程返回值直接參與表達(dá)式的運(yùn)算(3)PrintMax(5,10)‘用Print方法輸出函數(shù)過(guò)程的返回值下面的函數(shù)調(diào)用語(yǔ)句就是錯(cuò)誤的:Max(5,10)例3.18從鍵盤(pán)輸入三個(gè)數(shù),編寫(xiě)程序求這三個(gè)數(shù)中的最大數(shù)。分析該題可以通過(guò)兩次調(diào)用Max函數(shù)過(guò)程,找出這三個(gè)數(shù)中的最大數(shù)。具體實(shí)現(xiàn)代碼如下:PrivateSubForm_Click()DimaAsSingle,bAsSingle,cAsSingleDimsAsSinglea=InputBox("請(qǐng)輸入第1個(gè)數(shù):")b=InputBox("請(qǐng)輸入第2個(gè)數(shù):")c=InputBox("請(qǐng)輸入第3個(gè)數(shù):")Print"輸入的3個(gè)數(shù)分別為:";a;b;cs=Max(a,b)…………①Print"最大數(shù)為:";Max(s,c)…………②EndSub3.4.3Sub過(guò)程Sub過(guò)程是用戶自定義的通用過(guò)程的另一種形式,與Function過(guò)程不同的是,它不直接返回值。1.Sub過(guò)程的建立在代碼窗口中直接定義Sub過(guò)程,使用下面的格式:[Private|Public][Static]Sub子過(guò)程名([形參表])語(yǔ)句組[ExitSub]EndSub說(shuō)明:(1)一個(gè)Sub過(guò)程以Sub開(kāi)頭,而以EndSub結(jié)束。由此可見(jiàn)事件過(guò)程實(shí)際上也是Sub過(guò)程,但它是一種特殊的Sub過(guò)程,它附加在窗體和控件上,不能由用戶任意定義,而是由系統(tǒng)指定。(2)由于Sub過(guò)程沒(méi)有返回值,所以在過(guò)程體中不需要給“子過(guò)程名”賦值的語(yǔ)句。2.Sub過(guò)程的調(diào)用Sub過(guò)程的調(diào)用有兩種方式:一種是把過(guò)程的名字放在一個(gè)Call語(yǔ)句中,另一種方法是把過(guò)程名作為一個(gè)獨(dú)立的語(yǔ)句來(lái)使用。格式1:Call子過(guò)程名[(實(shí)參列表)]格式2:子過(guò)程名[實(shí)參列表]說(shuō)明:(1)使用格式1調(diào)用時(shí),如果調(diào)用的是無(wú)參過(guò)程,則實(shí)參列表和圓括號(hào)都可以省略;否則應(yīng)給出相應(yīng)的實(shí)參,并將參數(shù)放在圓括號(hào)中。(2)使用格式2調(diào)用時(shí),即使調(diào)用的是有參過(guò)程,實(shí)參列表也不能加圓括號(hào),實(shí)參與過(guò)程名之間用空格隔開(kāi),實(shí)參之間用逗號(hào)隔開(kāi)。(3)事件過(guò)程也是Sub過(guò)程,可以被其他的事件過(guò)程和通用過(guò)程(Sub過(guò)程和Function過(guò)程)調(diào)用,調(diào)用的方法與調(diào)用Sub通用過(guò)程相同。但一般情況下是在事件過(guò)程中調(diào)用通用過(guò)程。(4)過(guò)程雖然可以嵌套調(diào)用,但不能嵌套定義。即在一個(gè)過(guò)程中可以調(diào)用另外一個(gè)過(guò)程,但不能定義一個(gè)新的過(guò)程。例3.19編寫(xiě)程序,在窗體上打印如圖3.17所示的圖形。圖3.17打印圖形PrivateSubTri(strAsString,nAsInteger)'定義打印圖形的過(guò)程DimiAsInteger,jAsIntegerFori=1Ton'外層循環(huán)控制打印的行數(shù)Forj=1Toi'內(nèi)層循環(huán)控制打印的字符個(gè)數(shù)Printstr;NextjPrintNextiEndSubPrivateSubForm_Click()DimsAsString*1,mAsIntegers="*"m=8CallTri(s,m)'使用Call關(guān)鍵字的調(diào)用格式s="$"Tris,m/2'不用Call關(guān)鍵字的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- (二模)2025年新疆普通高考適應(yīng)性檢測(cè)分學(xué)科第二次模擬考試 生物試卷(含答案詳解)
- 2024年度天津市公共營(yíng)養(yǎng)師之三級(jí)營(yíng)養(yǎng)師全真模擬考試試卷B卷含答案
- 2024年度四川省公共營(yíng)養(yǎng)師之三級(jí)營(yíng)養(yǎng)師題庫(kù)與答案
- 2024年度四川省公共營(yíng)養(yǎng)師之二級(jí)營(yíng)養(yǎng)師??碱A(yù)測(cè)題庫(kù)(奪冠系列)
- 2025年中國(guó)苧麻紗線行業(yè)發(fā)展監(jiān)測(cè)及投資前景預(yù)測(cè)報(bào)告
- 連接管路項(xiàng)目可行性研究報(bào)告
- 2025年中國(guó)線性驅(qū)動(dòng)系統(tǒng)行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報(bào)告
- 表面活性劑新建項(xiàng)目可行性研究報(bào)告建議書(shū)申請(qǐng)格式范文
- 汽油發(fā)動(dòng)機(jī)項(xiàng)目可行性研究報(bào)告
- 智能酸堿濃度計(jì)行業(yè)行業(yè)發(fā)展趨勢(shì)及投資戰(zhàn)略研究分析報(bào)告
- 2024春季中鐵三局集團(tuán)校園招聘高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 出版社圖書(shū)編輯出版流程規(guī)范
- 地貌與第四紀(jì)地質(zhì)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- GB/T 6003.2-2024試驗(yàn)篩技術(shù)要求和檢驗(yàn)第2部分:金屬穿孔板試驗(yàn)篩
- 一汽在線綜合能力測(cè)評(píng)題
- 2024年焊工職業(yè)技能競(jìng)賽理論知識(shí)考試題庫(kù)500題(含答案)
- 云南師大附中2025屆生物高二上期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 重慶市九龍坡區(qū)2023-2024學(xué)年高二年級(jí)上冊(cè)1月期末考試物理試題
- 風(fēng)能發(fā)電對(duì)養(yǎng)殖場(chǎng)溫濕度變化的影響
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)
- 廠內(nèi)電動(dòng)車安全管理制度
評(píng)論
0/150
提交評(píng)論