過(guò)程 教學(xué)課件PPT
《過(guò)程 教學(xué)課件PPT》由會(huì)員分享,可在線閱讀,更多相關(guān)《過(guò)程 教學(xué)課件PPT(69頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第第7 7章章過(guò)過(guò) 程程本章要點(diǎn)本章要點(diǎn): :FunctionFunction過(guò)程過(guò)程SubSub過(guò)程過(guò)程參數(shù)的傳遞參數(shù)的傳遞* *過(guò)程的嵌套調(diào)用過(guò)程的嵌套調(diào)用過(guò)程的遞歸調(diào)用過(guò)程的遞歸調(diào)用* *VBVB的工程結(jié)構(gòu)的工程結(jié)構(gòu)變量的作用域與生存期變量的作用域與生存期* * 過(guò)程的引入過(guò)程的引入: 使同類(lèi)的操作不重復(fù)使同類(lèi)的操作不重復(fù) (操作方法相同、參數(shù)不同操作方法相同、參數(shù)不同) 過(guò)程過(guò)程: 完成一段獨(dú)立功能,可供其他過(guò)程使用完成一段獨(dú)立功能,可供其他過(guò)程使用(調(diào)調(diào)用用)。 過(guò)程又稱(chēng)為過(guò)程又稱(chēng)為子程序子程序 調(diào)用過(guò)程調(diào)用過(guò)程: 調(diào)用其他過(guò)程的過(guò)程調(diào)用其他過(guò)程的過(guò)程調(diào)用過(guò)程調(diào)用過(guò)程: 調(diào)用調(diào)用Sp
2、rg1調(diào)用調(diào)用Sprg1調(diào)用調(diào)用Sprg2子過(guò)程子過(guò)程: Sprg1子過(guò)程子過(guò)程: Sprg2過(guò)程分類(lèi)過(guò)程分類(lèi): : Sub過(guò)程過(guò)程Function過(guò)程過(guò)程內(nèi)部過(guò)程內(nèi)部過(guò)程(方法方法)事件過(guò)程事件過(guò)程自定義過(guò)程自定義過(guò)程 內(nèi)部函數(shù)內(nèi)部函數(shù) 自定義函數(shù)自定義函數(shù)其中,自定義函數(shù)和自定義過(guò)程統(tǒng)稱(chēng)為其中,自定義函數(shù)和自定義過(guò)程統(tǒng)稱(chēng)為通用過(guò)程通用過(guò)程7.1 7.1 FunctionFunction過(guò)程過(guò)程( (函數(shù)過(guò)程函數(shù)過(guò)程) )7.1.1 Function過(guò)程的定義過(guò)程的定義1. Function過(guò)程的格式過(guò)程的格式 Public|PrivateStatic Function ( ) As = E
3、xit Function End Function2. 說(shuō)明說(shuō)明(1) Public: 缺省值。使用缺省值。使用Public時(shí)表示各模塊的所時(shí)表示各模塊的所 有其他過(guò)程都可以調(diào)用該有其他過(guò)程都可以調(diào)用該Function過(guò)程。過(guò)程。(2) Private: 使用使用Private時(shí)表示只有本模塊中的其他時(shí)表示只有本模塊中的其他過(guò)程才可以調(diào)用該過(guò)程才可以調(diào)用該Function過(guò)程。過(guò)程。(3) Static: 使用使用Static時(shí)表示將過(guò)程中的所有局部變時(shí)表示將過(guò)程中的所有局部變 量說(shuō)明為靜態(tài)變量。量說(shuō)明為靜態(tài)變量。(4) : Function過(guò)程的名稱(chēng),遵循變量過(guò)程的名稱(chēng),遵循變量 的命名規(guī)則
4、。的命名規(guī)則。(5) : 表示表示Function過(guò)程的參數(shù)變量列表。過(guò)程的參數(shù)變量列表。多個(gè)變量之間用逗號(hào)隔開(kāi)。多個(gè)變量之間用逗號(hào)隔開(kāi)。 格式格式: ByVal|ByRef|Optional|ParamArray ( ) As ByVal: 表示該參數(shù)按值傳遞。表示該參數(shù)按值傳遞。 ByRef: 缺省值。表示該參數(shù)按地址傳遞。缺省值。表示該參數(shù)按地址傳遞。 Optional:表示該參數(shù)為可選參數(shù)。表示該參數(shù)為可選參數(shù)。 ParamArray:表示該參數(shù)是一個(gè)表示該參數(shù)是一個(gè)Variant類(lèi)型的類(lèi)型的Optional數(shù)組。數(shù)組。 : 任何變量名或數(shù)組名。任何變量名或數(shù)組名。 ( ): 當(dāng)參數(shù)為
5、數(shù)組時(shí)使用。當(dāng)參數(shù)為數(shù)組時(shí)使用。(6) As : : 聲明函數(shù)值的類(lèi)型。聲明函數(shù)值的類(lèi)型。(7) Exit Function語(yǔ)句語(yǔ)句: 從從Function過(guò)程中退出。過(guò)程中退出。(8) Function過(guò)程通過(guò)賦值語(yǔ)句過(guò)程通過(guò)賦值語(yǔ)句: = 將函數(shù)的返回值賦給將函數(shù)的返回值賦給 。(9) Function過(guò)程的定義不能過(guò)程的定義不能嵌套嵌套。3. Function過(guò)程的建立過(guò)程的建立: 建立位置建立位置窗體模塊窗體模塊標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊類(lèi)模塊類(lèi)模塊*建立方法建立方法直接在代碼窗口中輸入直接在代碼窗口中輸入 應(yīng)寫(xiě)在應(yīng)寫(xiě)在“通用通用”的位置。的位置。使用菜單命令:工具使用菜單命令:工具添加過(guò)程添加
6、過(guò)程 先切換到代碼窗口,才可以使用該菜單命令。先切換到代碼窗口,才可以使用該菜單命令?!纠纠?-1】編寫(xiě)一個(gè)計(jì)算】編寫(xiě)一個(gè)計(jì)算n!的的Function過(guò)程。過(guò)程。 分析:確定參數(shù)個(gè)數(shù)、類(lèi)型、函數(shù)名、類(lèi)型分析:確定參數(shù)個(gè)數(shù)、類(lèi)型、函數(shù)名、類(lèi)型 Function Fact(N As Integer) As Long Dim I As Integer, F As Long F = 1 F用于保存階乘值用于保存階乘值 For I = 1 To N F = F * I Next I Fact = F 給函數(shù)過(guò)程名賦值給函數(shù)過(guò)程名賦值 End Function【例【例7-2】編寫(xiě)一個(gè)】編寫(xiě)一個(gè)Funct
7、ion過(guò)程,計(jì)算下面過(guò)程,計(jì)算下面表達(dá)式的值。表達(dá)式的值。|zyx|333 問(wèn):應(yīng)設(shè)置幾個(gè)參數(shù)?問(wèn):應(yīng)設(shè)置幾個(gè)參數(shù)? Function F(X, Y, Z) F = Sqr(Abs(X 3 + Y 3 + Z 3) End Function 這里的參數(shù)和函數(shù)名都沒(méi)有定義類(lèi)型,默認(rèn)這里的參數(shù)和函數(shù)名都沒(méi)有定義類(lèi)型,默認(rèn)為為Variant類(lèi)型。類(lèi)型。7.1.2 Function過(guò)程的調(diào)用過(guò)程的調(diào)用1. 調(diào)用位置:調(diào)用位置: 直接在表達(dá)式中調(diào)用。直接在表達(dá)式中調(diào)用。2. 調(diào)用格式調(diào)用格式: ( ) 其中,其中, : n常量、變量或表達(dá)式常量、變量或表達(dá)式n各參數(shù)之間用逗號(hào)分隔各參數(shù)之間用逗號(hào)分隔n如
8、果是數(shù)組,在數(shù)組名之后要跟一對(duì)空括號(hào)。如果是數(shù)組,在數(shù)組名之后要跟一對(duì)空括號(hào)。【例【例7-3】從鍵盤(pán)任意輸入一個(gè)整數(shù),然】從鍵盤(pán)任意輸入一個(gè)整數(shù),然后調(diào)用計(jì)算后調(diào)用計(jì)算 階乘的函數(shù)求該整數(shù)的階乘值階乘的函數(shù)求該整數(shù)的階乘值。 設(shè)計(jì)界面和運(yùn)行界面如下:設(shè)計(jì)界面和運(yùn)行界面如下:Label3Text1Command1Label2設(shè)計(jì)界面設(shè)計(jì)界面運(yùn)行界面運(yùn)行界面代碼如下:代碼如下:Option Explicit 自定義求階乘的函數(shù)過(guò)程自定義求階乘的函數(shù)過(guò)程FactFunction Fact(N As Integer) As Long Dim I As Integer, F As Long F = 1
9、For I = 1 To N F = F * I Next I Fact = F 給函數(shù)過(guò)程名賦值給函數(shù)過(guò)程名賦值End Function 在按鈕的在按鈕的Click事件過(guò)程中調(diào)用函數(shù)過(guò)程事件過(guò)程中調(diào)用函數(shù)過(guò)程Private Sub Command1_Click() Dim X As Integer X = Val(Text1.Text) Label2.Caption=Trim(Str(X) & 的階乘數(shù)為的階乘數(shù)為: 使用使用Fact(X)調(diào)用函數(shù)過(guò)程調(diào)用函數(shù)過(guò)程 Label3.Caption = Trim(Str(Fact(X) End Sub【例【例7-4】利用】利用Function過(guò)程
10、計(jì)算階乘,求組過(guò)程計(jì)算階乘,求組合數(shù)。設(shè)計(jì)界面如下圖。合數(shù)。設(shè)計(jì)界面如下圖。Text2OLE1控件控件Text1Text3Command1BackStyle: 0 - TransparentBorderStyle: 0 NoneSizeMode: 2 - AutoSize代碼如下:代碼如下: 定義求階乘的函數(shù)定義求階乘的函數(shù)FactFunction Fact(N As Integer) As Double Dim F As Double, I As Integer F = 1 For I = 1 To N F = F * I Next I Fact = FEnd Function “=”按鈕的
11、按鈕的Click事件過(guò)程事件過(guò)程Private Sub Command1_Click() Dim M As Integer, N As Integer, C As Double N = Val(Text1.Text) M = Val(Text2.Text) 調(diào)用調(diào)用Fact函數(shù)求各階乘值函數(shù)求各階乘值 C = Fact(M) / (Fact(N) * (Fact(M - N) Text3.Text = Trim(Str(c)End Sub【例【例7-5】編寫(xiě)】編寫(xiě)Function過(guò)程求最大公約數(shù),并通過(guò)程求最大公約數(shù),并通過(guò)命令按鈕的單擊事件過(guò)程調(diào)用該函數(shù)過(guò)程。過(guò)命令按鈕的單擊事件過(guò)程調(diào)用該函
12、數(shù)過(guò)程。Text1Text2Command1Label3Function hcf(m As Integer, n As Integer) As Integer Dim r As Integer r = m Mod n Do While r 0 m = n n = r r = m Mod n Loop hcf = nEnd FunctionPrivate Sub Command1_Click() Dim m As Integer, n As Integer m = Val(Text1.Text): n = Val(Text2.Text) Label3.Caption = Str(hcf(m, n
13、)End Sub【例【例7-6】編寫(xiě)一個(gè)】編寫(xiě)一個(gè)Function過(guò)程,返回指定個(gè)數(shù)的過(guò)程,返回指定個(gè)數(shù)的字符串,字符串以字符串,字符串以A開(kāi)始,例如,當(dāng)指定個(gè)數(shù)開(kāi)始,例如,當(dāng)指定個(gè)數(shù)5時(shí),時(shí),函數(shù)返回字符串函數(shù)返回字符串 A B C D E。運(yùn)行時(shí)單擊按鈕調(diào)運(yùn)行時(shí)單擊按鈕調(diào)用該函數(shù)過(guò)程,實(shí)現(xiàn)在窗體上按指定的行數(shù)輸出用該函數(shù)過(guò)程,實(shí)現(xiàn)在窗體上按指定的行數(shù)輸出如下圖所示的圖形。如下圖所示的圖形。 CreateStr函數(shù)返回函數(shù)返回N個(gè)字符個(gè)字符Private Function CreateStr(N As Integer) Dim TmpStr As String, I As Integer T
14、mpStr = StrAsc用于保存字符的用于保存字符的ASCII碼碼 StrAsc = Asc(A) 1 For I = 1 To N StrAsc = StrAsc + 1 生成下一字符的生成下一字符的ASCII碼碼 TmpStr = TmpStr & Space(1) & Chr(StrAsc) Next I CreateStr = TmpStrEnd Function “輸出圖形輸出圖形”按鈕的按鈕的Click事件過(guò)程事件過(guò)程Private Sub Command1_Click() Dim N As Integer, I As Integer 指定圖形的行數(shù)指定圖形的行數(shù) N = Va
15、l(InputBox(圖形的行數(shù)圖形的行數(shù), 請(qǐng)輸入請(qǐng)輸入, 5) Cls Print For I = 1 To N Print Tab(2 * I); 輸出左半部分輸出左半部分 Print CreateStr(2 * N - 2 * I + 1); Print Spc(4); 左右兩部分的間隔左右兩部分的間隔 Print CreateStr(2 * I - 1); 輸出右半部分輸出右半部分 Print Next IEnd Sub7.2 7.2 SubSub過(guò)程過(guò)程 當(dāng)需要自定義過(guò)程返回一個(gè)值時(shí),使用當(dāng)需要自定義過(guò)程返回一個(gè)值時(shí),使用Function過(guò)程很容易實(shí)現(xiàn)。過(guò)程很容易實(shí)現(xiàn)。 但在實(shí)際應(yīng)
16、用中,可能希望過(guò)程不需要返但在實(shí)際應(yīng)用中,可能希望過(guò)程不需要返回值,例如,使用過(guò)程打印一個(gè)圖形;或需回值,例如,使用過(guò)程打印一個(gè)圖形;或需要過(guò)程返回多個(gè)值,例如,利用過(guò)程對(duì)一批要過(guò)程返回多個(gè)值,例如,利用過(guò)程對(duì)一批數(shù)據(jù)進(jìn)行排序,在這些情況下就需要使用數(shù)據(jù)進(jìn)行排序,在這些情況下就需要使用Sub過(guò)程過(guò)程。7.2.1 Sub過(guò)程的定義過(guò)程的定義1. Sub過(guò)程的格式過(guò)程的格式 Private|PublicStatic Sub ( ) Exit Sub End Sub2. 說(shuō)明說(shuō)明(1) Exit Sub用于退出用于退出Sub過(guò)程。過(guò)程。(2) 不具有值的意義,在不具有值的意義,在Sub過(guò)程中不能過(guò)程
17、中不能給給賦值,也不能給賦值,也不能給定義類(lèi)型。定義類(lèi)型。(3) Sub過(guò)程通過(guò)過(guò)程通過(guò) 中的參數(shù)返回值。中的參數(shù)返回值。(4) Sub過(guò)程的建立方法與過(guò)程的建立方法與Function過(guò)程的建立方法過(guò)程的建立方法相同。相同?!纠纠?-7】編寫(xiě)計(jì)算】編寫(xiě)計(jì)算n!的的Sub過(guò)程。過(guò)程。 分析分析: 參數(shù)表中應(yīng)有一個(gè)參數(shù)參數(shù)表中應(yīng)有一個(gè)參數(shù)n,還應(yīng)有另一個(gè)參還應(yīng)有另一個(gè)參數(shù)數(shù)F用來(lái)返回階乘值。用來(lái)返回階乘值。 Sub Fact(N As Integer, F As Long) Dim I As Integer F = 1 For I = 1 To N F = F * I Next I End Su
18、b【例例7-8】編寫(xiě)】編寫(xiě)Sub過(guò)程,打印以下圖形。過(guò)程,打印以下圖形。 分析分析: 打印該圖形不需要返回值,因此無(wú)打印該圖形不需要返回值,因此無(wú)需引入?yún)?shù)。需引入?yún)?shù)。 * * * * *Sub a() For i = 1 To 6 Print Tab(7 - i); For j = 1 To 2 * i - 1 Print *; Next j Print Next iEnd Sub【例例7-9】編寫(xiě)】編寫(xiě)Sub過(guò)程,求三個(gè)數(shù)中的最大數(shù)和過(guò)程,求三個(gè)數(shù)中的最大數(shù)和最小數(shù)。最小數(shù)。 分析分析: 首先要設(shè)置三個(gè)參數(shù),如首先要設(shè)置三個(gè)參數(shù),如x、y、z,用于接用于接收三個(gè)原始數(shù)據(jù),另外引入兩個(gè)參數(shù)
19、收三個(gè)原始數(shù)據(jù),另外引入兩個(gè)參數(shù)max和和min,用于返回最大和最小數(shù)。用于返回最大和最小數(shù)。 Sub s(x, y, z, max, min) max = x min = x If y max Then max = y If y max Then max = z If z min Then min = z End Sub7.2.2 Sub過(guò)程的調(diào)用過(guò)程的調(diào)用說(shuō)明說(shuō)明: (1) : 要調(diào)用的要調(diào)用的Sub過(guò)程名。過(guò)程名。(2) : 可以是可以是常量、變量或表達(dá)式常量、變量或表達(dá)式,各參數(shù),各參數(shù)之間用逗號(hào)分隔。如果是之間用逗號(hào)分隔。如果是數(shù)組參數(shù)數(shù)組參數(shù),則要在數(shù),則要在數(shù)組名之后跟一對(duì)空括號(hào)
20、。組名之后跟一對(duì)空括號(hào)。(3) 用用Call語(yǔ)句調(diào)用一個(gè)語(yǔ)句調(diào)用一個(gè)Sub過(guò)程時(shí),如果過(guò)程本身過(guò)程時(shí),如果過(guò)程本身沒(méi)有參數(shù),則省略沒(méi)有參數(shù),則省略 和括號(hào)。和括號(hào)。(4) 格式二省略了格式二省略了Call關(guān)鍵字,同時(shí)關(guān)鍵字,同時(shí) 兩邊兩邊也不能帶括號(hào)。也不能帶括號(hào)。格式一格式一: Call ( )格式二格式二: 【例【例7-10】將求組合數(shù)一題改成用】將求組合數(shù)一題改成用Sub過(guò)程實(shí)現(xiàn)過(guò)程實(shí)現(xiàn)Sub Fact(N As Integer, F As Long) Dim I As Integer F = 1 For I = 1 To N F = F * I Next IEnd SubPrivate
21、 Sub Command1_Click() Dim M As Integer, N As Integer Dim f1 As Long, f2 As Long, f3 As Long M = Val(Text1.Text) : N = Val(Text2.Text) Call Fact(M, f1):Call Fact(N, f2):Call Fact(M - N, f3) Text3.Text = Trim(Str(f1 / (f2 * f3)End Sub【例【例7-11】編寫(xiě)一個(gè)】編寫(xiě)一個(gè)Sub過(guò)程,計(jì)算過(guò)程,計(jì)算K個(gè)數(shù)的和,即個(gè)數(shù)的和,即1+2+K,并通過(guò)命令按鈕的單擊事件調(diào)用該過(guò)程計(jì)
22、算并通過(guò)命令按鈕的單擊事件調(diào)用該過(guò)程計(jì)算S=1+(1+2)+(1+2+3)+ +(1+2+N)。 分析分析: 編寫(xiě)一個(gè)編寫(xiě)一個(gè)Sub過(guò)程計(jì)算過(guò)程計(jì)算1+2+K, 設(shè)參數(shù)設(shè)參數(shù)K、S,參數(shù)參數(shù)S用于返回該和值。用于返回該和值。 Sub A1(K As Integer, S As Integer) S = 0 For J = 1 To K S = S + J Next J End SubPrivate Sub Command1_Click() Dim N As Integer, S1 As Integer, I As Integer N = Val(Text1.Text) For I = 1 To
23、 N 調(diào)用過(guò)程調(diào)用過(guò)程A1求求1+2+I,和值返回到和值返回到S1中中 Call A1(I, S1) Sum = Sum + S1 Next I Text2.Text = SumEnd Sub7.3 7.3 參數(shù)的傳遞參數(shù)的傳遞 參數(shù)傳遞參數(shù)傳遞是指是指調(diào)用過(guò)程與被調(diào)用過(guò)程之間的一調(diào)用過(guò)程與被調(diào)用過(guò)程之間的一種數(shù)據(jù)通訊方法。種數(shù)據(jù)通訊方法。 數(shù)據(jù)的傳遞方式可以是單向的,也可以是雙向數(shù)據(jù)的傳遞方式可以是單向的,也可以是雙向的。分別稱(chēng)為的。分別稱(chēng)為按值傳遞按值傳遞和和按地址傳遞按地址傳遞。 數(shù)據(jù)傳遞是通過(guò)數(shù)據(jù)傳遞是通過(guò)形參形參和和實(shí)參實(shí)參進(jìn)行傳遞的。進(jìn)行傳遞的。7.3.1 7.3.1 形參和實(shí)參形
24、參和實(shí)參 形參形參: 出現(xiàn)在出現(xiàn)在Sub或或Function語(yǔ)句中。語(yǔ)句中。 實(shí)參實(shí)參: 出現(xiàn)在調(diào)用程序中。出現(xiàn)在調(diào)用程序中。 例如,定義如下一個(gè)過(guò)程例如,定義如下一個(gè)過(guò)程: Sub SubTest(n As Integer,Sum As Single) End Sub 調(diào)用語(yǔ)句調(diào)用語(yǔ)句: Call SubTest( a , s )形參形參實(shí)參實(shí)參說(shuō)明說(shuō)明: 一般情況下,形參表與實(shí)參表中對(duì)應(yīng)參數(shù)個(gè)數(shù)、一般情況下,形參表與實(shí)參表中對(duì)應(yīng)參數(shù)個(gè)數(shù)、類(lèi)型、位置順序必須一一對(duì)應(yīng)類(lèi)型、位置順序必須一一對(duì)應(yīng)(除非使用關(guān)鍵字除非使用關(guān)鍵字Optional或或ParamArray對(duì)形參進(jìn)行了約束對(duì)形參進(jìn)行了約束
25、)形參表中的參數(shù)可以是形參表中的參數(shù)可以是: 除固定長(zhǎng)度字符串之外的合法除固定長(zhǎng)度字符串之外的合法 變量名、數(shù)組名變量名、數(shù)組名()實(shí)參表中的參數(shù)可以是實(shí)參表中的參數(shù)可以是: 常量、變量、表達(dá)式、數(shù)組名常量、變量、表達(dá)式、數(shù)組名()形參與實(shí)參的結(jié)合有兩種方式形參與實(shí)參的結(jié)合有兩種方式: 按值傳遞和按地址傳遞。按值傳遞和按地址傳遞。1. 按值傳遞按值傳遞 實(shí)參把其值傳遞給形參而不傳遞實(shí)參的地址。實(shí)參把其值傳遞給形參而不傳遞實(shí)參的地址。 數(shù)據(jù)的傳遞是單向的。數(shù)據(jù)的傳遞是單向的。(1) 當(dāng)實(shí)參為常量或表達(dá)式時(shí),數(shù)據(jù)傳遞總是單向當(dāng)實(shí)參為常量或表達(dá)式時(shí),數(shù)據(jù)傳遞總是單向的。的。 例如例如: Call S
26、ubTest(10, 1+2) Sub SubTest( n As Integer,Sum As Single)7.3.2 按值傳遞和按地址傳遞按值傳遞和按地址傳遞(2) 實(shí)參是變量時(shí)實(shí)參是變量時(shí),要實(shí)現(xiàn)按值傳遞需要在要實(shí)現(xiàn)按值傳遞需要在形參之形參之前前通過(guò)關(guān)鍵字通過(guò)關(guān)鍵字ByVal來(lái)實(shí)現(xiàn)。來(lái)實(shí)現(xiàn)。 例如例如: Sub SS(ByVal X, ByVal Y, ByVal Z) X = X + 1: Y = Y + 1: Z = Z + 1 End Sub Private Sub Command1_Click() A = 1: B = 2: C = 3 Call SS(A, B, C) Pri
27、nt A, B, C End Sub 運(yùn)行時(shí),單擊命令按鈕在窗體上打印運(yùn)行時(shí),單擊命令按鈕在窗體上打印: 1 2 32. 按地址傳遞按地址傳遞 指將實(shí)參的地址傳給形參,使形參和實(shí)參具有指將實(shí)參的地址傳給形參,使形參和實(shí)參具有相同的地址,即形參與實(shí)參共享同一存儲(chǔ)單元。相同的地址,即形參與實(shí)參共享同一存儲(chǔ)單元。(1) 當(dāng)實(shí)參為變量或數(shù)組時(shí),形參使用關(guān)鍵字當(dāng)實(shí)參為變量或數(shù)組時(shí),形參使用關(guān)鍵字 ByRef定義定義(或省略或省略)表示要按地址傳遞。表示要按地址傳遞。(2) 當(dāng)參數(shù)是數(shù)組時(shí),數(shù)組名之后必須使用一對(duì)空當(dāng)參數(shù)是數(shù)組時(shí),數(shù)組名之后必須使用一對(duì)空的圓括號(hào)。的圓括號(hào)。 按地址傳遞可以實(shí)現(xiàn)調(diào)用過(guò)程與子
28、過(guò)程之間數(shù)按地址傳遞可以實(shí)現(xiàn)調(diào)用過(guò)程與子過(guò)程之間數(shù)據(jù)的雙向傳遞。據(jù)的雙向傳遞。 例例: Sub SS(ByRef X, ByRef Y, ByRef Z) X = X + 1: Y = Y + 1: Z = Z + 1 End Sub Private Sub Command1_Click() A = 1: B = 2: C = 3 Call SS(A, B, C) Print A, B, C End Sub形參形參: X Y Z實(shí)參實(shí)參: A B C存儲(chǔ)單元存儲(chǔ)單元運(yùn)行時(shí),單擊命令按鈕在窗體上打印運(yùn)行時(shí),單擊命令按鈕在窗體上打印: 2 3 4【例【例7-14】編寫(xiě)一個(gè)計(jì)算乘冪的】編寫(xiě)一個(gè)計(jì)算乘
29、冪的Function過(guò)程,用過(guò)程,用來(lái)計(jì)算來(lái)計(jì)算x的的y次冪,其中次冪,其中y0。單擊窗體時(shí)調(diào)用該過(guò)單擊窗體時(shí)調(diào)用該過(guò)程打印程打印51、52、53、54、55的值。的值。 Function Power(x As Single, ByVal y As Integer) Dim result As Single result = 1 Do While y 0 result = result * x y = y - 1 Loop Power = result End FunctionPrivate Sub Form_Click() Dim i As Integer For i = 1 To 5 Pr
30、int Power(5, i) Next iEnd Sub思考思考: 如果取消過(guò)程如果取消過(guò)程Power中參數(shù)中參數(shù)y前的關(guān)鍵字前的關(guān)鍵字ByVal,則會(huì)出現(xiàn)什么情況?則會(huì)出現(xiàn)什么情況?【例例7-15】編寫(xiě)三個(gè)】編寫(xiě)三個(gè)Sub過(guò)程過(guò)程 LetArray過(guò)程過(guò)程: 產(chǎn)生產(chǎn)生0,99之間的隨機(jī)整數(shù),并之間的隨機(jī)整數(shù),并賦值給一維數(shù)組。賦值給一維數(shù)組。SortArray過(guò)程過(guò)程:實(shí)現(xiàn)數(shù)組從大到小排序。實(shí)現(xiàn)數(shù)組從大到小排序。PrintArray過(guò)程過(guò)程:實(shí)現(xiàn)數(shù)組的輸出。實(shí)現(xiàn)數(shù)組的輸出。 (1) LetArray過(guò)程過(guò)程 Sub LetArray(Value() As Integer) Dim I As
31、 Integer, N As Integer Randomize N = UBound(Value) For I = 1 To N Value(I) = Int(100 * Rnd) Next I End Sub(2) SortArray過(guò)程過(guò)程: 實(shí)現(xiàn)數(shù)組從大到小排序?qū)崿F(xiàn)數(shù)組從大到小排序Sub SortArray(Value() As Integer) Dim I As Integer, J As Integer, N As Integer, _ T As Integer N = UBound(Value) For I = 1 To N - 1 For J = I + 1 To N If V
32、alue(I) Value(J) Then T = Value(I) Value(I) = Value(J) Value(J) = T End If Next J Next IEnd Sub(3) SortArray過(guò)程過(guò)程: 實(shí)現(xiàn)數(shù)組的輸出實(shí)現(xiàn)數(shù)組的輸出 Sub PrintArray(Value() As Integer) Dim I As Integer, N As Integer N = UBound(Value) For I = 1 To N Print Value(I); If I Mod 4 = 0 Then Print 每行顯示每行顯示4個(gè)數(shù)個(gè)數(shù) Next i End Sub在時(shí)
33、間過(guò)程中調(diào)用以上在時(shí)間過(guò)程中調(diào)用以上SUB過(guò)程:過(guò)程:Private Sub Command1_Click() Dim Value(20) As Integer Call LetArray(Value() Print 排序前:排序前: Call PrintArray(Value() Call SortArray(Value() Print 排序后:排序后: Call PrintArray(Value()End Sub7.4 過(guò)程的嵌套調(diào)用過(guò)程的嵌套調(diào)用 在一個(gè)過(guò)程執(zhí)行期間又調(diào)用另一個(gè)過(guò)程,在一個(gè)過(guò)程執(zhí)行期間又調(diào)用另一個(gè)過(guò)程,稱(chēng)為過(guò)程的嵌套調(diào)用。稱(chēng)為過(guò)程的嵌套調(diào)用。調(diào)用過(guò)程調(diào)用過(guò)程 子過(guò)程子過(guò)程
34、S1 子過(guò)程子過(guò)程S2調(diào)用調(diào)用S1調(diào)用調(diào)用S2 【例7-16】求 : 201n!n即求即求1!+2!+3!+20!,用!,用Function過(guò)程實(shí)過(guò)程實(shí)現(xiàn)?,F(xiàn)。設(shè)計(jì)以下函數(shù):設(shè)計(jì)以下函數(shù):(1) 設(shè)計(jì)一個(gè)過(guò)程設(shè)計(jì)一個(gè)過(guò)程Fact求求n!(2) 設(shè)計(jì)另一個(gè)過(guò)程設(shè)計(jì)另一個(gè)過(guò)程Sigma求求n個(gè)數(shù)的和個(gè)數(shù)的和代碼如下:代碼如下:Private Sub Command1_Click() Dim n As Integer n = Val(InputBox(n=) Print Sigma(n) 調(diào)用調(diào)用Sigma過(guò)程過(guò)程End SubFunction Sigma(n As Integer) As Doub
35、le Dim i As Integer, sum As Double sum = 0 For i = 1 To n sum = sum + Fact(i) 調(diào)用調(diào)用Fact過(guò)程過(guò)程 Next i Sigma = sumEnd FunctionFunction Fact(n As Integer) As Double Dim I As Integer, F As Double F = 1 For I = 1 To N F = F * I Next I Fact = FEnd Function* *7.5 7.5 過(guò)程的遞歸調(diào)用過(guò)程的遞歸調(diào)用遞歸調(diào)用遞歸調(diào)用:在過(guò)程中直接或間接調(diào)用自身。在過(guò)程中直
36、接或間接調(diào)用自身。數(shù)學(xué)上常用于處理階乘運(yùn)算、級(jí)數(shù)運(yùn)算、數(shù)學(xué)上常用于處理階乘運(yùn)算、級(jí)數(shù)運(yùn)算、冪指數(shù)運(yùn)算等問(wèn)題。冪指數(shù)運(yùn)算等問(wèn)題。例:求例:求N!Function F(N) F1 = 1 For I = 1 To N F1 = F1 * I Next I F=F1End FunctionFunction F(N) If N = 1 Then F = 1 Else F = N * F(N - 1) End IfEnd Function【例【例7-17】: 求求N!Private Sub Command1_Click() Dim N As Integer N = Val(Text1.Text) Tex
37、t2.Text = F(N)End SubPublic Function F(N) If N = 1 Then F = 1 Else F = N * F(N - 1) End IfEnd FunctionF(6)6*F(5)6*5*F(4)6*5*4*F(3)6*5*4*3*F(2)6*5*4*3*2*F(1)17.6 VB工程結(jié)構(gòu)VB應(yīng)用程序由三種模塊組成應(yīng)用程序由三種模塊組成: 窗體模塊窗體模塊(Form) (文件擴(kuò)展名文件擴(kuò)展名.frm) 標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊(Module) (文件擴(kuò)展名文件擴(kuò)展名.bas) 類(lèi)模塊類(lèi)模塊(Class) (文件擴(kuò)展名文件擴(kuò)展名.cls)應(yīng)用程序應(yīng)用程序工程文
38、件工程文件(.vbp)窗體模塊窗體模塊(.frm)文件文件類(lèi)模塊類(lèi)模塊(.cls)文件文件標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊(.bas)文件文件事件過(guò)程事件過(guò)程Function過(guò)程過(guò)程Sub過(guò)程過(guò)程Property過(guò)程過(guò)程1. 窗體模塊包含:窗體模塊包含:事件過(guò)程事件過(guò)程通用過(guò)程通用過(guò)程通用聲明通用聲明(常量、變量、數(shù)組、外部過(guò)程)常量、變量、數(shù)組、外部過(guò)程)2. 可以用文本編輯器查看窗體模塊可以用文本編輯器查看窗體模塊 查看方法:查看方法: 右擊右擊.frm文件,選擇打開(kāi)方式為記事本文件,選擇打開(kāi)方式為記事本 顯示:顯示: 描述信息及程序代碼描述信息及程序代碼7.6.1 窗體模塊窗體模塊 當(dāng)一個(gè)應(yīng)用程序含有多
39、個(gè)窗體時(shí)當(dāng)一個(gè)應(yīng)用程序含有多個(gè)窗體時(shí),可能其中的幾可能其中的幾個(gè)窗體都需要調(diào)用某一段公共代碼個(gè)窗體都需要調(diào)用某一段公共代碼,如果在每個(gè)窗如果在每個(gè)窗體內(nèi)都包含這些代碼體內(nèi)都包含這些代碼,就會(huì)造成大量的代碼冗余就會(huì)造成大量的代碼冗余,這這時(shí)就可以在標(biāo)準(zhǔn)模塊內(nèi)建立一個(gè)包含此公共代碼時(shí)就可以在標(biāo)準(zhǔn)模塊內(nèi)建立一個(gè)包含此公共代碼的通用過(guò)程的通用過(guò)程,實(shí)現(xiàn)代碼的共享。實(shí)現(xiàn)代碼的共享。 標(biāo)準(zhǔn)模塊不對(duì)應(yīng)于某個(gè)窗體、是純代碼模塊。標(biāo)準(zhǔn)模塊不對(duì)應(yīng)于某個(gè)窗體、是純代碼模塊。 標(biāo)準(zhǔn)模塊可以包含標(biāo)準(zhǔn)模塊可以包含:全局常量、變量、全局過(guò)程全局常量、變量、全局過(guò)程標(biāo)準(zhǔn)模塊級(jí)常量、變量、通用過(guò)程標(biāo)準(zhǔn)模塊級(jí)常量、變量、通用過(guò)程
40、 注注: 不能包含事件過(guò)程不能包含事件過(guò)程 添加添加: 工程工程添加模塊添加模塊選選“新建新建”標(biāo)簽標(biāo)簽打打開(kāi)開(kāi)“添加模塊添加模塊”對(duì)話框。對(duì)話框。 默認(rèn)名字默認(rèn)名字:ModuleX7.6.2 標(biāo)準(zhǔn)模塊 類(lèi)是具有相同或相似特征的事物的集合,類(lèi)封類(lèi)是具有相同或相似特征的事物的集合,類(lèi)封裝了對(duì)象的屬性裝了對(duì)象的屬性(數(shù)據(jù)成員數(shù)據(jù)成員)和方法和方法(處理數(shù)據(jù)的函處理數(shù)據(jù)的函數(shù)或過(guò)程數(shù)或過(guò)程)。程序員一般不對(duì)類(lèi)進(jìn)行操作,而只能。程序員一般不對(duì)類(lèi)進(jìn)行操作,而只能對(duì)類(lèi)的實(shí)例對(duì)類(lèi)的實(shí)例對(duì)象進(jìn)行操作。對(duì)象進(jìn)行操作。 Visual Baisc所使用的每種控件都對(duì)應(yīng)著一個(gè)所使用的每種控件都對(duì)應(yīng)著一個(gè)類(lèi),如類(lèi),如B
41、utton按鈕控件對(duì)應(yīng)著按鈕控件對(duì)應(yīng)著B(niǎo)utton類(lèi),它們支類(lèi),它們支持封裝和多態(tài)性,但它們不支持繼承,即不能從持封裝和多態(tài)性,但它們不支持繼承,即不能從現(xiàn)有的類(lèi)(控件)來(lái)創(chuàng)建新的類(lèi)(控件)?,F(xiàn)有的類(lèi)(控件)來(lái)創(chuàng)建新的類(lèi)(控件)。 有時(shí)用戶(hù)需要?jiǎng)?chuàng)建自己的類(lèi)以實(shí)現(xiàn)特定的功能,有時(shí)用戶(hù)需要?jiǎng)?chuàng)建自己的類(lèi)以實(shí)現(xiàn)特定的功能,則可以通過(guò)類(lèi)模塊創(chuàng)建自己的類(lèi)。類(lèi)模塊文件的則可以通過(guò)類(lèi)模塊創(chuàng)建自己的類(lèi)。類(lèi)模塊文件的的擴(kuò)展名為的擴(kuò)展名為.cls。*7.6.3 類(lèi)模塊類(lèi)模塊 缺省情況下,應(yīng)用程序中的第一個(gè)窗體為啟動(dòng)窗體,缺省情況下,應(yīng)用程序中的第一個(gè)窗體為啟動(dòng)窗體,如果想在應(yīng)用程序啟動(dòng)時(shí)首先顯示其它窗體,那么就得在
42、如果想在應(yīng)用程序啟動(dòng)時(shí)首先顯示其它窗體,那么就得在“工程屬性工程屬性”對(duì)話框中改變啟動(dòng)窗體的名稱(chēng)。對(duì)話框中改變啟動(dòng)窗體的名稱(chēng)。 有時(shí),有些應(yīng)用程序啟動(dòng)時(shí)需要先做一些初始化工作,有時(shí),有些應(yīng)用程序啟動(dòng)時(shí)需要先做一些初始化工作,如裝入數(shù)據(jù)文件,然后再根據(jù)數(shù)據(jù)文件的內(nèi)容決定顯示哪如裝入數(shù)據(jù)文件,然后再根據(jù)數(shù)據(jù)文件的內(nèi)容決定顯示哪個(gè)窗體;有時(shí)應(yīng)用程序根本就不需要加載窗體(比如一些個(gè)窗體;有時(shí)應(yīng)用程序根本就不需要加載窗體(比如一些監(jiān)控程序)。為此,可以在標(biāo)準(zhǔn)模塊中編寫(xiě)一個(gè)監(jiān)控程序)。為此,可以在標(biāo)準(zhǔn)模塊中編寫(xiě)一個(gè)main過(guò)程過(guò)程,作為應(yīng)用程序的入口。作為應(yīng)用程序的入口。 定義定義sub main過(guò)程為啟
43、動(dòng)程序的步驟:過(guò)程為啟動(dòng)程序的步驟: “工程工程” “工程屬性工程屬性” 選擇選擇“通用通用”選項(xiàng)卡選項(xiàng)卡在在“啟動(dòng)對(duì)象啟動(dòng)對(duì)象”下拉列表框中選擇下拉列表框中選擇“Sub Main”。7.6.4 Sub Main過(guò)程 過(guò)程的建立位置不同,允許被訪問(wèn)的范圍也不同。過(guò)程的建立位置不同,允許被訪問(wèn)的范圍也不同。 作用域作用域: 模塊級(jí)、全局級(jí)模塊級(jí)、全局級(jí) 1. 模塊級(jí)過(guò)程模塊級(jí)過(guò)程: 在過(guò)程前如果加在過(guò)程前如果加Private關(guān)鍵字,則關(guān)鍵字,則這種過(guò)程只能被其所在的模塊中的其他過(guò)程所這種過(guò)程只能被其所在的模塊中的其他過(guò)程所調(diào)用。調(diào)用。2. 全局過(guò)程全局過(guò)程: 在過(guò)程前如果加在過(guò)程前如果加Publ
44、ic關(guān)鍵字關(guān)鍵字(或省略或省略),則這種過(guò)程可以被其他模塊中的過(guò)程所調(diào)用。則這種過(guò)程可以被其他模塊中的過(guò)程所調(diào)用。 調(diào)用格式調(diào)用格式: 模塊名模塊名.過(guò)程名過(guò)程名(參數(shù)表參數(shù)表) 注意:標(biāo)準(zhǔn)模塊中的全局過(guò)程名如果唯一,則調(diào)注意:標(biāo)準(zhǔn)模塊中的全局過(guò)程名如果唯一,則調(diào)用時(shí)可以省略模塊名用時(shí)可以省略模塊名7.6.5 過(guò)程的作用域例例:設(shè)窗體設(shè)窗體Form1中有按鈕中有按鈕: Command1、 Command2 Public Sub aa() aa為全局過(guò)程為全局過(guò)程 MsgBox (這是窗體這是窗體Form1中的過(guò)程中的過(guò)程) End Sub Private Sub Command1_Click(
45、) Call aa End Sub Private Sub Command2_Click() Form2.Show End Sub可以省略可以省略添加標(biāo)準(zhǔn)模塊添加標(biāo)準(zhǔn)模塊Module1 ,編寫(xiě)以下過(guò)程,編寫(xiě)以下過(guò)程: Public Sub bb() bb為全局過(guò)程為全局過(guò)程 MsgBox (這是標(biāo)準(zhǔn)模塊中的過(guò)程這是標(biāo)準(zhǔn)模塊中的過(guò)程bb) End Sub可以省略可以省略設(shè)窗體設(shè)窗體Form2中有按鈕中有按鈕: Command1 、 Command2 Private Sub Command1_Click() Call Form1.aa End Sub Private Sub Command2_Cl
46、ick() Call Module1.bb End Sub不可以省略不可以省略可以省略可以省略7.7 變量的作用域與生存期 變量的作用域變量的作用域: 指變量的指變量的有效范圍有效范圍。 變量的生存期變量的生存期: 指變量的指變量的作用時(shí)間作用時(shí)間。7.7.1 變量的作用域變量的作用域 將變量分為將變量分為: 局部變量局部變量 模塊級(jí)變量模塊級(jí)變量 全局變量全局變量模塊級(jí)變量模塊級(jí)變量全局變量全局變量局局部部變變量量模塊模塊過(guò)程過(guò)程1. 局部變量局部變量 聲明聲明 不聲明不聲明 Dim A As Integer A每次執(zhí)行過(guò)程時(shí)被初始化每次執(zhí)行過(guò)程時(shí)被初始化 Static C As Singl
47、e C在應(yīng)用程序執(zhí)行期間保持在應(yīng)用程序執(zhí)行期間保持不變不變 作用范圍作用范圍 僅在聲明的過(guò)程中起作用僅在聲明的過(guò)程中起作用 其他過(guò)程中即使有同名變量,也不是指同一變其他過(guò)程中即使有同名變量,也不是指同一變量量。例例: Sub S() X = 1 Y = 2 Z = X + Y Print X, Y, Z End Sub Private Sub C1_Click() X = 2 Y = 3 Z = X + Y Call S Print X, Y, Z End Sub單擊單擊C1后運(yùn)行結(jié)果后運(yùn)行結(jié)果: 1 2 3 2 3 5局部變量局部變量局部變量局部變量2. 模塊級(jí)變量模塊級(jí)變量 聲明聲明 在模
48、塊的通用聲明段中用以下方法聲明的變量。在模塊的通用聲明段中用以下方法聲明的變量。 Private 在模塊運(yùn)行時(shí)被初始化在模塊運(yùn)行時(shí)被初始化 Dim 在模塊運(yùn)行時(shí)被初始化在模塊運(yùn)行時(shí)被初始化 作用范圍作用范圍 在該模塊的所有過(guò)程中都起作用在該模塊的所有過(guò)程中都起作用 其他模塊不能訪問(wèn)這些變量其他模塊不能訪問(wèn)這些變量3. 全局變量全局變量 聲明聲明 在模塊的通用聲明段中用以下方法聲明的變量在模塊的通用聲明段中用以下方法聲明的變量 Public 應(yīng)用程序運(yùn)行時(shí)被初始化應(yīng)用程序運(yùn)行時(shí)被初始化 作用范圍作用范圍: 應(yīng)用程序的所有過(guò)程應(yīng)用程序的所有過(guò)程例例: Dim Z As IntegerSub S()
49、 Z = Z + 2 Print ZEnd SubPrivate Sub C1_Click() Z = Z + 2 Call S Print ZEnd Sub第一次單擊第一次單擊C1結(jié)果結(jié)果: 4 4第二次單擊第二次單擊C1結(jié)果結(jié)果: 8 8第三次單擊第三次單擊C1結(jié)果結(jié)果: 1212模塊級(jí)變量模塊級(jí)變量模塊級(jí)變量模塊級(jí)變量例例: Dim Z As IntegerSub S() Dim Z Z = Z + 2 Print ZEnd SubPrivate Sub C1_Click() Z = Z + 2 Call S Print ZEnd Sub第一次單擊第一次單擊C1結(jié)果結(jié)果: 2 2第二次單
50、擊第二次單擊C1結(jié)果結(jié)果: 2 4第三次單擊第三次單擊C1結(jié)果結(jié)果: 26模塊級(jí)變量模塊級(jí)變量局部變量局部變量7.7.2 變量的生存期變量的生存期 靜態(tài)變量靜態(tài)變量: 在應(yīng)用程序執(zhí)行期間保留不變?cè)趹?yīng)用程序執(zhí)行期間保留不變 動(dòng)態(tài)變量動(dòng)態(tài)變量: 在所在的模塊在所在的模塊(過(guò)程過(guò)程)運(yùn)行時(shí)被初始化運(yùn)行時(shí)被初始化 單擊按鈕打印結(jié)果單擊按鈕打印結(jié)果: 55 110 Static Sub SS1() 局部變量局部變量I,S為靜態(tài)變量為靜態(tài)變量 For I = 1 To 10 S = S + I Next I Print S End Sub Private Sub Command1_Click() Call
51、 SS1 Call SS1 End Sub例例: Sub S() Static Z As Integer Z = Z + 2 Print ZEnd SubPrivate Sub C1_Click() Dim Z As Integer Z = Z + 2 Call S Print ZEnd Sub第一次單擊第一次單擊C1結(jié)果結(jié)果: 2 2第二次單擊第二次單擊C1結(jié)果結(jié)果: 4 2第三次單擊第三次單擊C1結(jié)果結(jié)果: 6 2靜態(tài)變量靜態(tài)變量動(dòng)態(tài)變量動(dòng)態(tài)變量本章小結(jié)本章小結(jié) 1. 函數(shù)過(guò)程的定義和調(diào)用函數(shù)過(guò)程的定義和調(diào)用 定義定義: Public | Private Static Function (
52、) ) As 函數(shù)名函數(shù)名 =表達(dá)式表達(dá)式 End Function 形參表形參表:變量、數(shù)組名變量、數(shù)組名() 調(diào)調(diào) 用用: 函數(shù)名函數(shù)名( ) 出現(xiàn)在表達(dá)式可以出現(xiàn)的位置出現(xiàn)在表達(dá)式可以出現(xiàn)的位置2. Sub過(guò)程的定義和調(diào)用過(guò)程的定義和調(diào)用定義定義: Private | Public Static Sub () End Sub調(diào)用調(diào)用: (1)Call ()(2) 注意注意: Sub過(guò)程調(diào)用與函數(shù)過(guò)程定義與調(diào)用的區(qū)別過(guò)程調(diào)用與函數(shù)過(guò)程定義與調(diào)用的區(qū)別3. 過(guò)程之間的參數(shù)傳遞過(guò)程之間的參數(shù)傳遞 按值傳遞按值傳遞: 實(shí)參為常數(shù)、表達(dá)式;實(shí)參為常數(shù)、表達(dá)式; 實(shí)參為變量,形參為實(shí)參為變量,形參為
53、 ByVal 變量變量 按地址傳遞按地址傳遞: 實(shí)參為變量、數(shù)組;形參用實(shí)參為變量、數(shù)組;形參用 ByRef 定義的變量、數(shù)組(或省略定義的變量、數(shù)組(或省略ByRef)4. 過(guò)程的嵌套調(diào)用過(guò)程的嵌套調(diào)用*5. 過(guò)程的遞歸調(diào)用過(guò)程的遞歸調(diào)用6. VB工程結(jié)構(gòu)工程結(jié)構(gòu) 窗體模塊窗體模塊(Form) (文件擴(kuò)展名文件擴(kuò)展名.frm) 標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊(Module) (文件擴(kuò)展名文件擴(kuò)展名.bas) Sub Main過(guò)程過(guò)程 類(lèi)模塊類(lèi)模塊(Class) (文件擴(kuò)展名文件擴(kuò)展名.cls)7. 過(guò)程的作用域過(guò)程的作用域 模塊級(jí)過(guò)程;模塊級(jí)過(guò)程; 全局級(jí)過(guò)程全局級(jí)過(guò)程8. 變量的作用域變量的作用域 局部變量(過(guò)程級(jí));局部變量(過(guò)程級(jí)); 模塊級(jí)變量;全局變量模塊級(jí)變量;全局變量9. 變量的生存期變量的生存期 動(dòng)態(tài)變量;動(dòng)態(tài)變量; 靜態(tài)變量靜態(tài)變量
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 檢驗(yàn)員實(shí)用手冊(cè)課件
- 繼電接觸器連續(xù)正轉(zhuǎn)控制電路課件
- 道德與法治走向世界大舞臺(tái)課件(部編版)2
- 數(shù)學(xué)人教七年級(jí)下冊(cè)課件一元一次不等式課時(shí)1教學(xué)課件模板
- 徽派建筑專(zhuān)題課件
- 微商平臺(tái)及品牌建設(shè)方案
- 統(tǒng)編版新教材《短歌行》課件3
- 蛋白質(zhì)的生物合成 醫(yī)學(xué)知識(shí)
- 染色體變異校優(yōu)質(zhì)課推選演示文稿課件
- 幸福鄉(xiāng)村平臺(tái)建設(shè)方案基層建精準(zhǔn)扶貧服務(wù)平臺(tái)方案
- 輸煤區(qū)域火災(zāi)事故應(yīng)急演練方案培訓(xùn)資料
- 某地產(chǎn)滟瀾山銷(xiāo)售團(tuán)隊(duì)體會(huì)交流課件
- 統(tǒng)編教材部編人教版六年級(jí)道德與法治下冊(cè)當(dāng)災(zāi)害降臨的時(shí)候課件
- 神障礙護(hù)理學(xué)應(yīng)激相關(guān)障礙患者的護(hù)理
- 定點(diǎn)巡檢機(jī)器人三維實(shí)景智能平臺(tái)