




已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Visual Basic.NET 程序設計,主講人:蔣忠中 東北大學工商管理學院,第 4 章 過 程,教學目的,教學要求,重點難點,教學內容,教學目的,學習本章的目的是了解模塊化程序設計的思想,通過學習和上機實踐,掌握Sub過程和Function過程的定義和調用方法。 參數傳遞是學習本章的重要內容之一,通過本章的學習掌握形參與實參的作用,傳值調用和引用調用的特點和區(qū)別,數組作為參數在過程定義中的意義和作用。 學習本章還需了解變量的作用域和生存期、遞歸過程的特點以及其執(zhí)行過程。 學習本章的重要目標是在程序設計中合理的定義Sub過程和Function過程。,BACK,教學要求,了解模塊化程序設計的概念、“自頂向下、逐步求精”的程序設計方法。 掌握Sub過程的定義和調用方法,會將某一功能用Sub過程來實現。 掌握Function過程的定義和調用方法,能正確區(qū)分Sub過程和Function過程之間的區(qū)別,會將某一功能利用Function過程來實現。 掌握形參和實參的意義和作用,形參與一般變量的區(qū)別。掌握形參與實參之間傳值調用和引用調用的特點,在程序設計中能合理的使用形參與實參之間的傳值調用和引用調用,能正確理解數組參數在過程定義中的作用。 正確理解變量的作用域以及變量的生存期。 了解遞歸的概念,會順利的閱讀遞歸程序,了解遞歸程序的特點。 會舉一反三,正確的定義和調用Sub過程和Function過程。,BACK,重點難點,重點: Sub過程和Function過程的定義格式和調用方法,區(qū)分這兩種過程的異同點。 形參與實參的作用,傳值調用和引用調用的特點及其區(qū)別,數組作為參數在過程定義中的作用。 變量的作用域。 遞歸過程的特點及其執(zhí)行過程。 理解Sub過程和Function過程的執(zhí)行流程。 在程序設計中,正確使用Sub過程和Function過程。,重點難點,難點: 模塊化分的原則,將一個復雜的問題分解為多個程序模塊來實現。 形參的作用,形參與實參之間的關系。 Sub過程與Function過程之間的異同。 傳值調用和引用調用的特點,在過程設計中合理的選用形參與實參之間的傳值調用和引用調用。 靜態(tài)變量的特點。 遞歸過程的執(zhí)行流程,其中的遞歸執(zhí)行條件的正確選用。,BACK,教學內容,4.1 模塊化程序設計概述,4.2 Sub過程,4.3 Function過程,4.4 參數傳遞,4.5 變量的作用域與生存期,4.6 遞歸,過程可分為事件過程和通用過程。 事件過程是當某個事件發(fā)生時,對該事件做出響應的程序段。 將這一段代碼抽象出來,建立一個獨立的、可供其它過程調用的過程,這樣的過程稱為通用過程。 通用過程主要包括Sub過程和Function過程兩類,前者也被稱作子過程,后者稱作函數過程。,4.1 模塊化程序設計概述,過程,事件過程,通用過程,Sub過程,Function過程,4.1 模塊化程序設計概述,4.1 模塊化程序設計概述,4.1.1 程序的模塊化,模塊化程序設計是分而治之策略在程序設計中的應用。人們在解決復雜問題時往往采用分而治之的策略。,4.1 模塊化程序設計概述,4.1.1 程序的模塊化,4.1 模塊化程序設計概述,4.1.2 模塊間的層次結構,具有嚴密的正確的層次結構; 具有合理的隸屬關系; 上層模塊可以調用所有隸屬于它的下層模塊; 下屬模塊只能通過唯一的出口返回到調用它的上層模塊; 整個程序按隸屬關系分成若干層次,每一層次由若干個模塊組成。,4.1 模塊化程序設計概述,4.1.3“自頂向下、逐步求精”的程序設計方法,強調的是程序總體結構,即要求程序設計人員首先確定主控模塊。 分層向下細化,即按照上一層模塊已確定的功能,把它再細化為一些子模塊。 如此繼續(xù)下去,直到所有模塊功能能夠很容易地用計算機語言實現。,4.1 模塊化程序設計概述,4.1.3“自頂向下、逐步求精”的程序設計方法,MENU,4.2 Sub過程,4.2.1 Sub過程的定義,Sub過程的定義形式: Public|Private Static Sub 過程名(形式參數列表) Exit Sub End Sub,4.2 Sub過程,4.2.1 Sub過程的定義,【例4.1】實現兩個浮點型變量值之間的交換。,Private Sub Swap(ByRef A As Single,ByRef B As Single),Dim T As Single,T=A,End Sub,:,A=B,:,B=T,4.2 Sub過程,4.2.1 Sub過程的定義,Sub過程以Sub開頭,以End Sub結束,兩者之間稱為“過程體”。 過程名的命名規(guī)則與變量名相同。 Sub過程通過形參與實參的傳遞得到結果,調用時可返回多個值。 Exit Sub的功能是退出Sub過程,其目的是用于提前結束本次過程調用。,4.2 Sub過程,4.2.1 Sub過程的定義,ByVal|ByRef 變量名( ) As 類型, 僅表示形式參數的類型、個數和次序; 在過程定義時并無具體值,也不分配存儲空間; 在過程被調用時,通過與實際參數結合獲得具體的值。 ByVal表示當該過程被調用時,參數是按值傳遞的; ByRef表示當該過程被調用時,參數是按地址傳遞的。 形式參數也可以是數組。 在例4.1中,也可以將形式參數寫成如下形式: Private Sub Swap(ByRef A!,ByRef B!),4.2 Sub過程,4.2.2 Sub過程的調用,Sub過程的調用格式如下: 過程名(實參列表) 為形參分配臨時的存儲單元; 將實參的值傳遞給形參對應的臨時單元; 執(zhí)行過程體中的語句; 當過程運行結束后把臨時單元釋放掉; 執(zhí)行調用語句的下一條語句。,4.2 Sub過程,4.2.2 Sub過程的調用,Private Sub _ Button1_Click(ByVal sender _ As System.Object, ByVal e _ As System.EventArgs) _ Handles Button1.Click,Swap(X,Y),TxtOutput.Text = “X=” + _ X.ToString( ) + “ Y=” + _ Y.ToString( ),End Sub,Dim X,Y As Single X=3.95 :Y=-12.2,Private Sub Swap(ByVal _ A As Single,ByVal B As _ Single),Dim T As Single,End Sub,Swap(X,Y),3.95,-12.2,3.95,-12.2,T=A:,A=B:,B=T,3.95,3.95,-12.2,傳值過程,調用過程,實參: X Y,形參:A B,T,MENU,4.3 Function過程,4.3.1 Function過程的定義,Function過程的定義形式: Public|Private Static Function 過程名(形式參數列表)As 類型 Exit Function End Function,4.3 Function過程,4.3.1 Function過程的定義,Function過程以Function開頭,以End Function結束,兩者之間稱為“過程體”。 過程體中至少有一條Return語句: Return 表達式。調用時,過程的返回值即該表達式的值。 “As 類型”指定Function過程返回值的數據類型。,4.3 Function過程,4.3.1 Function過程的定義,計算階乘的Function過程。 Function Fact(ByVal N As Integer) As Long Dim i As Integer Dim Result As Long Result=1 For i=1 to N Result = Result * i Next i Return Result End Function,4.3 Function過程,4.3.2 Function過程的調用,Function過程可以作為表達式的一個運算分量來使用。它的調用形式為: 過程名 (實際參數表),4.3 Function過程,4.3.1 Function過程的定義,例如,調用計算階乘的Function過程的程序段代碼: Dim X As Integer,Y As Long X=Val(InputBox(“請輸入一個不大于10的自然數:”) Y=Fact(X),MENU,4.4 參數傳遞,設計過程時要指定形式參數,包括形式參數的個數及其類型; 在調用過程時,必須提供實際參數; 完成實際參數與形式參數的結合,稱為參數傳遞。 參數傳遞分傳值和引用兩種方式。,4.4 參數傳遞,4.4.1 形參與實參,形式參數是指在定義通用過程時,出現在過程名后一對圓括號的變量。 實際參數是指在調用通用過程時,出現在過程名后一對圓括號內的變量、常量或表達式。 實參可以是常量、變量、表達式或數組名等形式。 形、實參表中的各個參數用逗號分隔。 在過程調用時,實際參數應在個數、類型和次序上與形式參數保持一致。,4.4 參數傳遞,4.4.1 形參與實參,Function Fact(ByVal N As Integer) As Long Dim i As Integer Dim Result As Long Result=1 For i=1 to N Result = Result * i Next i Return Result End Function,Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim X As Integer,Y As Long X=Val(InputBox(“請輸入一個不大于10的自然數:”) Y=Fact(X) End Sub,形參,實參,4.4 參數傳遞,4.4.2 傳值,ByVal表明調用過程時對應的實參與形參之間按傳值方式傳遞數據。 系統為形參分配臨時存儲單元,并將實參的值傳送給形參; 在過程內部改變形參的值時,并不會影響到實參的值。 實參可以是常量、變量或表達式,而變量必須有確定的值。,4.4 參數傳遞,4.4.2 傳值,【例4.2】 Private Function fun1(ByVal x%,ByVal y%) As Integer Dim sum As Integer x=x*x y=y*y sum=x+y Return sum End Function Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim A ,B ,C As Integer A=5 B=8 C=fun1(A,B) TxtOutPut.Text = “A=“ + A.ToString() + “ “ + “B=“ + _ B.ToString() + “ 計算結果=“ + C.ToString() End Sub,Private Function fun1(ByVal x%,ByVal y%) As Integer Dim sum As Integer x=x*x y=y*y sum=x+y Return sum End Function,Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim A ,B ,C As Integer A=5 B=8 C=fun1(A,B) TxtOutPut.Text = “A=“ + A.ToString() + “ “ + “B=“ + _ B.ToString() + “ 計算結果=“ + C.ToString() End Sub,4.4 參數傳遞,4.4.3 引用,ByRef表明調用過程時對應的形參與實參之間按引用方式傳遞數據。 參數的傳遞是將實參的地址傳遞給形參,即形參與實參共享相同的存儲單元。 當過程中對形參的值更改時,將更改相應實參的值。 實參可以是變量或數組,而不能是常量或表達式。,4.4 參數傳遞,4.4.3 引用,Private Sub _ Button1_Click(ByVal sender _ As System.Object, ByVal e _ As System.EventArgs) _ Handles Button1.Click,Swap(X,Y),TxtOutput.Text = “X=” + _ X.ToString( ) + “ Y=” + _ Y.ToString( ),End Sub,Dim X,Y As Single X=3.95 :Y=-12.2,Private Sub Swap(ByRef _ A As Single,ByRef B As _ Single),Dim T As Single,End Sub,Swap(X,Y),3.95,-12.2,3.95,-12.2,T=A:,A=B:,B=T,3.95,3.95,-12.2,引 用 過 程,調 用 過 程,調 用 后,實參: X Y,形參:A B,T,4.4 參數傳遞,4.4.4 數組參數,數組作為過程的參數,稱為數組參數。 不需指出數組的下標上界; 需要指明數組的維數; 數組名后的括號不能省略; 參數傳遞只能是引用。 例如,定義以下過程: Private Sub fun2(ByRef a() As Integer) End Sub,4.4 參數傳遞,4.4.4 數組做參數(例4.3),Private Function ArrSum(ByRef X() As Integer) As Integer Dim Sum,i As Integer Sum = 0 For i = 1 To X.GetUpperBound(0) Sum = Sum + X(i) Next i Return Sum End Function Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim a(12) As Integer Dim i, b As Integer For i = 1 To 12 a(i) = Val(InputBox(“請收入“ + i.ToString() + “月份的收入:“) Next i b = ArrSum(a) MsgBox(“該職工的年輸入為:“ + b.ToString() End Sub,Private Function ArrSum(ByRef X() As Integer) As Integer Dim Sum,i As Integer Sum = 0 For i = 1 To X.GetUpperBound(0) Sum = Sum + X(i) Next i Return Sum End Function,Private Sub Button1_Click(ByVal sender As System.Object, ByVal _ e As System.EventArgs) Handles Button1.Click Dim a(12) As Integer Dim i, b As Integer For i = 1 To 12 a(i) = Val(InputBox(“請收入“ + i.ToString() + “月份的收入:“) Next i b = ArrSum(a) MsgBox(“該職工的年輸入為:“ + b.ToString() End Sub,MENU,4.5 變量的作用域與生存期,4.5.1 變量的作用域,1塊范圍,塊是由End、Else、Loop或Next語句終止的語句集合。例如: ForNext IfThenElseEnd If 在某塊內聲明的變量只能在該塊內使用。例如: If XYThen Dim T As Integer T=X : X=Y : Y=T End If,T的作用域,4.5 變量的作用域與生存期,4.5.1 變量的作用域,2過程范圍,在某過程內聲明的變量只能在該過程內部使用,該變量稱為“局部變量”。例如: Private Sub Button1_Click(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Dim AA As Integer End Sub,AA的作用域,4.5 變量的作用域與生存期,4.5.1 變量的作用域,Private Sub S1( ) Dim a, b As Integer a = 11 : b = 22: a = a + 1: b = b + 1 TxtOutPut.Text = “a=“ + a.ToString() + “ b=“ + b.ToString() End Sub Private Sub S2( ) Dim a, c As Integer a = 33 : c = 44: a = a 1: c = c 1 TxtOutPut.Text = “a=“ + a.ToString() + “ b=“ + b.ToString() End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Call S1() MsgBox(“按任意鍵繼續(xù)!“) Call S2() End Sub,2過程范圍,Private Sub S1( ) Dim a, b As Integer a = 11 : b = 22: a = a + 1: b = b + 1 TxtOutPut.Text = “a=“ + a.ToString() + “ b=“ + b.ToString() End Sub,Private Sub S2( ) Dim a, c As Integer a = 33 : c = 44: a = a 1: c = c 1 TxtOutPut.Text = “a=“ + a.ToString() + “ b=“ + b.ToString() End Sub,Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Call S1() MsgBox(“按任意鍵繼續(xù)!“) Call S2() End Sub,4.5 變量的作用域與生存期,4.5.1 變量的作用域,2過程范圍,全局變量在過程外部定義,可以被該模塊的所有過程調用。 【例4.5】局部變量與全局變量的區(qū)別。,Dim a As Integer Private Sub S1() Dim b As Integer b = 20 a = a + 1 b = b + 1 TxtOutPut.Text = “a=” + a.ToString() + “ b=” + b.ToString() End Sub Private Sub S2() Dim b As Integer b= 30 a = a +1 b = b +1 TxtOutPut.Text = “a=“ + a.ToString() + “ b=“ + b.ToString() End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click a=10 Call S1() MsgBox(“按任意鍵繼續(xù)!“) Call S2() End Sub,Dim a As Integer,Private Sub S1() Dim b As Integer b = 20 a = a + 1 b = b + 1 TxtOutPut.Text = “a=” + a.ToString() + “ b=” + b.ToString() End Sub,Private Sub S2() Dim b As Integer b= 30 a = a +1 b = b +1 TxtOutPut.Text = “a=” + a.ToString() + “ b=” + b.ToString() End Sub,Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click a=10 Call S1() MsgBox(“按任意鍵繼續(xù)!“) Call S2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機信息處理應用案例題目及答案
- 高考數學備考階段總結試題及答案
- 材料疲勞裂紋擴展模型驗證重點基礎知識點
- BIM+ESE+數字孿生零碳數字化智能工廠建設方案
- 廚房油火災應急預案(3篇)
- 醫(yī)院空調火災應急預案(3篇)
- 2025年軟考設計師項目管理案例分析試題及答案
- 軟件水平考試重難點總結試題及答案
- 車輛火災車載應急預案(3篇)
- 物業(yè)防火災應急預案(3篇)
- 《C語言程序設計》教學設計 項目八北京冬奧會獎牌榜指針
- 土地房屋測繪項目投標方案技術標
- 巡視巡察課件2025
- 湖北省武漢市江岸區(qū)2024-2025學年上學期元調九年級化學試題(含標答)
- 教師心理減壓培訓課件
- 2025年上半年臺山市國糧食集團限公司招聘工作人員12人易考易錯模擬試題(共500題)試卷后附參考答案
- PE給水管道施工組織方案
- 四年級 下冊 人教版 數學 第八單元《平均數(二)(例2)》 課件
- 信息技術與人工智能(重慶工業(yè)職業(yè)技術學院)知到智慧樹答案
- 飛機儀電與飛控系統原理知到智慧樹章節(jié)測試課后答案2024年秋中國人民解放軍海軍航空大學
- 家具類項目安裝調試方案
評論
0/150
提交評論