中国高校课件下载中心 》 教学资源 》 大学文库

《Visual Basic程序设计基础》课程教学资源:第六章 过程

文档信息
资源类别:文库
文档格式:PPT
文档页数:32
文件大小:215KB
团购合买:点击进入团购
内容简介
第六章过程 6.1Sub过程 6.2 Function过程 6.3参数传递 6.4可选参数和可变参数 6.5对象参数 6.6作用域和生存期 6.7常用算法举例
刷新页面文档预览

第六章过程 61Sub过程 62 Function过程 63参数传递 64可选参数和可变参数 65对象参数 6.6作用域和生存期 67常用算法举例

第六章 过程 6.1 Sub过程 6.2 Function过程 6.3 参数传递 6.4 可选参数和可变参数 6.5 对象参数 6.6 作用域和生存期 6.7 常用算法举例

VB已提供的过程:内部函数过程、事件过程; 用户可自编过程:Sub子过程、 Function函数过程。 61Sub过程 由用户编写的、能完成一系列操作动作并实现一定功能的独立 程序模块称作自定义Sub过程(子过程)。rom-x 611Sub过程的建立 AAAAA AAAAAAAAA AAAAAAA点点AAAA 引例 AAAAAAA点 AAAAAAAAA vyyvyyyny vnyyyyy 例6-1编程实现如下功能: my Pvv 单击窗体时打印如图6-1所示的图案 点点AAA AAAAAAAAA 子图案1:由5行字母“A”组成正立三角形; 点点点点 AAAAAAA点点 点AAA点 AAAAAAAAAAA 子图案2:由5行字母“V”组成倒立三角形 mmmr yonne myyrhyyy Drawl:打印子图案1 Draw2O:打印子图案2。 AAAAa AAAAAAAAA 也可以将DaW10和DaW20整合成一个带参数的 AAAAAAAAAAAAA AAAAAAAAAAAAAAAAA DraW12(),i=奇数:完成DraW10功能, vvnnnnyvry yrnnnny vny my i=偶数:完成Draw2()功能(见例6-1a)。 图6-1使用Sub过程

VB已提供的过程:内部函数过程、事件过程; 用户可自编过程:Sub子过程、Function函数过程。 6.1 Sub过程 由用户编写的、能完成一系列操作动作并实现一定功能的独立 程序模块称作自定义Sub过程(子过程)。 6.1.1 Sub过程的建立 1. 引例 例6-1 编程实现如下功能: 单击窗体时打印如图6-1所示的图案。 子图案1:由5行字母“A”组成正立三角形; 子图案2:由5行字母“V”组成倒立三角形。 Draw1():打印子图案1 ; Draw2():打印子图案2。 也可以将Draw1()和Draw2()整合成一个带参数的 Draw12(i),i=奇数:完成Draw1()功能, i=偶数:完成Draw2( )功能(见例6-1a)。 图6-1使用Sub过程

