




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室VB語(yǔ)言-過(guò)程第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室2main contents 子過(guò)程的定義與調(diào)用子過(guò)程的定義與調(diào)用 函數(shù)過(guò)程的定義與調(diào)用函數(shù)過(guò)程的定義與調(diào)用 參數(shù)傳遞參數(shù)傳遞重點(diǎn)重點(diǎn)過(guò)程的遞歸調(diào)用過(guò)程的遞歸調(diào)用難點(diǎn)難點(diǎn)變量的作用范圍變量的作用范圍第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室3驗(yàn)證哥德巴赫猜想:驗(yàn)證哥德巴赫猜想: 任一大于任一大于2 2的偶數(shù)都的偶數(shù)都可寫成兩個(gè)質(zhì)數(shù)之和??蓪懗蓛蓚€(gè)質(zhì)數(shù)之和。第五章
2、第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室4過(guò)程(過(guò)程(ProcedureProcedure)是一組能夠完成特定功能的代是一組能夠完成特定功能的代碼,以一個(gè)名字來(lái)標(biāo)識(shí),用這個(gè)名字來(lái)調(diào)用。碼,以一個(gè)名字來(lái)標(biāo)識(shí),用這個(gè)名字來(lái)調(diào)用。 過(guò)程的兩個(gè)重要作用:過(guò)程的兩個(gè)重要作用: 以大化小使程序具有清晰的模塊化結(jié)構(gòu),便于多以大化小使程序具有清晰的模塊化結(jié)構(gòu),便于多個(gè)程序員的協(xié)同工作。個(gè)程序員的協(xié)同工作。 編寫具有通用性的獨(dú)立過(guò)程,便于重復(fù)調(diào)用,從編寫具有通用性的獨(dú)立過(guò)程,便于重復(fù)調(diào)用,從而簡(jiǎn)化程序。而簡(jiǎn)化程序。過(guò)程分為:自定義子過(guò)程、函數(shù)過(guò)程、事件過(guò)程過(guò)程分為:自定
3、義子過(guò)程、函數(shù)過(guò)程、事件過(guò)程第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室5自定義子過(guò)程:自定義子過(guò)程:由程序員自己編寫,用來(lái)求解特定重由程序員自己編寫,用來(lái)求解特定重復(fù)任務(wù)的子過(guò)程。復(fù)任務(wù)的子過(guò)程。子過(guò)程的調(diào)用及返回:子過(guò)程的調(diào)用及返回: 5.1 子過(guò)程的定義與調(diào)用子過(guò)程的定義與調(diào)用第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室6子過(guò)程的程序定義:子過(guò)程的程序定義:Sub (形式參數(shù)表形式參數(shù)表)Exit Sub 需要時(shí)提前退出子過(guò)程需要時(shí)提前退出子過(guò)程End Sub子過(guò)程的調(diào)用:子過(guò)程的調(diào)用:l 使用使用C
4、all關(guān)鍵字調(diào)用關(guān)鍵字調(diào)用- Call 過(guò)程名過(guò)程名(實(shí)際參數(shù)表實(shí)際參數(shù)表) 例:例:call t(1,2)l 直接調(diào)用直接調(diào)用- 過(guò)程名過(guò)程名 實(shí)際參數(shù)表實(shí)際參數(shù)表 例:例:t 1,2第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室7Private Sub Hello() 定義名為Hello的無(wú)參數(shù)子過(guò)程 MsgBox 您好!五一節(jié)快樂(lè)!End Sub Private Sub Form_Click() Call Hello 調(diào)用名為Hello的無(wú)參數(shù)子過(guò)程End Sub例例5.1 無(wú)參數(shù)的無(wú)參數(shù)的“節(jié)日問(wèn)候節(jié)日問(wèn)候”通用子過(guò)程通用子過(guò)程第五章第五章 過(guò)
5、程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室8Private Sub Command1_Click()Call Hello(Text1, Text2, Text3)Call Hello Text1, Text2, Text3 End SubPrivate Sub Hello(name1 As String, job1 As String, festival As String) Dim a As String, b As String a = 您好!值此 b = 來(lái)臨之際,向您和您的全家致以親切的問(wèn)候。 MsgBox name1 & job1 & a
6、 & festival & bEnd Sub例例5.2 帶參數(shù)的帶參數(shù)的“節(jié)日問(wèn)候節(jié)日問(wèn)候” 子過(guò)程子過(guò)程第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室9SUB MAIN( )子過(guò)程子過(guò)程 Sub Main( )是標(biāo)準(zhǔn)模塊中一個(gè)具有特殊作用的子過(guò)程,通常用于創(chuàng)建應(yīng)用程序的初始化條件。每個(gè)工程只能有一個(gè)Sub Main( )子過(guò)程。 這個(gè)通用子過(guò)程可以設(shè)置在應(yīng)用程序啟動(dòng)時(shí)首先被調(diào)用。Sub Main() x = InputBox(請(qǐng)輸入密碼:, 密碼)If x = 12345 Then Form1.Show Else MsgBox (密碼
7、不正確,即將關(guān)閉程序)End Sub第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室101.1.函數(shù)過(guò)程與自定義子過(guò)程的區(qū)別:函數(shù)過(guò)程與自定義子過(guò)程的區(qū)別:函數(shù)執(zhí)行完后將得到一個(gè)返回值,而子過(guò)程只是函數(shù)執(zhí)行完后將得到一個(gè)返回值,而子過(guò)程只是執(zhí)行一系列動(dòng)作,沒(méi)有返回值。執(zhí)行一系列動(dòng)作,沒(méi)有返回值。2.2.函數(shù)過(guò)程的定義:函數(shù)過(guò)程的定義:Function Function (形式參數(shù)表形式參數(shù)表)As )As 函數(shù)類型函數(shù)類型 程序代碼程序代碼函數(shù)過(guò)程名函數(shù)過(guò)程名= = 返回值表達(dá)式返回值表達(dá)式 End Function End Function 5.2 函
8、數(shù)過(guò)程的定義與調(diào)用函數(shù)過(guò)程的定義與調(diào)用第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室11Private Sub Form_Click() Dim a!, b!, c! a = Val(InputBox(第一個(gè)數(shù):, 輸入) b = Val(InputBox(第二個(gè)數(shù):, 輸入) c = MaxValue(a, b) Print 較大的數(shù)值 =; cEnd SubFunction MaxValue(x!, y!) As Single MaxValue = IIf( x y, x, y)End Function例例5.3 根據(jù)鍵盤輸入的兩個(gè)數(shù)值,調(diào)用根據(jù)鍵
9、盤輸入的兩個(gè)數(shù)值,調(diào)用MaxValue函數(shù)求函數(shù)求得其中較大的一個(gè)得其中較大的一個(gè) 調(diào)用函數(shù)過(guò)程時(shí)應(yīng)注意:調(diào)用函數(shù)過(guò)程時(shí)應(yīng)注意:函數(shù)過(guò)程的調(diào)用方式與標(biāo)準(zhǔn)函數(shù)函數(shù)過(guò)程的調(diào)用方式與標(biāo)準(zhǔn)函數(shù)相同,作為表達(dá)式中的一個(gè)部分相同,作為表達(dá)式中的一個(gè)部分被引用。被引用。引用時(shí)參數(shù)表必須放在括號(hào)內(nèi)引用時(shí)參數(shù)表必須放在括號(hào)內(nèi)所使用的參數(shù)的個(gè)數(shù)、位置和類所使用的參數(shù)的個(gè)數(shù)、位置和類型必須與函數(shù)中的聲明一致。型必須與函數(shù)中的聲明一致。第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室12l形式參數(shù)形式參數(shù)定義子過(guò)程和函數(shù)過(guò)程時(shí)定義子過(guò)程和函數(shù)過(guò)程時(shí),通常都會(huì)包括須從外部獲取的,
10、通常都會(huì)包括須從外部獲取的參數(shù),這些參數(shù)也稱為形式參數(shù)。在過(guò)程被調(diào)用前,形式參數(shù),這些參數(shù)也稱為形式參數(shù)。在過(guò)程被調(diào)用前,形式參數(shù)既不占有實(shí)際的存儲(chǔ)空間,也沒(méi)有值。參數(shù)既不占有實(shí)際的存儲(chǔ)空間,也沒(méi)有值。 l實(shí)際參數(shù)實(shí)際參數(shù)在在調(diào)用子過(guò)程或函數(shù)過(guò)程時(shí)調(diào)用子過(guò)程或函數(shù)過(guò)程時(shí),必須把要處理的數(shù)據(jù)提供給,必須把要處理的數(shù)據(jù)提供給被調(diào)用的過(guò)程。這些數(shù)據(jù)稱為實(shí)際參數(shù),將實(shí)際參數(shù)傳遞被調(diào)用的過(guò)程。這些數(shù)據(jù)稱為實(shí)際參數(shù),將實(shí)際參數(shù)傳遞給形式參數(shù),由被調(diào)用的過(guò)程來(lái)處理。給形式參數(shù),由被調(diào)用的過(guò)程來(lái)處理。Call Post( 6 Call Post( 6 , 8 ) 8 ) 實(shí)際參數(shù)實(shí)際參數(shù) Sub Post(x
11、 As Single, y As Single) Sub Post(x As Single, y As Single) 形式參數(shù)形式參數(shù)5.3 參數(shù)傳遞參數(shù)傳遞第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室13參數(shù)的傳遞方式參數(shù)的傳遞方式l按地址傳遞(按地址傳遞(ByRefByRef)這是默認(rèn)的參數(shù)傳遞方式這是默認(rèn)的參數(shù)傳遞方式。在被調(diào)用過(guò)程中對(duì)形式。在被調(diào)用過(guò)程中對(duì)形式參數(shù)所做的任何修改,也就是對(duì)實(shí)際參數(shù)的修改。參數(shù)所做的任何修改,也就是對(duì)實(shí)際參數(shù)的修改。l按值傳遞(按值傳遞(ByValByVal)如果在過(guò)程定義時(shí),形式參數(shù)前面用關(guān)鍵字如果在過(guò)程定義
12、時(shí),形式參數(shù)前面用關(guān)鍵字ByValByVal界定,就是按值傳遞方式。被調(diào)用過(guò)程運(yùn)行期間形界定,就是按值傳遞方式。被調(diào)用過(guò)程運(yùn)行期間形式參數(shù)的任何變化,對(duì)實(shí)際參數(shù)不會(huì)產(chǎn)生任何影響。式參數(shù)的任何變化,對(duì)實(shí)際參數(shù)不會(huì)產(chǎn)生任何影響。第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室14Private Sub Form_Click()Dim a As Single, b As Single, c As Single a = InputBox(第一個(gè)直角邊的值:) b = InputBox(第二個(gè)直角邊的值:) Call Hypotenuse(a, b) Print
13、兩直角邊分別為:; a; bEnd SubPrivate Sub Hypotenuse(x!, y!) Dim c As Single x = x 2: y = y 2 c = Sqr(x + y) Print 直角三角形斜邊的值 =; cEnd Sub 例例5.4 計(jì)算直角三角形的斜邊計(jì)算直角三角形的斜邊按地址傳遞(按地址傳遞(ByRefByRef)第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室15Private Sub Form_Click()Dim a As Single, b As Single, c As Single a = InputBo
14、x(第一個(gè)直角邊的值:) b = InputBox(第二個(gè)直角邊的值:) Call Hypotenuse(a, b) Print 兩直角邊分別為:; a; bEnd SubPrivate Sub Hypotenuse(ByVal x!, ByVal y!) Dim c As Single x = x 2: y = y 2 c = Sqr(x + y) Print 直角三角形斜邊的值 =; cEnd Sub 例例5.4 計(jì)算直角三角形的斜邊計(jì)算直角三角形的斜邊按值傳遞(按值傳遞(ByValByVal)第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室16數(shù)組
15、參數(shù)只能按地址傳遞,而不能按值傳遞。數(shù)組參數(shù)只能按地址傳遞,而不能按值傳遞。 在過(guò)程定義時(shí),若以數(shù)組作為過(guò)程的參數(shù),在過(guò)程定義時(shí),若以數(shù)組作為過(guò)程的參數(shù),則形式參數(shù)表中的數(shù)組名后要有一對(duì)空的圓括號(hào)則形式參數(shù)表中的數(shù)組名后要有一對(duì)空的圓括號(hào)表示。表示。 例:例:Private Sub sum(x() As Integer) 而在過(guò)程調(diào)用時(shí),實(shí)際參數(shù)表中的數(shù)組可以而在過(guò)程調(diào)用時(shí),實(shí)際參數(shù)表中的數(shù)組可以只用數(shù)組名表示,圓括號(hào)可以省略。只用數(shù)組名表示,圓括號(hào)可以省略。數(shù)組作為參數(shù)傳遞數(shù)組作為參數(shù)傳遞第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室17Privat
16、e Sub Form_Click()Dim a%(9), s%Print 數(shù)組各元素的值為: For i = 0 To 9 a(i) = Int(Rnd * 10) Print a(i); Next iPrintPrint “總和為:; sum(a)End Sub例例5.5 利用利用sum子過(guò)程求數(shù)組各元素的和子過(guò)程求數(shù)組各元素的和Function sum%(x%()For i = LBound(x) To UBound(x) sum = sum + x(i)Next iEnd Function第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室18驗(yàn)證哥德
17、巴赫猜想:驗(yàn)證哥德巴赫猜想: 任一大于任一大于2 2的偶數(shù)都的偶數(shù)都可寫成兩個(gè)質(zhì)數(shù)之和??蓪懗蓛蓚€(gè)質(zhì)數(shù)之和。實(shí)例練習(xí)實(shí)例練習(xí)第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室19分析:分析:(1)取出從起始數(shù)至終止數(shù)的每個(gè)數(shù)i(2)對(duì)每一個(gè)i,取2至i/2的每一個(gè)數(shù)j,分別判斷j和i-j是否同時(shí)為素?cái)?shù)(3)如果同為素?cái)?shù),則輸出第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室20主過(guò)程:主過(guò)程:Private Sub Command1_Click()Dim i%, j%a = Val(Text1) : b = Val(
18、Text2)If a Mod 2 0 Then a = a + 1For i = a To b Step 2Next iEnd SubFor j = 2 To i / 2 If PrimeMagic(j) And PrimeMagic(i - j) Then Picture1.Print i & = & j & + & i - j & ; Exit For End IfNext j第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室21函數(shù)過(guò)程函數(shù)過(guò)程:Public Function PrimeMagic(a%) As
19、 BooleanDim t As Booleant = True定義并豎起標(biāo)旗For i = 2 To Sqr(a) If a Mod i = 0 Then如果有一個(gè)i能整除a t = False則倒下標(biāo)旗,表示a不是一個(gè)素?cái)?shù) Exit For End IfNext iIf t = True Then根據(jù)標(biāo)旗,返回True或False PrimeMagic = TrueElse PrimeMagic = FalseEnd IfEnd Function第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室225.4 過(guò)程的遞歸調(diào)用過(guò)程的遞歸調(diào)用1)1)遞歸的概念
20、遞歸的概念 在過(guò)程自身結(jié)構(gòu)內(nèi)部來(lái)調(diào)用自身,稱為遞歸調(diào)用2)2)遞歸的分類遞歸的分類 直接遞歸:一個(gè)過(guò)程在執(zhí)行時(shí)直接調(diào)用過(guò)程本身 間接遞歸:過(guò)程A在執(zhí)行時(shí)調(diào)用過(guò)程B,而過(guò)程B又調(diào)用過(guò)程A第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室23例:有如下子過(guò)程例:有如下子過(guò)程Sub1Sub Sub1() End Sub第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室Sub Sub1()Y=Sub1(n)End Sub24進(jìn)行如下形式的調(diào)用進(jìn)行如下形式的調(diào)用Sub Form_Click()Call Sub1End SubSu
21、b Sub1()Y=Sub1(n)End Sub過(guò)程的嵌套調(diào)用過(guò)程的嵌套調(diào)用第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室25例例5.6 用遞歸的方法計(jì)算用遞歸的方法計(jì)算Fac(n)=n!分析:根據(jù)階乘的定義改寫成遞歸的形式:分析:根據(jù)階乘的定義改寫成遞歸的形式: n!=nn!=n* *(n-1)!(n-1)! (n-1)!=(n-1) (n-1)!=(n-1)* *(n-2)!(n-2)! 1!=1 1!=1由此得到遞歸公式如下:由此得到遞歸公式如下: 注意:遞歸的結(jié)束條件為注意:遞歸的結(jié)束條件為n=0n=0或或1 1時(shí),時(shí),n!=1n!=1)!1(
22、*1!nnn1)1 , 0(nn第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室26主調(diào)過(guò)程主調(diào)過(guò)程Option ExplicitPrivate Sub Form_Click() Dim F%, x% x = InputBox( ) F = Fac (x) Print x; ! =; FEnd Sub函數(shù)過(guò)程函數(shù)過(guò)程Function Fac%(n As Integer) If n = 0 Or n = 1 Then Fac= 1 Else Fac = n*Fac (n - 1) End IfEnd Functionxn第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)
23、基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室27 Fac(4)=4* Fac(3) Fac(3)=3* Fac(2) Fac(2)=2* Fac(1) Fac(1)=1 Fac(2)=1*2 Fac(3)=1*2*3 Fac(4)=1*2*3*4 遞推遞推 回回歸歸第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室28函數(shù)過(guò)程函數(shù)過(guò)程Function Fac% (n % ) If n = 0 Or n = 1 Then Fac= 1 Else Fac = n*Fac (n - 1) End IfEnd Function 第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)
24、程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室29l使用遞歸算法必須要注意以下兩點(diǎn):使用遞歸算法必須要注意以下兩點(diǎn):設(shè)定遞歸結(jié)束條件及結(jié)束時(shí)的值設(shè)定遞歸結(jié)束條件及結(jié)束時(shí)的值能用遞歸形式表示,并且遞歸向結(jié)束條件能用遞歸形式表示,并且遞歸向結(jié)束條件發(fā)展發(fā)展第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室30運(yùn)行下面的程序,當(dāng)單擊窗體之后,窗體上顯運(yùn)行下面的程序,當(dāng)單擊窗體之后,窗體上顯示內(nèi)容是什么?示內(nèi)容是什么?Private Sub Form_Click() Test 2End SubPrivate Sub Test(x%) x = x *
25、2 + 1 If x 6 Then Call Test(x) End If x = x * 2 + 1 Me.Print xEnd Sub 第一次調(diào)用2xx=2*2+1=56x=11*2+1=23Print x 23x=23*2+1=47Print x 47第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室31斐波那契數(shù)列問(wèn)題 “如果1對(duì)兔子每月能繁殖1對(duì)小兔子,而每對(duì)小兔在它出生后的第3個(gè)月里,又能繁殖1對(duì)小兔子,假定在不發(fā)生死亡的情況下,由1對(duì)初生的兔子開(kāi)始,1年后能繁殖成多少對(duì)兔子?” 函數(shù)表達(dá)式: 12( )(1)(2)2xf nf nf nx第五
26、章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室32斐波那契數(shù)列問(wèn)題求解Private Sub Form_Click() Print fibonacci(12)End SubFunction fibonacci(x as integer) If x=1 or x=2 then fib = 1 Else fibonacci=fibonacci(x-1)+ fibonacci(x-2) End IfEnd Function第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室33lDimDim語(yǔ)句語(yǔ)句自動(dòng)變量自動(dòng)變量l作用范圍取
27、決于其聲明的位置作用范圍取決于其聲明的位置lStaticStatic語(yǔ)句語(yǔ)句靜態(tài)變量靜態(tài)變量l作用范圍只在于它定義的過(guò)程中,但過(guò)程結(jié)束后,變作用范圍只在于它定義的過(guò)程中,但過(guò)程結(jié)束后,變量值保存量值保存lPrivatePrivate語(yǔ)句語(yǔ)句模塊級(jí)變量模塊級(jí)變量l只能在只能在窗體窗體/模塊的通用聲明段聲明(過(guò)程外),作用模塊的通用聲明段聲明(過(guò)程外),作用范圍是窗體范圍是窗體/模塊中的所有過(guò)程模塊中的所有過(guò)程lPublicPublic語(yǔ)句語(yǔ)句全局變量全局變量l只能在只能在窗體窗體/模塊的通用聲明段聲明(過(guò)程外),模塊的通用聲明段聲明(過(guò)程外), 變變量有效范圍從聲明點(diǎn)算起,生存期是整個(gè)應(yīng)用程序量
28、有效范圍從聲明點(diǎn)算起,生存期是整個(gè)應(yīng)用程序 5.5 變量的作用范圍變量的作用范圍第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室34VISUAL BASIC 應(yīng)用程序的模塊化結(jié)構(gòu)應(yīng)用程序的模塊化結(jié)構(gòu)應(yīng)用程序應(yīng)用程序工程文件(工程文件(.vbp)窗體模塊窗體模塊(.frm)文件)文件類模塊類模塊(.cls)文件)文件標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊(.bas)文件)文件事件過(guò)程事件過(guò)程(sub)子過(guò)程子過(guò)程(sub)函數(shù)過(guò)程函數(shù)過(guò)程(Function)子過(guò)程子過(guò)程(sub)函數(shù)過(guò)程函數(shù)過(guò)程(Function)第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)
29、學(xué)工程學(xué)院 計(jì)算機(jī)教研室35作用范圍作用范圍局部變量局部變量窗體窗體/模塊級(jí)模塊級(jí)變量變量全局變量全局變量窗體窗體標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊聲明方式聲明方式DimStaticDimPrivatePublic聲明位置聲明位置在過(guò)程中窗體/模塊的通用聲明段窗體/模塊的通用聲明段能否被本模能否被本模塊的其他過(guò)塊的其他過(guò)程存取程存取不能能能能否被其他能否被其他模塊存取模塊存取不能不能能,但在變量名前加窗體名能第五章第五章 過(guò)程過(guò)程計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)生物醫(yī)學(xué)工程學(xué)院 計(jì)算機(jī)教研室36Dim x As Integer, y As IntegerPrivate Sub Command1_Click()Dim Result As Single x=10: Result=x-y Print ResultEnd SubPrivate Su
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 住宅裝修裝飾合同
- 二手車買賣合同電子
- 汽車市場(chǎng)租賃合同
- 網(wǎng)站信息發(fā)布協(xié)議
- 借款汽車抵押合同
- 2025年-河北建筑安全員C證考試題庫(kù)
- 二零二五版酒店用品銷售合同模板
- 自愿繳納社保協(xié)議書(shū)
- 保潔人員勞務(wù)派遣合同二零二五年
- 專利申請(qǐng)合同范例
- 礦山塌陷治理與土地復(fù)墾
- 成人鼻腸管的留置與維護(hù)
- 干式真空泵在半導(dǎo)體及新能源領(lǐng)域的應(yīng)用及發(fā)展趨勢(shì) 2024
- 2024年4月自考02378信息資源管理試題及答案
- 2024年關(guān)于加強(qiáng)社區(qū)工作者隊(duì)伍建設(shè)的意見(jiàn)課件
- DZ∕T 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬(正式版)
- 《中電聯(lián)團(tuán)體標(biāo)準(zhǔn)-220kV變電站并聯(lián)直流電源系統(tǒng)技術(shù)規(guī)范》
- (正式版)SHT 3158-2024 石油化工管殼式余熱鍋爐
- MOOC 創(chuàng)業(yè)基礎(chǔ)-暨南大學(xué) 中國(guó)大學(xué)慕課答案
- (2024年)面神經(jīng)炎課件完整版
- 南方報(bào)業(yè)傳媒集團(tuán)筆試題
評(píng)論
0/150
提交評(píng)論