Visual Basic 2005程序设计 教学课件 ppt 作者 丁爱萍 第7章 过程和函数

上传人:E**** 文档编号:89425993 上传时间:2019-05-25 格式:PPT 页数:51 大小:701KB
返回 下载 相关 举报
Visual Basic 2005程序设计 教学课件 ppt 作者  丁爱萍 第7章  过程和函数_第1页
第1页 / 共51页
Visual Basic 2005程序设计 教学课件 ppt 作者  丁爱萍 第7章  过程和函数_第2页
第2页 / 共51页
Visual Basic 2005程序设计 教学课件 ppt 作者  丁爱萍 第7章  过程和函数_第3页
第3页 / 共51页
Visual Basic 2005程序设计 教学课件 ppt 作者  丁爱萍 第7章  过程和函数_第4页
第4页 / 共51页
Visual Basic 2005程序设计 教学课件 ppt 作者  丁爱萍 第7章  过程和函数_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《Visual Basic 2005程序设计 教学课件 ppt 作者 丁爱萍 第7章 过程和函数》由会员分享,可在线阅读,更多相关《Visual Basic 2005程序设计 教学课件 ppt 作者 丁爱萍 第7章 过程和函数(51页珍藏版)》请在金锄头文库上搜索。

1、第7章 过程和函数,7.1 事件过程,1. 事件过程的语法格式 访问权限 Sub 事件名(形参列表) Handles 事件列表 语句序列1 Exit Sub 语句序列2 End Sub,说明: (1)访问权限是指能够对其进行访问的程度,即什么代码对其具有读取或写入的权限。 (2)事件名遵循变量的命名规则。 (3)“形参列表”含有在调用时传送给该过程的简单变量名或数组名,名字之间用逗号隔开。每个参数的语法格式为: ByVal | ByRef 参数名称 ( ) As 数据类型 如果参数名称后面加( ),就表示该参数是个数组。参数名称前面的ByVal指定了变量是按照“传值”的方式传送的,是VB 20

2、05默认的方式;ByRef指定了变量是按照“传地址”的方式传送的。 (4)Handles指示此过程可以处理一个或多个特定事件。 (5)事件列表表示响应事件的对象名称和事件的类型。,2. 控件通用的常用事件,【例7-1】设某单位规定,如果原工资少于1000元,则工资增加400元,否则增加350元。编制程序,计算增加工资后的应发工资。,编写“计算”命令按钮Button1的Click事件代码: Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Button1.Click D

3、im x As Double x = CDbl(TextBox1.Text) If x 1000 Then x = x + 400 Else x = x + 350 End If TextBox2.Text = CStr(x) End Sub,7.2 Sub过程,7.2.1 定义Sub过程 1. 在代码窗口中定义Sub过程 访问权限 Sub 通用过程名 (形参列表) 语句序列1 Exit Sub 语句序列2 End Sub,【例7-2】定义一个计算球体积的Sub过程。 Sub tj(ByVal r As Single) Dim v As Single v = 4 / 3 * 3.14 * r

4、3 End Sub,2. 使用快捷方式定义过程 (1)在代码窗口中,将鼠标移至所有事件之外,单击鼠标右键。 (2)在快捷菜单中,选择“插入代码段”项,在系统自动显示的下拉列表中,选择“通用代码模式”项。 (3)继续选择“属性和过程”项。 (4)在下拉列表中选择“定义Sub”项,如图7-3所示,系统将自动插入相应代码。此时即可在过程中输入代码。,7.2.2 调用Sub过程,调用Sub过程有两种方式: 使用Call语句,语法格式为: Call 通用过程名( 实参列表 ) 直接使用过程名,语法格式为: 过程名( 实参列表 ) 说明: (1)实参列表是实际参数列表,参数与参数之间要用逗号分隔。 (2)

5、调用过程可以使用Call关键字,也可以省略Call关键字。 (3)如果过程有参数,参数可以写在括号里面,也可以直接写在过程名后面。如果参数有多个,每个参数用逗号隔开。 例如,调用创建的过程tj,其代码如下: v(10) 或 v 10,【例7-3】修改【例7-1】。编写一个增加工资的Sub过程,然后调用该过程计算增加工资后的应发工资。 编写Yfgz的通用过程代码: Sub Yfgz(ByVal x As Double) If x 1000 Then x = x + 400 Else x = x + 350 End If TextBox2.Text = CStr(x) End Sub 修改“计算”

6、命令按钮Button1的Click事件代码: Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Button1.Click Dim num As Double num = CDbl(TextBox1.Text) Yfgz(num) End Sub,7.3 Function过程,7.3.1 定义Function过程 1. 定义Function过程的语法格式 定义Function过程与定义Sub过程有所不同,但也可以在模块、类或结构中定义。其语法格式如下: 访问权限 Fu

