第3章3 過程(2學(xué)時)_第1頁
第3章3 過程(2學(xué)時)_第2頁
第3章3 過程(2學(xué)時)_第3頁
第3章3 過程(2學(xué)時)_第4頁
第3章3 過程(2學(xué)時)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

3.4過程過程是完成特定功能的一組程序代碼,這組程序代碼是由若干個語句構(gòu)成的。在程序設(shè)計過程中,將一些常用的功能編寫成過程,可供多個不同的事件過程多次調(diào)用,從而可以減少重復(fù)編寫代碼的工作量,實現(xiàn)代碼重用,使程序簡練、便于調(diào)試和維護。3.4.1過程概述PrivateSubForm_Click()DimiAsInteger,k1AsLong,k2AsLongk1=1:k2=1Fori=1To5k1=k1*iNextiFori=1To10k2=k2*iNextiPrint"5!+10!=";k1+k2EndSub現(xiàn)有一個實際問題,要求編寫程序求5!+10!的值。對于這個問題,可以用前面所學(xué)的循環(huán)結(jié)構(gòu)編寫如下程序:將求階乘的過程編寫如下:PrivateFunctionJc(nAsInteger)AsLongDimiAsInteger,kAsLongk=1Fori=1Tonk=k*iNextiJc=kEndFunction調(diào)用上面的過程求出5!和10!,編寫代碼如下:PrivateSubCommand1_Click()Print"5!+10!=";Jc(5)+Jc(10)EndSub結(jié)論通過上面的例子,可以體會到過程在編寫程序中的重要作用在VisualBasic中,過程通常使用在兩個方面:(1)如果一個應(yīng)用程序要完成一個復(fù)雜任務(wù),則通常把這個復(fù)雜任務(wù)劃分為若干個小任務(wù),并把這些小任務(wù)編寫成一個個過程。(2)在一個完成復(fù)雜任務(wù)的應(yīng)用程序中,往往要編寫一些功能完全相同或相近的程序段,為了避免程序繁瑣冗長使程序簡練一些,也可以把這樣的程序段獨立出來編寫成過程,然后在需要的地方調(diào)用該過程,完成相應(yīng)的工作。VisualBasic的過程分類系統(tǒng)提供的過程(1)內(nèi)部函數(shù):可以直接調(diào)用其完成相應(yīng)的功能;(2)事件過程:是VisualBasic應(yīng)用程序的主體,系統(tǒng)提供了它們的框架,用戶可以根據(jù)需要填寫具體的內(nèi)容。用戶自定義的通用過程。(1)子程序過程(Sub過程):沒有返回值(2)函數(shù)過程(Function過程):有返回值。3.4.2Function過程1.Function過程的建立建立Function過程有兩種方法:直接定義和利用菜單。在窗體或標(biāo)準(zhǔn)模塊的“代碼窗口”(注意在“對象”框中應(yīng)選擇“通用”)中直接定義Function過程,采用如下格式:[Public|Private][Static]Function函數(shù)名([形參列表])[As類型]語句組函數(shù)名=表達式[ExitFunction]EndFunction說明:(1)一個Function過程以Function開頭,而以EndFunction結(jié)束,兩者之間的部分是描述過程操作的語句組,可以稱為“過程體”或“函數(shù)體”。(2)函數(shù)名:命名規(guī)則與變量名規(guī)則相同。但不能與系統(tǒng)的內(nèi)部函數(shù)或其它通用過程同名,也不能與已定義的全局變量和本模塊中模塊級變量同名。(3)在函數(shù)體內(nèi),函數(shù)名可以當(dāng)變量使用,函數(shù)的返回值就是通過對函數(shù)名的賦值語句來實現(xiàn)的,在函數(shù)過程中至少要對函數(shù)名賦值一次。(4)形參列表:形式參數(shù)通常簡稱“形參”,必須是變量;僅表示形參的類型、個數(shù)、位置;定義時是無值的,只有在過程被調(diào)用時,形參和實參結(jié)合后才獲得相應(yīng)的值;多個形參之間用逗號分隔。過程可以無形式參數(shù),但括號不能省。(5)As類型:是指函數(shù)返回值的類型。若省略,則函數(shù)返回值是變體類型。(6)ExitFunction:表示退出函數(shù)過程,通常是與選擇結(jié)構(gòu)(If或SelectCase語句)聯(lián)用,即當(dāng)滿足一定條件時,退出函數(shù)過程。(7)關(guān)鍵字Public、Private和Static表示了過程的作用域(有效范圍)。Public表示公有過程,該過程可以被任何模塊(窗體模塊和標(biāo)準(zhǔn)模塊)中的過程調(diào)用;Private表示私有過程,該過程只能被本模塊(窗體模塊或標(biāo)準(zhǔn)模塊)中的其他過程調(diào)用;Static過程也是私有過程,但這時表明過程中的局部變量都是Static型。注意VisualBasic的過程默認為Public過程。例3.17編寫一個求兩個數(shù)中較大數(shù)的Function過程。具體實現(xiàn)代碼如下:PublicFunctionMax(xAsSingle,yAsSingle)AsSingle………③Ifx>yThenMax=xElseMax=yEndIfEndFunction……④2.Function過程的調(diào)用調(diào)用引起過程的執(zhí)行。也就是說,要執(zhí)行一個過程,必須調(diào)用該過程。Function過程的調(diào)用比較簡單,可以像使用VisualBasic的內(nèi)部函數(shù)一樣來調(diào)用Function過程,調(diào)用時只需寫出函數(shù)名和相應(yīng)的參數(shù)即可。調(diào)用格式如下:

