子程序和函數(shù)_第1頁
子程序和函數(shù)_第2頁
子程序和函數(shù)_第3頁
子程序和函數(shù)_第4頁
子程序和函數(shù)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

子程序和函數(shù)1第1頁,共20頁,2023年,2月20日,星期六第七章子過程和函數(shù)2第2頁,共20頁,2023年,2月20日,星期六7.1.1模塊化的程序設(shè)計工程的資源:一個vb應(yīng)用程序由若干個窗體模塊、類模塊、標(biāo)準(zhǔn)模塊等組成。子程序和函數(shù):一個窗體模塊或類模塊由一些功能單元來組成,這些功能單元就是子程序和函數(shù)7.1什么是子程序和函數(shù)3第3頁,共20頁,2023年,2月20日,星期六7.1.1模塊化的程序設(shè)計Vb過程概念:子程序和函數(shù)統(tǒng)稱為過程(procedure)過程是完成特定任務(wù)的功能模塊。vb中的過程分為:

內(nèi)部函數(shù)過程事件過程用戶自定義的通用過程4第4頁,共20頁,2023年,2月20日,星期六7.1.1

模塊化的程序設(shè)計在vb程序中使用過程的好處:可以實(shí)現(xiàn)代碼復(fù)用利于調(diào)試、理解和維護(hù)5第5頁,共20頁,2023年,2月20日,星期六7.1.2區(qū)分子程序和函數(shù)兩者最大的區(qū)別:函數(shù)有返回值子程序只是去做一件事情(或某個操作),不提供返回值6第6頁,共20頁,2023年,2月20日,星期六7.1.2區(qū)分子程序和函數(shù)1.不同的定義方式子程序的定義

sub子程序名(參數(shù)列表)

語句塊

endsub函數(shù)的定義Function函數(shù)名(參數(shù)類表)[as數(shù)據(jù)類型]語句塊endFunction7第7頁,共20頁,2023年,2月20日,星期六7.1.2區(qū)分子程序和函數(shù)2.不同的調(diào)用方式子程序的調(diào)用調(diào)用子程序,必須使用一條獨(dú)立的語句,有兩種方法:callinitcontrol(x,y,z)initcontrolx,y,z函數(shù)的調(diào)用直接寫上函數(shù)的名字并傳遞參數(shù)。如同調(diào)用vb內(nèi)部函數(shù)如:max=ubound(x,1)ifi>maxthenmsgbox“下標(biāo)越界”8第8頁,共20頁,2023年,2月20日,星期六7.1.2區(qū)分子程序和函數(shù)3.不同的退出方式子程序的退出

exitsub函數(shù)的退出