7、nction 函数名( 形参列表 ) As 数据类型 语句序列1 函数名=表达式 Exit Function 语句序列2 End Function,2. Function过程的返回值 Function过程发送回调用代码的值,称为它的“返回值”。在定义函数过程中,可使用以下两种方式: (1)在Function过程的一个或多个语句中给自己的函数过程名赋值。在执行Exit Function或End Function语句之前,控制不会返回调用程序。 函数名=表达式 (2)使用Return语句指定返回值,并直接将控制返回调用程序。 Return 表达式,【例7-4】编写计算圆面积的Function过程。

8、 Function cir(ByVal r As Single) As Single Const PI = 3.14 cir = PI * r 2 为函数名cir赋值 End Function 【例7-5】定义一个已知长和宽,求长方形面积的函数。 Function cfx(ByVal x As Single, ByVal y As Single) As Single Return x * y End Function,7.3.2 调用Function过程,【例7-6】计算1!2!3!10!。 定义一个fac函数过程: Function fac(ByVal n As Integer) As In

9、teger Dim j As Integer Dim total As Integer = 1 For j = 1 To n total = total * j Next fac = total End Function,编写“=”命令按钮Button1的Click事件代码: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Dim i, sum As Integer sum = 0 For i = 1 To 10 sum =

10、 sum + fac(i) 调用函数过程后进行累加 Next TextBox1.Text = CStr(sum) End Sub,7.4 过程的参数传递,调用过程的目的,就是在一定的条件下完成某一工作或计算某一函数值。外界需要把条件告诉过程,反过来,过程也需要把某些结果报告给外界,这就是过程与外界的数据传递。过程与外界的数据传递方式有两种: 通过非局部变量。 通过参数。,7.4.1 形式参数与实际参数,形式参数是在Sub过程和Function过程的定义中出现的变量名;实际参数则是在调用Sub过程和Function过程时,传送给Sub过程和Function过程的常数、变量、表达式。 在VB中,通

11、常把形式参数叫做“形参”,把实际参数叫做“实参”。 实际参数和形式参数的对应关系为: 调用过程:Call Test ( 18, “ABC“, xm ) 定义过程:Sub Test ( ByVal i As Integer, ByVal Str1 as String, ByVal Str2 As String ),7.4.2 参数传递方式,在VB 2005中,参数传递的方式有两种: 传值:将实参的值传递给形参。定义过程时,在形式参数前加ByVal,是VB 2005中参数的默认传递方式。 传地址:将实参的引用(存放实参的内存地址)传递给形参。定义过程时,在形式参数前加ByRef。,1. 传值 传值

12、就是通过值传送实参,即传送实参的值而不是传送它的地址。在这种情况下,系统把需要传送的变量复制到一个临时单元中,然后把该临时单元的地址传送给被调用的通用过程。由于通用过程没有访问变量(实参)的原始地址,因而不会改变原来变量的值,所有的变化都是在变量的副本上进行的。,【例7-7】传值调用示例。定义交换两个变量值的过程,使用事件过程调用后观察结果。,编写swap过程代码: Sub swap(ByVal a As Integer, ByVal b As Integer) Dim temp As Integer temp = a a = b b = temp End Sub 编写“交换”命令按钮Butt

13、on1的Click过程代码: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Dim m, n As Integer m = CInt(TextBox1.Text) n = CInt(TextBox2.Text) swap(m, n) TextBox3.Text = m TextBox4.Text = n End Sub,2. 传地址 传址就是让过程根据变量的内存地址去访问实际变量的内容,即形参与实参使用相同的内存地址单元,

14、这样通过子过程就可以改变变量本身的值。 【例7-8】修改【例7-7】中过程的参数传递方式,按照传地址方式定义。 只需要修改swap过程定义代码: Sub swap(ByRef a As Integer, ByRef b As Integer) Dim temp As Integer temp = a a = b b = temp End Sub,7.5 过程的嵌套与递归调用,在一个过程中调用另外一个过程,称为过程的嵌套调用;而过程直接或间接地调用其自身,则称为过程的递归调用。,7.5.1 过程的嵌套,【例7-9】输入参数n,m,求组合数 的值。,编写求阶乘的函数过程fact: Function

15、 fact(ByVal x) As Double Dim i As Integer Dim p As Double p = 1 For i = 1 To x p = p * i Next fact = p End Function 编写求组合数的函数过程comb: Function comb(ByVal num1, ByVal num2) As Double comb = fact(num2) / (fact(num1) * fact(num2 - num1) 调用fact函数 End Function,编写“=”命令按按钮的Click过程: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Dim n, m As Integer m = CInt(TextBox1.Text) n = CInt(TextBox2.Text) If m = n Then Label12.Text = “输入参数不符合要求!“ Exit Sub End If TextBox3.Text = comb(m, n) 调用comb函数 End Sub,7.5.2 过程的递归调用,【例7-10】利用递归求阶乘。,编写求阶

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号