計(jì)算機(jī)技術(shù)基礎(chǔ)(VB)學(xué)習(xí)內(nèi)容
第一節(jié) Function過(guò)程 一,、Function過(guò)程的定義 1.Function過(guò)程的格式 [Public|Private][Static]Function<函數(shù)過(guò)程名> 2.說(shuō)明 (1)Public:缺省值。使用Public時(shí)表示所有模塊的所有其他過(guò)程都可以調(diào)用該Function過(guò)程。 (2)Private:使用Private時(shí)表示只有本模塊中的其他過(guò)程才可以調(diào)用該Function過(guò)程,。 (3)Static:使用Static時(shí)表示將過(guò)程中的所有局部變量說(shuō)明為靜態(tài)變量,。 (4)<函數(shù)過(guò)程名>:Function過(guò)程的名稱,遵循變量的命名規(guī)則,。 (5)<形參表>:表示在調(diào)用時(shí)要傳遞給Function過(guò)程的參數(shù)變量列表,。多個(gè)變量之間用逗號(hào)隔開(kāi)。 <形參表> <形參表>格式: [ByVal|ByRef]<變量名>[(?。[As<類型>] ByVal:表示該參數(shù)按值傳遞,。 ByRef:缺省值。表示該參數(shù)按地址傳遞,。 <變量名> <變量名>:遵循變量命名規(guī)則的任何變量名或數(shù)組名,。 ( ):當(dāng)參數(shù)為數(shù)組時(shí)使用,。 (6)As<類型>:聲明函數(shù)值的類型,。 (7)Exit Function語(yǔ)句:從Function過(guò)程中退出。 (8)Function過(guò)程通過(guò)賦值語(yǔ)句: <函數(shù)過(guò)程名> <函數(shù)過(guò)程名>=<表達(dá)式> 將函數(shù)的返回值賦給<函數(shù)過(guò)程名>,。 (9)Function過(guò)程的定義不能嵌套,。 Function過(guò)程的建立: 直接在代碼窗口中輸入。 在代碼窗口:工具→添加過(guò)程,。 【例9-1】編寫一個(gè)計(jì)算n,!的Function過(guò)程。 Function Fact(N As Integer) As Long 【例9-2】編寫一個(gè)Function過(guò)程,,計(jì)算下面表達(dá)式的值,。
Function F(X,Y,Z) F=Sqr(Abs(X^3+Y^3+Z^3)) End Function 二,、Function過(guò)程的調(diào)用 直接在表達(dá)式中調(diào)用。 格式:<函數(shù)過(guò)程名>([<實(shí)參表>]) <實(shí)參表> <實(shí)參表>:常量,、變量或表達(dá)式,,各參數(shù)之間用逗號(hào)分隔。如果是數(shù)組,,在數(shù)組名之后必須跟一對(duì)空括號(hào),。 【例9-3】利用Function過(guò)程計(jì)算階乘,求組合數(shù),。設(shè)計(jì)界面如下圖,。
'定義求階乘的函數(shù)Fact 【例9-4】編寫Function過(guò)程求最大公約數(shù),并通過(guò)命令按鈕的單擊事件過(guò)程調(diào)用該函數(shù)過(guò)程,。
Function hcf(m As Integer,n As Integer)As Integer 【例9-5】編寫一個(gè)Function過(guò)程,,返回指定個(gè)數(shù)的字符串,字符串以A開(kāi)始,,例如,,當(dāng)指定個(gè)數(shù)5時(shí),函數(shù)返回字符串"ABCDE",。運(yùn)行時(shí)單擊按鈕調(diào)用該函數(shù)過(guò)程,,實(shí)現(xiàn)在窗體上按指定的行數(shù)輸出如下圖所示的圖形。
'CreateStr函數(shù)返回N個(gè)字符 第二節(jié) Sub過(guò)程 一,、Sub過(guò)程的定義 1.Sub過(guò)程的格式 [Private|Public][Static]Sub<過(guò)程名>[(<形參表>)] 2.說(shuō)明 (1)Exit Sub用于退出Sub過(guò)程。 (2)<過(guò)程名> <過(guò)程名>不具有值的意義,,在Sub過(guò)程中不能給<過(guò)程名>賦值,,也不能給<過(guò)程名>定義類型。 (3)Sub過(guò)程通過(guò)<形參表>中的參數(shù)返回值,。 (4)Sub過(guò)程的建立方法與Function過(guò)程的建立方法相同。 【例9-6】編寫計(jì)算n!的Sub過(guò)程,。 分析:參數(shù)表中應(yīng)有一個(gè)參數(shù)n,,還應(yīng)有另一個(gè)參數(shù)F用來(lái)返回階乘值。 【例9-7】編寫Sub過(guò)程,,打印以下圖形,。 分析:打印以上圖形,不需要返回值,,因此無(wú)需引入?yún)?shù),。 Sub a()
【例9-8】編寫Sub過(guò)程,,求三個(gè)數(shù)中的最大數(shù)和最小數(shù),。 分析:首先要設(shè)置三個(gè)參數(shù),如x,、y,、z,用于接收三個(gè)原始數(shù)據(jù),,另外引入兩個(gè)參數(shù)max和min,,用于返回最大和最小數(shù)。 Sub s(x,y,z,max,min) 二,、Sub過(guò)程的調(diào)用 格式一:Call<過(guò)程名>[(<實(shí)參表>)] 格式二:<過(guò)程名>[<實(shí)參表>] 說(shuō)明: (1)<過(guò)程名>:要調(diào)用的Sub過(guò)程名,; (2)<實(shí)參表>:可以是常量、變量或表達(dá)式,,各參數(shù)之間用逗號(hào)分隔,。如果是數(shù)組參數(shù),則要在數(shù)組名之后跟一對(duì)空括號(hào),。 (3)用Call語(yǔ)句調(diào)用一個(gè)Sub過(guò)程時(shí),,如果過(guò)程本身沒(méi)有參數(shù),則省略<實(shí)參表>和括號(hào),。 (4)格式二省略了Call關(guān)鍵字,,同時(shí)<實(shí)參表>兩邊也不能帶括號(hào)。 【例9-9】將求組合數(shù)一題改成用Sub過(guò)程實(shí)現(xiàn) Sub Fact(N As Integer,F As Long) 【例9-10】編寫一個(gè)Sub過(guò)程,,計(jì)算K個(gè)數(shù)的和,,即1+2+…+K,并通過(guò)命令按鈕的單擊事件調(diào)用該過(guò)程計(jì)算S=1+(1+2)+(1+2+3)+…+(1+2+…+N),。 分析:編寫一個(gè)Sub過(guò)程計(jì)算1+2+…+K,, 設(shè)參數(shù)K、S,,參數(shù)S用于返回該和值,。 Sub A1(K As Integer,S As Integer) 第三節(jié) 過(guò)程的嵌套 在一個(gè)過(guò)程執(zhí)行期間又調(diào)用另一個(gè)過(guò)程,,稱為過(guò)程的嵌套調(diào)用,。
第四節(jié) 參數(shù)的傳遞 調(diào)用過(guò)程與被調(diào)用過(guò)程之間的一種數(shù)據(jù)通訊方法。 數(shù)據(jù)的傳遞可以是單向的,,也可以是雙向的,。 一、形參和實(shí)參 形參:出現(xiàn)在Sub或Function語(yǔ)句中,。 實(shí)參:出現(xiàn)在調(diào)用程序中,。 例如,,定義如下一個(gè)過(guò)程: Sub SubTest(n As Integer,Sum As Single) … End Sub 調(diào)用語(yǔ)句:
說(shuō)明: 在傳遞參數(shù)時(shí),形參表與實(shí)參表中對(duì)應(yīng)參數(shù)個(gè)數(shù),、類型,、位置順序必須一一對(duì)應(yīng)。 形參表中的參數(shù)可以是: 除固定長(zhǎng)度字符串之外的合法變量名,、數(shù)組名() 實(shí)參表中的參數(shù)可以是:常量,、變量、表達(dá)式,、數(shù)組名() 形參與實(shí)參的結(jié)合有兩種方式: 按值傳遞和按地址傳遞,。 二、按值傳遞和按地址傳遞 1.按值傳遞 實(shí)參把其值傳遞給形參而不傳遞實(shí)參的地址,。 數(shù)據(jù)的傳遞是單向的,。 (1)當(dāng)實(shí)參為常量或表達(dá)式時(shí),數(shù)據(jù)傳遞總是單向的,。 例如:Call SubTest(10,1+2) (2)實(shí)參是變量時(shí),,要實(shí)現(xiàn)按值傳遞需要在形參之前通過(guò)關(guān)鍵字ByVal來(lái)實(shí)現(xiàn)。 例如:Sub SS(ByVal X,ByVal Y,ByVal Z) 運(yùn)行時(shí),,單擊命令按鈕在窗體上打?。?/p> 1 2 3 2.按地址傳遞 指將實(shí)參的地址傳給形參,使形參和實(shí)參具有相同的地址,,即形參與實(shí)參共享同一存儲(chǔ)單元,。 (1)當(dāng)實(shí)參為變量或數(shù)組時(shí),形參使用關(guān)鍵字ByRef定義(或省略)表示要按地址傳遞,。 (2)當(dāng)參數(shù)是數(shù)組時(shí),,數(shù)組名之后必須使用一對(duì)空的圓括號(hào)。 按地址傳遞可以實(shí)現(xiàn)調(diào)用過(guò)程與子過(guò)程之間數(shù)據(jù)的雙向傳遞,。 例:Sub SS(ByRef X,ByRef Y,ByRef Z)
運(yùn)行時(shí),,單擊命令按鈕在窗體上打印: 2 3 4 【例9-11】編寫一個(gè)計(jì)算乘冪的Function過(guò)程,,用來(lái)計(jì)算x的y次冪,,其中y>0。單擊窗體時(shí)調(diào)用該過(guò)程打印51,、52,、53、54,、55的值。 Function Power(x As Single,ByVal y As Integer) 思考:如果取消過(guò)程Power中參數(shù)y前的關(guān)鍵字ByVal,,則會(huì)出現(xiàn)什么情況,? 第五節(jié) 代碼模塊 VB應(yīng)用程序由三種模塊組成: 窗體模塊(Form)(文件擴(kuò)展名.frm) 標(biāo)準(zhǔn)模塊(Module)(文件擴(kuò)展名.bas) 類模塊(Class)(文件擴(kuò)展名.cls)
一,、窗體模塊 包含: 事件過(guò)程 通用過(guò)程 通用聲明 二、標(biāo)準(zhǔn)模塊 不對(duì)應(yīng)于某個(gè)窗體,、完全是純代碼,。 包含: 全局常量、變量,、全局過(guò)程 標(biāo)準(zhǔn)模塊級(jí)常量,、變量、通用過(guò)程 注:不能包含事件過(guò)程 添加:工程→添加模塊→選“新建”標(biāo)簽→打開(kāi)“添加模塊”對(duì)話框 三,、類模塊 在類模塊中編寫代碼建立新對(duì)象,。 四、過(guò)程的作用域 過(guò)程的建立位置不同,,允許被訪問(wèn)的范圍也不同,。 作用域:模塊級(jí)、全局級(jí) 1.模塊級(jí)過(guò)程:在過(guò)程前如果加Private關(guān)鍵字,,則這種過(guò)程只能被其所在的模塊中的其他過(guò)程所調(diào)用,。 2.全局過(guò)程:在過(guò)程前如果加Public關(guān)鍵字(或省略),則這種過(guò)程可以被其他模塊中的過(guò)程所調(diào)用,。 3.過(guò)程的作用域:見(jiàn)P156 例:設(shè)窗體Form1中有按鈕:Command1,、Command2
設(shè)窗體Form2中有按鈕:Command1、Command2 Private Sub Command1_Click()
第六節(jié) 變量的作用域與生存期 變量的作用域:指變量的有效范圍,。 變量的生存期:指變量的作用時(shí)間,。 一、變量的作用域 將變量分為:局部變量 模塊級(jí)變量 全局變量
1.局部變量 聲明 不聲明 Dim A As Integer 'A每次執(zhí)行過(guò)程時(shí)被初始化 Static C As Single 'C在應(yīng)用程序執(zhí)行期間保持不變 作用范圍 僅在聲明的過(guò)程中起作用 其他過(guò)程中即使有同名變量,,也不是指同一變量,。 例:
2.模塊級(jí)變量 聲明 在模塊的通用聲明段中用以下方法聲明的變量。 Private '在模塊運(yùn)行時(shí)被初始化 Dim '在模塊運(yùn)行時(shí)被初始化 作用范圍 在該模塊的所有過(guò)程中都起作用 其他模塊不能訪問(wèn)這些變量 3.全局變量 聲明 在模塊的通用聲明段中用以下方法聲明的變量 Public '應(yīng)用程序運(yùn)行時(shí)被初始化 作用范圍:應(yīng)用程序的所有過(guò)程
二,、變量的生存期 靜態(tài)變量:在應(yīng)用程序執(zhí)行期間保留不變 動(dòng)態(tài)變量:在所在的模塊(過(guò)程)運(yùn)行時(shí)被初始化 Static Sub SS1() '局部變量I,S為靜態(tài)變量
例:
本章小結(jié) 1.函數(shù)過(guò)程的定義和調(diào)用 定義: [Public|Private][Static]Function <函數(shù)名>[(<形參表>)][As<類型>] 形參表:變量,、數(shù)組名() 調(diào)用:函數(shù)名(<實(shí)參表>) 出現(xiàn)在表達(dá)式可以出現(xiàn)的位置 2.Sub過(guò)程的定義和調(diào)用 定義: [Private|Public][Static]Sub<過(guò)程名>([<形參表>]) 調(diào)用: (1)Call<過(guò)程名>([<實(shí)參表>]) (2)<過(guò)程名> <過(guò)程名>[<實(shí)參表>] 注意:Sub過(guò)程調(diào)用與函數(shù)過(guò)程定義與調(diào)用的區(qū)別 3.過(guò)程之間的參數(shù)傳遞 按值傳送:實(shí)際參數(shù)為常數(shù)、表達(dá)式,、ByVal 變量 按地址傳送:實(shí)際參數(shù)變量,、ByRef 變量、數(shù)組名() 4.過(guò)程的作用域 模塊級(jí)過(guò)程,;全局級(jí)過(guò)程 5.變量的作用域 局部變量,;模塊級(jí)變量;全局變量 6.變量的生 |
|
來(lái)自: 図糴帑簤屸璺 > 《計(jì)算機(jī)會(huì)計(jì)》