2.SUB过程的一般形式 StaticI[ Private] Sub子过程名(参数列表) 局部变量或常数的定义 语句块1 过程首部 /Exit Sub/ 过程体 语句块2 End sub 理解各部分的含义。 612Sub过程的调用 调用Sub过程的一般形式有二: (1)Call子过程名(参数列表 (2)子过程名[参数列表 说明: (1)有Ca11关键字,则提供的参数也有小括号 (2)无Ca11关键字,则提供的参数也无小括号 (3)如果没有参数,则都不加小括号

2. SUB过程的一般形式 [Static][Public|Private] Sub 子过程名( [参数列表] ) 局部变量或常数的定义 语句块1 [Exit Sub] 语句块2 End Sub 理解各部分的含义。 6.1.2 Sub过程的调用 调用Sub过程的一般形式有二: (1) Call 子过程名([参数列表]) (2) 子过程名 [参数列表] 说明: (1) 有Call关键字,则提供的参数也有小括号; (2) 无Call关键字,则提供的参数也无小括号。 (3) 如果没有参数,则都不加小括号。 过程首部 过程体

62 Function过程 例6-2求s=1!+2!+3!+4!+5!+6!的值,并打印结果。 【分析】可以编写一个函数过程专门计算阶乘;这个求阶乘的函数 过程在此我们取名为Faco 定义函数过程 调用函数过程: Private Function Fac(n%)As Long Private Sub Form ClickO Dim i%. Result# Dim m%. Sum # Result= 1 S uI= For i=1 o n For m=1 To 5 Result result s i Sum= Sum Fac(m) Next i Next m Fac Result Print"1!+2!+.+5!=";Sum End function End sub

6.2 Function过程 例6-2 求s=1!+2!+3!+4!+5!+6!的值,并打印结果。 【分析】可以编写一个函数过程专门计算阶乘;这个求阶乘的函数 过程在此我们取名为Fac。 定义函数过程 Private Function Fac(n%) As Long Dim i%, Result# Result = 1 For i = 1 To n Result = Result * i Next i Fac = Result End Function 调用函数过程: Private Sub Form_Click() Dim m%, Sum # Sum = 0 For m= 1 To 5 Sum = Sum + Fac(m) Next m Print"1!+2!+…+5!="; Sum End Sub

621 Function过程的定义 函数过程的一般格式如下: Static[Public Private] function函数名(参数列表)As类型|气 局部变量或常数的定义 语句块1 函数首部 /Exit Function 函数体 语句块2 函数名=返回值 End function 函数名命名规则同变量名 函数首部末尾的|AS类型是指函数名的类型,也就是返回值的类型 函数名=返回值:必须在函数体内至少对函数名赋值一次 Exit Function]:表示退出函数过程

6.2.1 Function过程的定义 函数过程的一般格式如下: [Static][Public|Private] Function 函数名( [参数列表]) [AS 类型] 局部变量或常数的定义 语句块1 [Exit Function ] 语句块2 函数名=返回值 End Function 函数名命名规则同变量名。 函数首部末尾的[AS 类型] 是指函数名的类型,也就是返回值的类型 函数名 = 返回值:必须在函数体内至少对函数名赋值一次。 [Exit Function] :表示退出函数过程。 函数首部 函数体

622 Function过程的调用 调用 Function过程的一般形式: 变量=函数名([参数列表]) 说明: (1)这里提供的[参数列表]是一些值已知的参数;称实参。 (2)函数过程的调用也可以出现在输出列表中,或作为一个表 达式的参数参与计算。如: Print Fac(5) Y= Sqr(2* Fac(6)-1) (3)如果有时对函数的值不需要,也可以写成一个独立的调用 语句,如: CaI函数名(参数列表] 有Ca11,函数名后面必须也有括号 函数名[参数列表 函数名(参数列表]) 无Ca,函数名后面的括号可有可无

6.2.2 Function过程的调用 调用Function过程的一般形式: 变量=函数名([参数列表]) 说明: (1)这里提供的[参数列表]是一些值已知的参数;称实参。 (2)函数过程的调用也可以出现在输出列表中,或作为一个表 达式的参数参与计算。如: Print Fac(5) Y= Sqr(2 * Fac (6) - 1) (3)如果有时对函数的值不需要,也可以写成一个独立的调用 语句,如: Call 函数名([参数列表]) 有Call,函数名后面必须也有括号。 函数名 [参数列表] 函数名([参数列表]) 无Call,函数名后面的括号可有可无

623通用过程和事件过程 VB中的过程可以分为通用过程和事件过程两类。 通用过程:就是可以被一切其他过程调用的过程,包括上面 所介绍的Sub过程和 Function过程;它们在被调用时才执行。 事件过程:是VB内部已经预定义好的一些过程,但过程的代 码需要用户填写;它们是在发生一定事件的时候被执行。 通用过程可以写在一个窗体模块的代码中,也可以写在标 准模块或类模块的代码中。而事件过程只能写在窗体模块中。 例:改写6-1,增加模块

6.2.3 通用过程和事件过程 VB中的过程可以分为通用过程和事件过程两类。 通用过程:就是可以被一切其他过程调用的过程,包括上面 所介绍的Sub过程和Function过程;它们在被调用时才执行。 事件过程:是VB内部已经预定义好的一些过程,但过程的代 码需要用户填写;它们是在发生一定事件的时候被执行。 通用过程可以写在一个窗体模块的代码中,也可以写在标 准模块或类模块的代码中。而事件过程只能写在窗体模块中。 例:改写6-1,增加模块

63参数传递 631形参和实参 形参:在过程定义模块首行过程名括号中设置的参数叫做形式 参数,简称形参。局部变量,也叫做虚参。内存单元临时分配 被调过程执行完后,形参变量的内存单元被释放”。 实参:主调过程中调用过程时所给出的具体参数,这些参数是 有确定值的(所以说是“实”的),它们可以是直接常量或有 值的变量表达式。 形参n Private Function Fac(n As Integer)As Long Fac= Result 实参5 End function 调用语句:Y=Fac(5) 实参 形参 传值/传地址

6.3 参数传递 6.3.1 形参和实参 形参:在过程定义模块首行过程名括号中设置的参数叫做形式 参数,简称形参。局部变量,也叫做虚参。内存单元临时分配。 被调过程执行完后,形参变量的内存单元被“释放” 。 实参:主调过程中调用过程时所给出的具体参数,这些参数是 有确定值的(所以说是“实”的),它们可以是直接常量或有 值的变量表达式。 实参5 Private Function Fac(n As Integer) As Long …………… Fac = Result End Function 形参n 调用语句:Y=Fac(5) 实参 形参 传值/传地址

参数列表形式By变量名/A类型 6.3.2引用(传地址) 过程定义中无“Byva”关键字;形参得到的是实参的地址, 当形参的值发生改变时,实参的值也相应发生改变。双向影响。 6.3.3传值 过程定义中有“Byva”关键字;形参得到的是实参的值, 形参和实参各有不同存储单元,形参值的改变不会影响实参的值。 单向影响。 例6-3分析下列程序的运行结果 Private Sub multi (x By Val y!) Private Sub Form_ Click Print x=x;y=,y Dim a As single b as X=2*x Single y=2*y多个参数则按其位置 a=2.5 End Sub 顺序一一对应 b=3.5 输出结果是: Call multi(a, b) X=25;y=3.5 Print a=:a::b=: b a=5;b=3.5 End Sub

参数列表形式: [ByVal] 变量名[( )] [As 类型] 6.3.2引用(传地址) 过程定义中无“ByVal”关键字;形参得到的是实参的地址, 当形参的值发生改变时,实参的值也相应发生改变。双向影响。 6.3.3 传值 过程定义中有“ByVal”关键字;形参得到的是实参的值, 形参和实参各有不同存储单元,形参值的改变不会影响实参的值。 单向影响。 例6-3 分析下列程序的运行结果 Private Sub multi (x!, ByVal y!) Print "x="; x; ";y="; y x = 2 * x y = 2 * y ’多个参数则按其位置 End Sub ’顺序一一对应 Private Sub Form_Click() Dim a As Single, b As Single a = 2.5 b = 3.5 Call multi(a, b) Print "a="; a; ";b="; b End Sub 输出结果是: x=2.5; y=3.5 a=5; b=3.5

例6-4试分析下列程序运行后的输出结果 Private Sub Swapl( x As Single, y As Single)“引用 Dim tAs Single =X: x=y: y End Sub Private Sub Swap2( By Val x As single, By val y as single)‘传值 Dim tAs Single X: X=y: y=t End Sub Private Sub Form Click主调过程 Dim a As single, b As single, c As Single, dAs single a=5:b=6:c=15:d=16 Call Swapl(a, b): Call Swap2(c, d) 输出结果: Print a=; a; a 5 Print c=i c; d="; d c=15;d=16 End sub

例6-4 试分析下列程序运行后的输出结果。 Private Sub Swap1(x As Single, y As Single) ‘引用 Dim t As Single t = x : x = y: y = t End Sub Private Sub Swap2(ByVal x As Single, ByVal y As Single) ‘传值 Dim t As Single t = x : x = y: y = t End Sub Private Sub Form_Click() ‘ 主调过程 Dim a As Single, b As Single, c As Single, d As Single a = 5 : b = 6: c = 15 : d = 16 Call Swap1(a, b) :Call Swap2(c, d) Print "a="; a; ";b="; b Print "c="; c; ";d="; d End Sub 输出结果: a=6;b=5 c=15;d=16

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档