exitFunction9第9頁,共20頁,2023年,2月20日,星期六7.1.3參數(shù)和函數(shù)返回值形式參數(shù)(形參)過程定義時的參數(shù)列表,過程沒被調(diào)用之前,這些都只是一個個的變量,沒有實(shí)際的值,稱作形式參數(shù),簡稱形參。實(shí)際參數(shù)(實(shí)參)過程被調(diào)用時,實(shí)際參與運(yùn)算的量,稱為實(shí)際參數(shù),簡稱實(shí)參。10第10頁,共20頁,2023年,2月20日,星期六7.1.3參數(shù)和函數(shù)返回值1.定義中的書寫方式參數(shù)和返回值需要聲明其數(shù)據(jù)類型,如不聲明,則默認(rèn)為variant(變體)類型。如:FunctionGetShortName(FileNameasstring)asstring‘返回一個字符串FunctionMax(x1%,x2%)asinteger‘返回一個整數(shù)11第11頁,共20頁,2023年,2月20日,星期六7.1.3參數(shù)和函數(shù)返回值2.按值傳遞參數(shù)(ByVal)在參數(shù)前加Byval就代表按值傳遞在被調(diào)用的過程內(nèi)部,會以形參的名稱建立一個新的變量,實(shí)參傳遞給形參的只是原始變量的一個副本。因此,如果在過程中改變了這個值,不會影響到原始變量本身。演示12第12頁,共20頁,2023年,2月20日,星期六7.1.3參數(shù)和函數(shù)返回值3.按地址傳遞參數(shù)(ByRef)在參數(shù)前加ByRef就代表按值傳遞。vb默認(rèn)是按地址傳遞方式。在調(diào)用過程時,將原始變量的內(nèi)存地址(也稱為引用)傳遞給形參,因此,所有參數(shù)變量的讀寫操作都是直接對原始變量進(jìn)行操作,換言之,在過程中如果改變了這個值,原始變量的值就會被改變演示13第13頁,共20頁,2023年,2月20日,星期六7.2子程序的編寫和使用(1).內(nèi)部函數(shù)過程(也叫標(biāo)準(zhǔn)函數(shù))(參考7.6節(jié))按功能分為:數(shù)學(xué)函數(shù)、字符串函數(shù)、日期函數(shù)、轉(zhuǎn)換函數(shù)、輸出格式函數(shù)。內(nèi)部函數(shù)是系統(tǒng)提供的。使用時要注意函數(shù)的格式、名字、參數(shù)要求(實(shí)參數(shù)要與形式參數(shù)在個數(shù)、類型、順序一致)、返回結(jié)果等。例如:string(20,”-”)返回值:20個“-”len(“ABCDE”)返回值:5內(nèi)部函數(shù)只能出現(xiàn)在表達(dá)式出現(xiàn)的位置(賦值號右端、print語句中等),不能單獨(dú)做為語句。14第14頁,共20頁,2023年,2月20日,星期六7.2子程序的編寫和使用(2).事件過程:事件過程是附加在窗體和控件上的特殊的sub過程。事件過程格式:

private|publicsub<控件名_事件名>(參數(shù)表)

事件響應(yīng)代碼

endsub注意:事件過程名不能由用戶任意定義,因?yàn)槊總€控件能識別的事件是由系統(tǒng)規(guī)定的。應(yīng)對每個控件的最重要事件了如指掌:事件過程除了系統(tǒng)自動調(diào)用之外,也可以被當(dāng)做一個普通的子程序調(diào)用如:callcommand1_click15第15頁,共20頁,2023年,2月20日,星期六8.2子程序的編寫和使用(3).通用過程:把多個事件過程都需要的、相同的程序代碼獨(dú)立出來,作為一個過程,這種過程叫做通用過程。通用過程完全由程序員自己編寫。不能實(shí)現(xiàn)自動調(diào)用

注意:1)除名字外,事件過程與通用過程的格式基本一樣。2)通用過程可以放在標(biāo)準(zhǔn)模塊中,也可以放在窗體模塊中。而事件過程只能放在窗體模塊中。3)

一般講,通用過程(sub過程、function過程)之間,事件過程之間,通用過程與事件過程之間都可以互相調(diào)用。大多數(shù)情況下,是事件過程調(diào)用通用過程。16第16頁,共20頁,2023年,2月20日,星期六8.3函數(shù)的編寫和使用編寫函數(shù)的關(guān)鍵在于函數(shù)有返回值,因此必須保證退出函數(shù)之前,向主調(diào)函數(shù)返回一個值,這個值由函數(shù)名帶回。如:FunctionMax(x%,y%)asintegerifx>ythenmax=xelsemax=yEndFunction演示17第17頁,共20頁,2023年,2月20日,星期六函數(shù)的調(diào)用1.調(diào)用形式如下:函數(shù)名(實(shí)參列表)說明:(1)在調(diào)用時實(shí)參和形參的數(shù)據(jù)類型、順序、個數(shù)必須匹配(2)函數(shù)調(diào)用只能出現(xiàn)在表達(dá)式中,其功能是求得函數(shù)的返回值。8.3函數(shù)的編寫和使用演示例8-218第18頁,共20頁,2023年,2月20日,星期六8.4子程序和函數(shù)的作用域private表示該過程時私有的、局部的,只能被同一模塊的其他過程訪問和調(diào)用public表示

溫馨提示

  • 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

提交評論