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