版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第8章 過 程8.1 過程概述過程概述 8.2 自定義函數(shù)過程自定義函數(shù)過程 8.3 SUB過程過程 8.4 過程參數(shù)傳遞過程參數(shù)傳遞 8.5 變量、過程的作用域變量、過程的作用域8.1 過程概述n引例1:s=sin(5)+sin(10)+sin(14),編程求s的值。n引例2:s=5!+10!+14!,編程求s的值。能否自己定義一個函能否自己定義一個函數(shù)求一個數(shù)的階乘呢?數(shù)求一個數(shù)的階乘呢?VB內(nèi)部函數(shù)內(nèi)部函數(shù)引例:引例:求出求出5!+10!+14!5!+10!+14!主程序主程序用戶自定義用戶自定義子過程子過程5!10!14!8.1 過程概述一、過程的概念將程序按功能分割成若干模塊和子模塊
2、,這些模塊和子模塊是可重復(fù)調(diào)用的程序段,我們把這些模塊和子模塊稱為用戶自定義過程(簡稱過程)。 二、使用過程的優(yōu)點消除了重復(fù)語句行。一次定義,多次調(diào)用使程序更易閱讀。簡化了程序開發(fā)。8.1 過程概述8.1 過程概述Function過程Sub過程內(nèi)部函數(shù)過程自定義函數(shù)過程事件過程用戶自定義Sub過程三三 、 過程的分類:過程的分類:8.1 過程概述Function過程Sub過程內(nèi)部函數(shù)過程自定義函數(shù)過程事件過程用戶自定義Sub過程二二 、 過程的分類:過程的分類:Abs(x)、sqr(x)等等8.1 過程概述Function過程Sub過程內(nèi)部函數(shù)過程自定義函數(shù)過程事件過程用戶自定義Sub過程二二
3、 、 過程的分類:過程的分類:Private sub command1_click()8.1 過程概述Function過程Sub過程內(nèi)部函數(shù)過程自定義函數(shù)過程事件過程自定義Sub過程二二 、 過程的分類:過程的分類:8.2 自定義函數(shù)過程一、Function(函數(shù))過程的定義 staticpublic|privatestaticpublic|privateFunctionFunction 過程名(過程名( 形形參列表參列表 )As As 數(shù)據(jù)類型數(shù)據(jù)類型 語句組語句組 過程名過程名= =結(jié)果結(jié)果End FunctionEnd Functionn說明:1)1)函數(shù)過程名:函數(shù)過程名:命名規(guī)則同變
4、量命名。它有兩方面的作用,命名規(guī)則同變量命名。它有兩方面的作用,一方面標(biāo)識一個函數(shù)過程,另一方面把函數(shù)運算的一方面標(biāo)識一個函數(shù)過程,另一方面把函數(shù)運算的結(jié)果傳結(jié)果傳回到主程序回到主程序。2)As 2)As 數(shù)據(jù)類型數(shù)據(jù)類型 :是函數(shù)返回值的類型,默認(rèn)為變體類型。是函數(shù)返回值的類型,默認(rèn)為變體類型。3)(3)(形參列表形參列表):代表代表FunctionFunction過程所需要的參數(shù),可以是過程所需要的參數(shù),可以是變量變量(除除定長字符型變量)或定長字符型變量)或數(shù)組數(shù)組。多個參數(shù)間應(yīng)用逗號。多個參數(shù)間應(yīng)用逗號隔開。隔開。形式參數(shù)本身沒有值,只代表了參數(shù)的個數(shù)、位置形式參數(shù)本身沒有值,只代表了
5、參數(shù)的個數(shù)、位置和類型,只有被調(diào)用時才有確定的值。和類型,只有被調(diào)用時才有確定的值。(形參列表形參列表)可以可以省略,但一對括號不能省略,這種過程叫省略,但一對括號不能省略,這種過程叫無參函數(shù)過程無參函數(shù)過程. .比如:比如:function parray() as integer function parray() as integer 4)Private|Public用于確定過程的作用域,Static用于確定過程變量的特點5)語句組:語句組中一般應(yīng)有一條語句將過程的運算結(jié)果賦給過程名,格式如下: 過程名=結(jié)果6)如果在過程體中含有exit Function語句時,表示強制退出過程,該語句通
6、常置于選擇結(jié)構(gòu)中。二 調(diào)用函數(shù)過程 與調(diào)用內(nèi)部函數(shù)的方法一樣與調(diào)用內(nèi)部函數(shù)的方法一樣 舉例:舉例:求出求出5!+10!+14!5!+10!+14!按值傳遞按值傳遞常數(shù)常數(shù)、變量變量、數(shù)組元素數(shù)組元素或或表表達(dá)式達(dá)式等等練習(xí):求組合數(shù))!(!mnmnCmn的值,設(shè)m=6,n=10。分析:(1)編寫function過程計算n!(2)編寫主程序調(diào)用子程序計算組合數(shù)參數(shù)的傳遞方式除了參數(shù)的傳遞方式除了按值傳遞按值傳遞外,還有什外,還有什么傳遞方式呢?么傳遞方式呢?n按值傳遞調(diào)用時,系統(tǒng)將實參的值復(fù)制一份給形參。被調(diào)用過程中的操作在形參自己的存儲單元中進(jìn)行。實參的值不會受到形參的影響。n按地址傳遞調(diào)用時
7、,將實參的地址傳遞給形參,實參與形參公用同一個內(nèi)存單元,對形參操作實質(zhì)上是對實參的操作。8.3 參數(shù)傳遞方式參數(shù)傳遞方式一、形式參數(shù)和實際參數(shù):1、形參:只能是變量(除定長字符型變量外)和數(shù)組,不能為常量或表達(dá)式。2、實參:可以是常量、變量、數(shù)組元素、數(shù)組名或表達(dá)式等。使用時,與形參個數(shù)相等,位置對應(yīng),類型相符。二、如何實現(xiàn)兩種方式的傳遞?(1)在對子程序調(diào)用時,默認(rèn)情況下,實參為常量、表達(dá)式或帶括號的變量,按值傳遞;實參為變量或數(shù)組,按地址傳遞。(2)在定義過程時,在形參前加:ByVal(按值傳遞); ByRef(按地址傳遞)。注意:數(shù)組只能按地址傳遞。8.3 SUB8.3 SUB過程過程一
8、、分類n事件過程比如:Private Sub Command1_Click()n用戶自定義Sub過程二、自定義Sub過程的建立定義格式為:StaticPrivate|Public Sub 過程名(參數(shù)列表)語句組End sub(1) 過程名:不能用來返回值。(2)(參數(shù)列表):當(dāng)有一個以上形參時,它們之間用逗號隔開。形參只能是變量或數(shù)組。 參數(shù)列表可以省略,括號不能省略,這種過程叫無參過程,其形式如下:Private|PublicStaticSub 過程名()(3)語句組:exit sub (4)Private|Public用于確定過程的作用域,Static用于確定過程中變量。三、自定義Sub
9、過程的調(diào)用兩種形式:(1) call 過程名(參數(shù)列表)(2) 過程名 參數(shù)列表參數(shù)列表:參數(shù)列表:代表要傳遞給代表要傳遞給sub過程的實際值,稱為實過程的實際值,稱為實際參數(shù)(簡稱際參數(shù)(簡稱實參實參),可以為),可以為常量、變量、數(shù)組元常量、變量、數(shù)組元素、數(shù)組名或表達(dá)式素、數(shù)組名或表達(dá)式等。與形參類似,參數(shù)之間用等。與形參類似,參數(shù)之間用逗號分隔逗號分隔練習(xí):求組合數(shù))!(!mnmnCmn的值,設(shè)m=6,n=10。分析:(1)編寫sub過程計算n!(2)編寫主程序調(diào)用子程序計算組合數(shù)總結(jié)總結(jié) Function過程和過程和Sub過程的區(qū)別過程的區(qū)別:1、格式上不同2、調(diào)用方式不同F(xiàn)unct
10、ion過程的調(diào)用形式:與內(nèi)部函數(shù)調(diào)用類似Sub過程的調(diào)用方式為:call 過程名(參數(shù)列表)過程名 參數(shù)列表3、應(yīng)用上Function過程:通過函數(shù)名返回一個處理結(jié)果;Sub過程:(1)沒有返回值只是實現(xiàn)一個功能;(2)通過參數(shù)傳遞返回多個處理結(jié)果。PrivateSubForm_Click()dimaasdoublecallfact(5,a)PrintaEndsuba0PrivateSubfact(nasinteger,fasdouble)EndSubf=1for i=1 to nf=f*iNext iPrivateSubForm_Click()dimaasdoublecallfact(5,a
11、)printaEndsubn5a0fa把地址傳遞給f5的值傳遞給nPrivateSubfact(nasinteger,fasdouble)EndSubf=1for i=1 to nf=f*iNext iPrivateSubForm_Click()dimaasdoublecallfact(5,a)printaEndsubn5a 5! fPrivateSubfact(nasinteger,fasdouble)EndSubf=1for i=1 to nf=f*iNext iPrivateSubForm_Click()dimaasdoublecallfact(5,a)PrintaEndsuba5!Pr
12、ivateSubfact(nasinteger,fasdouble)EndSubf=1for i=1 to nf=f*iNext i舉例:subfact(nasinteger,fasdouble)EndsubPrivateSubForm_Click()dimaasdouble,xasintegerx=5callfact(x,a)callfact(x+1,a)callfact(x),a)PrintaEndsub按值按值傳遞傳遞舉例:編寫求兩個整數(shù)最大公約數(shù)的過程,并在主程序中調(diào)用該過程求兩個數(shù)的最大公約數(shù),并根據(jù)最大公約數(shù)求最小公倍數(shù)。n在選擇參數(shù)傳遞方式時,遵照如下原則:(1)過程中處理的對象
13、是數(shù)組時,只能采用傳地址方式傳遞參數(shù);(2)過程的運算結(jié)果需要通過參數(shù)返回時,必須采用傳地址方式傳遞參數(shù)。注意:在傳值方式下,實參與形參數(shù)據(jù)類型只要相容即可;在傳地址方式時,實參的類型必須與形參一致,否則會出現(xiàn)編譯錯誤。n舉例:分別用傳地址方式和傳值方式編寫交換兩個整數(shù)的過程并調(diào)用。n舉例:編寫求一組整數(shù)平均值的過程,并在主程序中調(diào)用。n練習(xí):編寫能獲得一組整數(shù)的最大值和最小值的過程并調(diào)用。8.5 過程、變量的作用域一、過程的作用域Project1.vbpForm1.frmForm2.frmPrivate sub f1()Public function f2()Private sub f1()
14、Public function f3()一、過程的作用域n窗體(模塊)級過程定義:在窗體或標(biāo)準(zhǔn)模塊通用聲明段定義的、用Private關(guān)鍵字限制的過程。作用范圍:只能在所屬的窗體或標(biāo)準(zhǔn)模塊中被其他過程調(diào)用。n全局級過程定義:在窗體或標(biāo)準(zhǔn)模塊中定義的過程默認(rèn)是全局的,也可用Public關(guān)鍵字聲明。作用范圍:可供該應(yīng)用程序的所有窗體和所有標(biāo)準(zhǔn)模塊中的過程調(diào)用。(1)在窗體中定義的全局級過程,該窗體之外的其他過程要調(diào)用,必須在過程名前加該過程所在的窗體名。(2)在標(biāo)準(zhǔn)模塊中定義的全局過程,外部過程均可調(diào)用,若一個工程包含多個標(biāo)準(zhǔn)模塊,其中過程名重復(fù),要在過程名前加標(biāo)準(zhǔn)模塊名。工程工程1Form1For
15、m2Moudle1Moudle2Form2.fact(3)Moudle1.parray(4)二、變量的作用域 過程級 窗體(模塊)級 全局級1、過程級變量作用范圍:限制在該過程內(nèi)部。聲明變量:在過程內(nèi)部使用Dim或Static關(guān)鍵字。注意:若過程中使用了未聲明的變量,則該變量默認(rèn)為過程級變量。靜態(tài)變量:用Static聲明的變量,該類變量在過程執(zhí)行結(jié)束后一直存在,直到窗體關(guān)閉后,釋放變量所占用內(nèi)存單元。動態(tài)變量:用Dim聲明的變量,只在過程執(zhí)行時存在,退出過程后釋放該變量所占用內(nèi)存單元。2、窗體(模塊)級變量作用范圍:限制在聲明它的窗體(模塊)中。聲明變量:在窗體(模塊)的通用段中用Private或Dim關(guān)鍵字聲明。注意:當(dāng)窗體關(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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版港口工程保險合同3篇
- 二零二五版涵洞工程環(huán)保監(jiān)測合同3篇
- 二零二五版反擔(dān)保合同模板:供應(yīng)鏈金融3篇
- 二零二五年計時工勞動合同管理與心理關(guān)懷協(xié)議3篇
- 二零二五年度軟件開發(fā)項目合同及其廉潔規(guī)定2篇
- 二零二五版教育SaaS平臺軟件服務(wù)合同3篇
- 二零二五版粉煤灰運輸安全規(guī)范與應(yīng)急預(yù)案編制合同3篇
- 二零二五年度特種飼料原料采購合同模板2篇
- 二零二五年防火墻安全防護系統(tǒng)集成與維護合同3篇
- 二零二五年度大數(shù)據(jù)中心建設(shè)與運營勞務(wù)分包合同3篇
- 2024版塑料購銷合同范本買賣
- 【高一上】【期末話收獲 家校話未來】期末家長會
- 二年級下冊加減混合豎式練習(xí)360題附答案
- 應(yīng)收賬款的管理培訓(xùn)課件
- 2021年道路交通安全法期末考試試題含答案
- 股東變更情況報告表
- 自帶藥物治療告知書
- 房產(chǎn)中介門店6S管理規(guī)范
- 吞咽解剖和生理研究
- TSG11-2020 鍋爐安全技術(shù)規(guī)程
- 異地就醫(yī)備案個人承諾書
評論
0/150
提交評論