函數(shù)名([實參列表])說明:(1)實參可以是常量、表達式、有效的變量名等,如果是變量必須有確定的值;多個實參之間用逗號分隔;實參列表為可選項,缺省時調(diào)用的是無參過程。(2)調(diào)用時把實參傳遞給函數(shù)過程中的形參,注意實參和形參的數(shù)據(jù)類型、順序、個數(shù)必須匹配。(3)函數(shù)過程調(diào)用只能出現(xiàn)在表達式中,其功能是求得函數(shù)過程的返回值。調(diào)用前面的Max函數(shù)可以使用下面的語句:(1)c=Max(5,10)‘用一個變量接收函數(shù)過程的返回值(2)s=Max(5,10)+Max(10,20)‘函數(shù)過程返回值直接參與表達式的運算(3)PrintMax(5,10)‘用Print方法輸出函數(shù)過程的返回值下面的函數(shù)調(diào)用語句就是錯誤的:Max(5,10)例3.18從鍵盤輸入三個數(shù),編寫程序求這三個數(shù)中的最大數(shù)。分析該題可以通過兩次調(diào)用Max函數(shù)過程,找出這三個數(shù)中的最大數(shù)。具體實現(xiàn)代碼如下:PrivateSubForm_Click()DimaAsSingle,bAsSingle,cAsSingleDimsAsSinglea=InputBox("請輸入第1個數(shù):")b=InputBox("請輸入第2個數(shù):")c=InputBox("請輸入第3個數(shù):")Print"輸入的3個數(shù)分別為:";a;b;cs=Max(a,b)…………①Print"最大數(shù)為:";Max(s,c)…………②EndSub3.4.3Sub過程Sub過程是用戶自定義的通用過程的另一種形式,與Function過程不同的是,它不直接返回值。1.Sub過程的建立在代碼窗口中直接定義Sub過程,使用下面的格式:[Private|Public][Static]Sub子過程名([形參表])語句組[ExitSub]EndSub說明:(1)一個Sub過程以Sub開頭,而以EndSub結(jié)束。由此可見事件過程實際上也是Sub過程,但它是一種特殊的Sub過程,它附加在窗體和控件上,不能由用戶任意定義,而是由系統(tǒng)指定。(2)由于Sub過程沒有返回值,所以在過程體中不需要給“子過程名”賦值的語句。2.Sub過程的調(diào)用Sub過程的調(diào)用有兩種方式:一種是把過程的名字放在一個Call語句中,另一種方法是把過程名作為一個獨立的語句來使用。格式1:Call子過程名[(實參列表)]格式2:子過程名[實參列表]說明:(1)使用格式1調(diào)用時,如果調(diào)用的是無參過程,則實參列表和圓括號都可以省略;否則應(yīng)給出相應(yīng)的實參,并將參數(shù)放在圓括號中。(2)使用格式2調(diào)用時,即使調(diào)用的是有參過程,實參列表也不能加圓括號,實參與過程名之間用空格隔開,實參之間用逗號隔開。(3)事件過程也是Sub過程,可以被其他的事件過程和通用過程(Sub過程和Function過程)調(diào)用,調(diào)用的方法與調(diào)用Sub通用過程相同。但一般情況下是在事件過程中調(diào)用通用過程。(4)過程雖然可以嵌套調(diào)用,但不能嵌套定義。即在一個過程中可以調(diào)用另外一個過程,但不能定義一個新的過程。例3.19編寫程序,在窗體上打印如圖3.17所示的圖形。圖3.17打印圖形PrivateSubTri(strAsString,nAsInteger)'定義打印圖形的過程DimiAsInteger,jAsIntegerFori=1Ton'外層循環(huán)控制打印的行數(shù)Forj=1Toi'內(nèi)層循環(huán)控制打印的字符個數(shù)Printstr;NextjPrintNextiEndSubPrivateSubForm_Click()DimsAsString*1,mAsIntegers="*"m=8CallTri(s,m)'使用Call關(guān)鍵字的調(diào)用格式s="$"Tris,m/2'不用Call關(guān)鍵字的

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論