版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第八講,過程,內(nèi)容提要,Sub過程 Function過程 參數(shù)傳遞 變量的作用域,過程,Visual Basic應(yīng)用程序是由過程組成的。 過程是用來執(zhí)行特定任務(wù)的一段獨(dú)立的程序代碼。 “分而治之”的方法易于程序的開發(fā)和管理 軟件的可重用性 避免程序中的重復(fù)代碼,過程,Visual Basic應(yīng)用程序的過程主要有: 事件過程 通用過程 通用過程的名稱由用戶定義,供事件過程和其它通用過程調(diào)用。 Visual Basic中的通用過程有: Sub過程(子過程) Function過程(函數(shù)過程),Sub過程的定義,Private|Public StaticSub 過程名(參數(shù)列表) 語句塊 Exit S
2、ub 語句塊 End Sub,通用Sub過程可放在標(biāo)準(zhǔn)模塊、窗體模塊和類模塊中。 過程名的命名規(guī)則與變量的命名規(guī)則相同。 參數(shù)列表指明在調(diào)用時(shí)傳送給過程的參數(shù)的個(gè)數(shù)和類型,含有在調(diào)用時(shí)傳給該過程的變量名或數(shù)組名,每個(gè)名字用逗號分隔,每個(gè)參數(shù)的格式為: ByVal|ByRef 變量名() As 數(shù)據(jù)類型,Sub過程的定義,使用“添加過程”對話框 在窗體的代碼窗口或模塊的代碼窗口中,執(zhí)行“工具”/“添加過程”命令,Sub過程的定義,直接在代碼窗口中定義,在代碼窗口中,把光標(biāo)定位在所有過程的外邊,或者選擇“對象”框中的“通用”,“過程”框中的“聲明”。,直接輸入過程的名稱,然后回車, 代碼窗口中就會
3、顯示過程模板。,Sub過程的調(diào)用,使用Call語句,其一般格式為: Call 過程名 (實(shí)參列表) 直接使用子過程名,其一般格式為: 過程名 實(shí)參列表,實(shí)參列表中的實(shí)際參數(shù)之間要用逗號分隔。 使用Call語句調(diào)用過程時(shí),如果過程本身沒有參數(shù),括號可以省略。 直接使用子過程名調(diào)用過程時(shí),過程名后面不加括號,實(shí)參直接寫在過程名的后面,實(shí)參之間用逗號分隔。,Sub過程-例1,編寫Sub過程求3個(gè)數(shù)中的最大值,分析:Sub過程max的功能是找出3個(gè)數(shù)中的最大值,然后在事件過程中調(diào)用該過程,Private Sub Command1_Click() Dim x1 As Single, x2 As Sing
4、le, x3 As Single Dim a As Single x1 = Val(Text1.Text) x2 = Val(Text2.Text) x3 = Val(Text3.Text) Call max(x1, x2, x3, a) Label4.Caption = 最大值是 i root End Sub,迭代例2,用牛頓法求方程 f(x)=x3-3x-1=0 在x0=2附近的一個(gè)實(shí)根,給定初值x0,過點(diǎn)(x0,f(x0)作曲線y=f(x)的切線,與x軸交于x1, 過(x1,f(x1)作曲線y=f(x)的切線,與x軸交于x2 當(dāng)xi+1xi的絕對值小于指定的精度值時(shí),xi+1就是方程根的
5、近似解。,牛頓法求方程根的思路是:,迭代例2,牛頓迭代公式為:,Private Function newton(ByVal x As Double) Dim fx#, fdx#, y#, eps# Do fx = x 3 - 3 * x - 1 fdx = 3 * x 2 - 3 y = x - fx / fdx eps = Abs(y - x) x = y Loop While eps 0.000001 newton = y End Function,Private Sub Command1_Click() z = newton(2) Print z End Sub,迭代與遞歸比較,都基于基
6、本控制結(jié)構(gòu),都與循環(huán)有關(guān) 迭代使用循環(huán),遞歸使用選擇結(jié)構(gòu) 迭代明確使用循環(huán)結(jié)構(gòu),遞歸通過重復(fù)的過程調(diào)用而實(shí)現(xiàn)循環(huán) 遞歸有負(fù)面作用 遞歸重復(fù)的激活過程調(diào)用機(jī)制,很快使系統(tǒng)溢出,浪費(fèi)處理器的時(shí)間和內(nèi)存 迭代通常在單個(gè)過程里發(fā)生,重復(fù)調(diào)用的內(nèi)存消耗不明顯 利用遞歸解決的問題也可以利用迭代解決 當(dāng)遞歸方法更自然的反映問題,能使程序更清晰且易于調(diào)試,或迭代方案不明顯時(shí),選擇遞歸 否則,應(yīng)盡量避免使用遞歸,VB代碼的結(jié)構(gòu),VB應(yīng)用程序 .VBP,窗體模塊 .Frm,標(biāo)準(zhǔn)模塊 .Bas,類模塊 .Cls,函數(shù)過程 Function,子過程 Sub,事件過程,函數(shù)過程 Function,子過程 Sub,“工程
7、”/ “添加模塊” “工程”/ “添加類模塊”,變量的作用域,變量的作用域是指變量能被過程識別的范圍,根據(jù)作用域的不同,Visual Basic的變量分為三種: 局部變量 窗體/模塊級變量 全局變量,局部變量,局部變量也稱過程級變量,是在事件過程或通用過程內(nèi)聲明的變量 局部變量的作用域是該過程本身 局部變量一般用Dim或Static關(guān)鍵字聲明 使用Dim和Static關(guān)鍵字聲明的局部變量其工作方式是不同的,局部變量,使用Dim聲明的局部變量也叫自動變量 隨著過程的調(diào)用分配存儲空間 當(dāng)過程結(jié)束時(shí),變量占用的內(nèi)存空間被釋放 下次再調(diào)用該過程時(shí),要重新為該局部變量分配內(nèi)存空間 使用Static關(guān)鍵字
8、聲明的局部變量也稱為“靜態(tài)變量” 當(dāng)過程結(jié)束時(shí),不釋放變量所在的內(nèi)存空間,變量的值被保留下來 下次調(diào)用同一過程時(shí),該變量的值就是上一次過程調(diào)用結(jié)束時(shí)的值,直到程序結(jié)束,變量所在的內(nèi)存空間才被釋放。 靜態(tài)變量常用來作記數(shù)使用,局部變量-例,Private Sub Command1_Click() Dim i%, isum% Print 調(diào)用sum1的結(jié)果是: For i = 1 To 5 isum = sum1(i) Print isum; Next i Print End Sub,Private Function sum1(j As Integer) As Integer Dim s As I
9、nteger s = s + j sum1 = s End Function,Private Sub Command2_Click() Dim i%, isum% Print 調(diào)用sum2的結(jié)果是: For i = 1 To 5 isum = sum2(i) Print isum; Next i Print End Sub,Private Function sum2(k As Integer) As Integer Static s As Integer s = s + k sum2 = s End Function,窗體/模塊級變量,窗體/模塊級變量是在窗體或標(biāo)準(zhǔn)模塊的任何過程之外,在“通用
10、聲明”中用Dim 或Private聲明的變量 窗體/模塊級變量可被本窗體或本模塊內(nèi)的任何過程調(diào)用,但不能被其它窗體或其它模塊的過程調(diào)用。 聲明窗體/模塊級變量時(shí),使用Dim 和Private效果是相同的,但使用Private比較好,它可以和局部變量區(qū)別開,全局變量,全局變量指的是在標(biāo)準(zhǔn)模塊的“通用聲明”中用Public關(guān)鍵字聲明的變量。 全局變量可在工程的所有模塊,所有過程中使用。 全局變量的值在整個(gè)應(yīng)用程序中存在,只有整個(gè)程序結(jié)束時(shí),全局變量的值才消失。,變量的作用域,變量的作用域-例,比較局部變量、靜態(tài)局部變量和模塊變量的作用域,Private a As Integer,通用聲明段聲明模塊
11、變量a,并初始化為0,在過程中聲明的同名局部變量a,將隱藏模塊變量a。,Private Sub Form_Click() Dim a As Integer a = 6 Print 進(jìn)入 form_click()時(shí) & 局部變量a是 & a Print Print 第一次進(jìn)入過程: Call one Call two Call three Print Print 第二次進(jìn)入過程: Call one Call two Call three Print 退出form_click()時(shí) & 局部變量a是 & a End Sub,聲明了局部變量a, 隱藏了模塊變量a,程序中定義了三個(gè)無參的通用過程,并兩次調(diào)用了此三個(gè)過程。,變量的作用域-例,Private Sub one() Dim a As Integer Print 進(jìn)入過程one時(shí) & 局部變量a是 & a a = a + 10 Print 退出過程one時(shí) & 局部變量a是 & a Print End Sub,Private Sub two() Static a As Integer Print 進(jìn)入過程two時(shí) & 局部靜態(tài)變
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030家居裝修服務(wù)行業(yè)市場深度分析及發(fā)展前景與投資前景研究報(bào)告
- 【初中語文】中考語文一輪復(fù)習(xí)+《北冥有魚》課件
- 滅火器檢查與使用維護(hù)規(guī)范
- 2026年工程造價(jià)管理中的數(shù)據(jù)分析應(yīng)用
- 中醫(yī)藥文化普及與推廣方案
- 2026年合同糾紛調(diào)解與仲裁的程序
- 雨季施工項(xiàng)目管理與風(fēng)險(xiǎn)防控措施
- 2026年數(shù)字化如何改變房地產(chǎn)行業(yè)
- TUNEL染色操作及結(jié)果判讀
- 成人教育??茖W(xué)習(xí)指導(dǎo)手冊
- 工地上電工安全培訓(xùn)課件
- 現(xiàn)場應(yīng)急處置方案
- 2025年1月新疆普通高中學(xué)業(yè)水平考試物理試卷
- 2026年上半年新疆中小學(xué)教師資格考試(筆試)備考題庫(真題匯編)
- 2025-2026學(xué)年度第一學(xué)期期末測試三年級語文試卷
- 爐渣資源化處理技術(shù)方案
- 騎馬戶外免責(zé)協(xié)議書
- 2025年吐魯番地區(qū)托克遜縣輔警招聘考試題庫附答案解析
- 賣香腸訂貨合同范本
- 統(tǒng)編版(2025)八年級上冊歷史期末復(fù)習(xí)各課重點(diǎn)考點(diǎn)提綱
- 物業(yè)公司安全生產(chǎn)管理體系
評論
0/150
提交評論