




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、在a、1、8章子程序和函數(shù)、8.1子程序的概要VB5.0/6.0中,除了系統(tǒng)提供的內(nèi)部函數(shù)進(jìn)程和事件進(jìn)程之外,用戶還可以使用, 可以自定義以下四個進(jìn)程: “Sub”保留字開始的子進(jìn)程“Function”保留字開始的函數(shù)進(jìn)程“Property”保留字開始的屬性進(jìn)程“Event”保留字開始的事件進(jìn)程,a、2、 事件過程和通用過程8.2.1事件過程(1)表單事件的語法Private Sub Form_事件名稱(參數(shù)列表) End Sub (2)控件事件的語法Private Sub End Sub,8.2 Sub過程3,子過程的定義形式為Public|PrivateStatic Sub子過程名稱(形式
2、參照表 ) Exit Sub End Sub,8.2.2 可以從表格參與獲得傳遞的結(jié)果,而不是返回值,并且在調(diào)用時返回多個值。a、4、(2)形式參數(shù)列表:形式參數(shù)通常簡稱為“形式參數(shù)”,僅表示形式參數(shù)的類型、個數(shù)、位置,定義時沒有值,僅在調(diào)用過程的情況下,在結(jié)合虛實參數(shù)后得到相應(yīng)的值。 (3)流程沒有形式參數(shù),但括號不能省略。 (4)參數(shù)的定義格式: ByVal|ByRef變量名稱 () ,ByVal表示調(diào)用此過程時參數(shù)以值傳遞的默認(rèn)值或ByRef表示調(diào)用過程時參數(shù)為參數(shù)示例8 .創(chuàng)建一個交換一個整數(shù)變量值的子過程。 私有子交換(x as integer,yassainteger ) dimt
3、empasintegertemp=x : x=y : y=temp終端子,a,5, 8.2.3子過程的建立是在“工具”菜單的“添加過程”命令中顯示“添加進(jìn)程”對話框(參見圖6.1 ),其中顯示了進(jìn)程類型(子進(jìn)程、函數(shù)、屬性、事件)和范圍(公共、私有例如:公共子系統(tǒng)()結(jié)束子系統(tǒng),a, 6 8.2.4過程的調(diào)用1子過程的調(diào)用子過程名稱參數(shù)列表或Call子過程名稱(參數(shù)列表) 2功能過程的調(diào)用變量名稱=功能過程名稱(參數(shù)列表 ) (2)調(diào)用時將實際參數(shù)值傳遞給對應(yīng)的波形參數(shù)。 其中,當(dāng)值被傳遞時(波形參數(shù)前面有ByVal的說明),實際參數(shù)的值不會根據(jù)波形參數(shù)的值而變化。 地址傳遞時的實際參數(shù)值會根
4、據(jù)形狀參數(shù)值的變化而變化。a、7、(3)參數(shù)為數(shù)組時,參數(shù)聲明時形式參加實體必須省略維,但括號不可省略。 (4)調(diào)用子過程的形式有兩種,使用Call關(guān)鍵字時,用括號括住實際的參加,否則,用“、”分隔實際的參加。 示例:在上面定義的調(diào)用Sawp子過程的格式是Swap a,b調(diào)用Swap a,b )、a,8,專用子cmdok ()調(diào)用Swap a,b) Swap a,b結(jié)束子, private sub swap (x % ) y % ) dim temp=x x=y y=temp end sub,進(jìn)程調(diào)用的執(zhí)行進(jìn)程:a,9,8.3 Function進(jìn)程, Visual Basic函數(shù)分為內(nèi)部函數(shù)和
5、外部函數(shù),外部函數(shù)是用戶根據(jù)需要用Function關(guān)鍵字定義的函數(shù)過程,與子過程不同的是函數(shù)過程返回值。8.3.1函數(shù)過程(函數(shù)過程)的定義,public|privatestatic函數(shù)名稱()As函數(shù)體函數(shù)名稱=返回值 Exit Function 函數(shù)名稱=返回值結(jié)束函數(shù),a,a 但是,名稱不能與系統(tǒng)內(nèi)部函數(shù)或其他通用子過程相同,也不能與預(yù)定義的全局變量或本模塊的模塊級變量相同。 (2)函數(shù)中,函數(shù)名稱可以用作變量,函數(shù)的返回值是通過對函數(shù)名稱的代入語句來實現(xiàn)的,在函數(shù)的過程中至少代入一次函數(shù)名稱。(3)AS類型:指定函數(shù)的返回值的類型,省略后返回變型的值(Variant )。 (4)Exi
6、t Function :表示結(jié)束函數(shù)過程,并總是與選擇結(jié)構(gòu)(If或Select Case語句)結(jié)合,在滿足一定條件的情況下結(jié)束函數(shù)過程。 (5)波形參數(shù)列表:波形參數(shù)的定義和子程序完全相同。 例6.2,a,11,8.3.2函數(shù)的調(diào)用,調(diào)用形式為函數(shù)名(實際參數(shù)列表)說明:調(diào)用時實際參數(shù)和形狀參數(shù)的數(shù)據(jù)類型、順序、個數(shù)必須一致。 函數(shù)調(diào)用僅顯示在表達(dá)式中,具有計算函數(shù)返回值的功能。a,12,8.4進(jìn)程的范圍,Public|Private Sub子進(jìn)程名(形式參數(shù)列表) . End Sub,概念,通用子進(jìn)程和函數(shù)進(jìn)程可以寫入表格模塊,也可以寫入標(biāo)準(zhǔn)模塊,定義時按鍵、a、13、1、表單/模塊級進(jìn)程:
7、添加私有關(guān)鍵字的進(jìn)程僅由定義的表單或模塊中的進(jìn)程調(diào)用。 2 .全局級進(jìn)程:添加應(yīng)用程序的所有表單和所有標(biāo)準(zhǔn)模塊進(jìn)程調(diào)用的公共關(guān)鍵字(或默認(rèn))的進(jìn)程。 流程由、和流程的角色范圍劃分,模塊級流程的全局級流程在用例7.1中說明了流程的角色區(qū)域,并總結(jié)了a、14、摘要流程的定義和角色區(qū)域(教材Pg.163 )、a、15、 為了在Visual Basic中的不同模塊(進(jìn)程)之間傳輸數(shù)據(jù),每個進(jìn)程都使用全局變量來共享數(shù)據(jù),全局變量有兩種方式:通過進(jìn)程調(diào)用實現(xiàn)實際參與的合并。8.5.1形式參數(shù)和實際參數(shù)、1、形式參數(shù)是在定義公共過程時出現(xiàn)在Sub或Function語句中變量名稱后面的括號內(nèi)的數(shù)字,用來接收傳
8、遞給子過程的數(shù)據(jù),波形參數(shù)表中的每個變量都是坎、a,16,2,實際參數(shù)實際參數(shù)是在調(diào)用Sub或Function過程時,起到向Sub或Function過程及其對應(yīng)的波形參數(shù)變量傳遞數(shù)據(jù)(數(shù)值或地址)的子實體引用可以由常數(shù)、表達(dá)式、有效變量名稱和數(shù)組名稱(a () )組成,實體引用表中的每個參數(shù)用逗號分隔。8.5.2參數(shù)的傳遞(虛實耦合)、參數(shù)的傳遞由主調(diào)過程的實參(調(diào)用時已經(jīng)確定了值和內(nèi)存地址的參數(shù))傳遞給被調(diào)過程的形參,參數(shù)的傳遞有兩種方式:值傳遞、地址傳遞。 形參前加“ByVal”關(guān)鍵字是通過值傳遞的,缺省或加“ByRef”關(guān)鍵字是通過地址傳遞的。a、17,地址和值的地址:波形參數(shù)得到實際參
9、數(shù)的地址,在波形參數(shù)的值變化的同時,實際參數(shù)的值也變化。 傳遞值:波形參數(shù)得到實際參數(shù)的值,波形參數(shù)的值的變更不影響實際參數(shù)的值。 子掃描2 (x %,y % ) dim temp=x : x=y : y=temp結(jié)束子,子掃描1 (byval x % byvaly % ) dim temp=x : x=y : y=temp e privatesubcmdok _ click () a %=10: b %=2033 swap 1a,b 值printa1=; a, B1=; ba=10: b=2033 360交換2 a,b地址打印 a2=; a, B2= b end sub,程序調(diào)用的執(zhí)行過程:
10、a,19,值傳遞的執(zhí)行過程:地址傳遞數(shù)據(jù)的執(zhí)行過程,a,20, 數(shù)據(jù)傳輸?shù)娜舾烧f明:1.參數(shù)的數(shù)據(jù)類型2 .值傳輸參數(shù)形式參數(shù)是實際參數(shù)的副本3 .地址傳輸參數(shù)形式參數(shù)形式參數(shù)公用存儲器單元4 .在子程序中執(zhí)行一系列操作的函數(shù)過程,實數(shù)參數(shù)是對于或表達(dá)式,返回一個值,注意,即使在定義時使用值傳遞或地址傳遞,常數(shù)或表達(dá)式的計算值也會通過值傳遞傳遞給形狀參數(shù)。a、21、8.6高級用法(以數(shù)組為參數(shù)),Visual Basic可將數(shù)組作為實際參考傳遞給過程。 數(shù)組作為參數(shù)以地址傳輸方式傳輸。傳輸數(shù)組時,除了遵守參數(shù)傳輸?shù)囊话阋?guī)則之外,1 .將數(shù)組的所有元素傳輸?shù)揭粋€進(jìn)程時,請將數(shù)組名稱分別寫入到形式
11、參照列表中,省略數(shù)組的上下邊界,但不能省略括號。 privatesubsort (a () as single )在end sub中,表單參數(shù)“a ()”是數(shù)組。a,22,2 .被調(diào)用的進(jìn)程通過Lbound函數(shù)和Ubound函數(shù)可以決定實際參數(shù)數(shù)組的上下界。 3 .使用數(shù)組作為形狀參數(shù)時,對應(yīng)的實際參數(shù)也必須是數(shù)組,并且類型必須匹配。 4 .實際參考與形式參考的結(jié)合按地址傳遞,形式參數(shù)組和實際參考陣列共享存儲器單元。 例如,如果定義了實際參數(shù)數(shù)組b(1 to 8 )并指派了值,則可以省略Sort b ()或Call Sort(b () )實際參數(shù)數(shù)組后面的括號,但為了便于閱讀,可以省略調(diào)用So
12、rt ()函數(shù)過程的格式、a、23、調(diào)用時形參數(shù)群a和實際參數(shù)群b虛實地結(jié)合,共享存儲單元。 因此,在Sort ()的過程中改變數(shù)組a的各元素的值相當(dāng)于改變實際參數(shù)數(shù)組b的對應(yīng)元素的值,在調(diào)用結(jié)束后,波形參數(shù)組a成為未定義。 b (1) b (2) b (3) b (4) b (5) b (6) b (7) b (8) a (1) a (2) a (3) a (5) a (6) a (7) a (8)參數(shù)在排列的情況下為虛實耦合圖像,例6.7前章例5.3的排序處理器、a,24,補(bǔ)充例題:寫出判斷整數(shù)是否為素數(shù)的函數(shù)的過程。 如果給定的整數(shù)是素數(shù),則返回邏輯值True,否則返回False,pri
13、vatefunctionprime (ncaseinteger ) asbooleandimk %,是as boolean yes=true for k=2to n 2如何將ifmo dk=0then yes=false : exitfornextkpprime=yes代入函數(shù)名稱,并作為函數(shù)的返回值End Function調(diào)用函數(shù)? 使用此函數(shù)驗證哥德爾巴赫的預(yù)期。a,25,私有子form _ click () dim n %,n1%,n2% n=val (輸入大于 6的正整數(shù) ) forn1=3ton 第2步n2n1將n2=n-n1從3中分解,如果n2n1和n2都是素數(shù),則打印輸出ifpr
14、ime(n1)和prime(n2)then打印n=n 1 n2exit for是循環(huán)End if Next n1 End Sub,a, 如果結(jié)束26,則fori=1ton-1p=ifj=i1 Toni fa (p ) a (j ) thenp=jnextjintemp=a (I ) a (I )=a (p ) a (p )=temp nexti,排序(升序)的VB程序的選擇: 補(bǔ)充例題2 :排序子進(jìn)程,a,27,私有subsort (a () as single ) dimi %,j%,p%,n%, temp n=ubound (a ) fori=1ton-1p=iforj=i1 Toni f
15、a (p ) a (j ) thenp=jnextjintemp=a (I ) a (I )=a (p ) a (p )=tempnextisendsub,a, 28.7過程的嵌套和遞歸調(diào)用、8.7.1過程的嵌套、過程中調(diào)用子過程、子過程中調(diào)用另一個子過程的程序結(jié)構(gòu)稱為過程的嵌套。 過程的嵌套調(diào)用執(zhí)行過程如下圖所示:a,29,8.7.2過程的遞歸調(diào)用用自己的結(jié)構(gòu)描述自己,稱為遞歸。 例如,階乘定義:在Visual Basic中,可以在Sub和Function過程定義中調(diào)用遞歸Sub和遞歸Function函數(shù)。 例8.8層乘fac(n)=n! 的遞歸函數(shù),a,30,專用函數(shù)(nasinteger ) ascintegerifn=1then fac=1else fac=n * fac (n-1 ) endifendfunctionprivatesubform _ fac(4) End Sub,程序遞歸過程:a,31,說明:遞歸處理一般是在堆棧中實現(xiàn)的,有遞歸推理和回歸兩個過程。 遞歸過程:每次調(diào)用自己時,將當(dāng)前參數(shù)(形參、局部變量、返回地址等)推入堆棧,直到遞歸結(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)參軍宣傳活動方案
- 氣球布置活動方案
- 校際捐贈活動方案
- 沉浸式青年講堂活動方案
- 水果莊園活動方案
- 水務(wù)公司無煙日活動方案
- 服裝特價活動方案
- 最美親子閱覽室活動方案
- 景區(qū)婚紗活動方案
- 暑假活動剪紙活動方案
- 人文英語4-008-國開機(jī)考復(fù)習(xí)資料
- 《中歐國際工商學(xué)院》課件
- 建筑消防設(shè)施維護(hù)保養(yǎng)技術(shù)規(guī)程
- 環(huán)境水利學(xué)-001-國開機(jī)考復(fù)習(xí)資料
- 【培訓(xùn)課件】卓越講師技能訓(xùn)練
- 4 我們的公共生活 第2課時維護(hù)公共利益 說課稿-2023-2024學(xué)年道德與法治五年級下冊統(tǒng)編版
- 2024年個人聯(lián)營經(jīng)營承包合同樣本
- 新辦公樓會議室音視頻系統(tǒng)施工方案
- 電子商務(wù)平臺客戶服務(wù)標(biāo)準(zhǔn)規(guī)范
- 2025屆浙江省樂清市知臨中學(xué)高一數(shù)學(xué)第一學(xué)期期末檢測試題含解析
- 附件3:公司境外突發(fā)事件應(yīng)急預(yù)案
評論
0/150
提交評論