内容正文:
2.6认识过程及程序中的错误
Visual Basic6.0项目教程
同步精品课堂
电子工业出版社
任务一
认识通用过程、事件过程、自定义函数
任务二
参数的传递、sub过程的调用
任务三
Visual Basic中的错误
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学目标
一
1、掌握过程的创建和调用、通用过程与事件过程的区别
2、掌握自定义函数、参数传递、程序中的错误
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学重点:
参数传递、程序中的错误
教学难点:
参数传递、过程调用
教学重难点
二
导入新课
三
上节课我们了解Visual Basic6.0的数组,使得我们可以批量处理数据,那么如果我要反复的完成某一项数据的处理要怎么办呢?这节课来介绍过程,过程会完成某个特定的任务,如果要使用这个功能可以反复的调用,甚至放到for循环中调用。
思考思考问题::
任务一
认识通用过程、事件过程、自定义函数
(PrivatelPublic][Static] Sub过程名[(参数列表)
【语句块]
[Exit Sub]
【语句块]
End Sub
通用过程:为了完成某个特定任务,通常会编写一段相对独立的程序,并给这段程序起一个名称,之后根据需要对其进行调用,这段程序就是通用过程
新知讲授
四
通用过程:
2、Public 声明的过程在所有模块中都可以使用
1、如果没有指定Private、Public、 Static,则 Sub过程的默认范围是Public
新知讲授
四
通用过程的注意事项:
4、Static声明的过程在过程被调用时保留局部变量的值
3、Private声明的过程在声明的模块中可以使用
新知讲授
四
5、Exit Sub语句使程序在一定条件下从一个Sub过程中退出,从调用过程语句的下一个语句继续执行
新知讲授
四
例如:
Private Sub qh(ByVal n As Integer,s As Single
S=0
Fori=l to n
s=s+i
Next
End Sub
通用过程qh的功能是求 1+2+3+…+n的值。
建立通用过程的方法:
打开代码编辑器窗口,从“对象”列表框中选择““通用”选项,在代码编辑区的空白处输入“Sub<过程名>”,按 Enter键后就会出现 End Sub 语
事件过程:针对空间或窗体的事件编写的代码,称为事件过程。分为控件事件过程和窗体事件过程
新知讲授
四
事件过程:
与通用过程不同的是,事件过程通常不需要显式调用,当相应的事件发生时会自动被触发而且事件过程的名称和参数也不能随意指定。事件过程分为窗体事件过程和控件事件过程,两者也都是使用Sub语句进行声明的
控件过程语法格式:
Private Sub 控件名事件名[(参数列表)]
语句块
End Sub
新知讲授
四
窗体事件过程语法格式:
Private Sub Form事件名[(参数列表)]
语句块
End Sub
2、单击工程资源管理器窗口中的“查看代码”按钮,以打开代码窗口,然后从“对象”下拉列表中选择一个对象,再从“过程”下拉列表中选择一个过程
1、双击窗体或控件,以打开代码窗口,此时会出现该窗体或控件的默认事件过程代码。
新知讲授
四
3、自己编写事件过程,在代码窗口中直接编写事件过程。在事件过程中,过程的范围、名称及参数在通常情况下都不能修改。应当使用其默认的范围、名称和参数
建立事件过程方法:
语法格式
(PrivatelPublic] (static] Function<函数名>([参数列表])[As 数据类型
【语句块]
[函数名=表达式]
[Exit Function]
[语句块]
[函数名=表达式]
End Function
自定义函数即Function过程,在 Visual Basic 中,可以使用Function语句创建用户自定义函数(简称函数)
新知讲授
四
自定义函数:
2、Static关键字表示在调用 Function 过程时保留Function过程内的局部变量的值。
3、函数名遵循Visual Basic标识符命名规则。
1、Public关键字用于声明在所有模中可以使用的Function过程,默认范围是Public
Private关键字用于声明只能在包含该声明的模块中使用的 Function 过程
新知讲授
四
自定义函数注意事项:
6、Function过程具有返回值。若要从Function过程返回一个值,可将这个值赋值给函数名,这个赋值语句可在过程的任何位置。如果省略“函数名二表达式”,则返回一个默认值。数值函数过程返回0,字符串的数过程返回空字符串。 As子句用于声明函数返回值
4、Exit Function语句的功能是提前退出 Function 函数
5、数据类型,如果省略As子句,则返回值的类型为可变类型。
新知讲授
四
新知讲授
四
调用 Function过程的语法格式。
函数名([参数列表)
注意事项:
①自定义函数的调用与内部函数的调用方法相同,在语句中可以把函数作为表达式的一部分直接使用:
②也可以利用调用SUB过程的方法调用自定义函数,即在函数名后不加括号,此时将丢弃函数的值
例如:
Private Function mj(a,b)As Singl
mj=a*b
End Function
调用:
S=mj(3,5)“调用自定义函数 mj
Print s
任务二
参数的传递、sub过程的调用
新知讲授
四
1)语法格式:
[optional] [ByVal|ByRef][ParamArray]变量名[()][As数据类型]
其中,Optional关键字表示参数是可选的, ByVal关键字表示该参数按值传递,byref键字表示该参数按地址传递, ParamArray关键字表示可以提供任意数目的参数。“()”表示变量是一个数组
参数的传递:
新知讲授
四
ByRef按地址传递。默认的传递方式,形参前加 ByRef关键字或省略的是按地址传递。实参向形参传递的是实参的存储地址,如果在被调用的过程中改变了形参值,则改变的是实参本身。
ByVal按值传递。在过程定义时,形参前加 ByVal关键字的是按值传递。传递的是参的副本,如果在被调用的过程中改变了形参值,则不会影响实参本身。
01
02
传递的两种方法:
新知讲授
四
ParamArray关键字表示使用不定数目的参数。在一般情况下,过程调用中的参数个数应等于过程声明的参数个数。使用ParamArray关键字指明过程将接收任意个数的参数。ParamArray关键字只能用于参数列表中的最后一个参数,并且不能与ByVal、 ByRef 、Optional关键字一起使用
Optional关键字表示使用可选的参数。
在过程的参数列表中加 Optional关键字,可指定过程的参数为可选的。如果指定了可选参数,则参数列表中此参数后面的其他参数也必是可选的,并且需要使用 Optional关键字来声明。
01
02
关键字说明:
新知讲授
四
例如:Private Sub Command_Click()
Dim a As Single, b As Single, s As Doubl
a=3:b=5
Call qc(a,b, s)
Print s
End Sub
qc过程
Private Sub qc( Byval x, Byval y,z)
S=a*b
End Sub
新知讲授
四
Sub过程的调用:
要执行一个过程,就必须调用过程,事件过程一般由操作系统调用,如鼠标事件、键盘事件等,也要显式调用,而通用过程一-般由事件过程或其他通用过程调用,并最终由事件过程调用执行。
新知讲授
四
用过程名调用过程的语法格式
于过程名[实参列表]
具体示例如下:
Dim a As Integer
a-4:b=5
qh a,b 'qh为子过程名
Print a+b
用Cal语句调用过程的语法格式
Call 子过程名[实参列表]
具体示例如下:
Dim a As Integer
a=4:b=5
Call qh(a,b) 'qh为子过程名
Print a+b
Sub过程的调用:
01
02
任务三
Visual Basic中的错误
新知讲授
四
编译错误:
1.关键字拼写错误。
2.遗漏了必要的标点符号。
3.语句格式不正确。
4.有For语句而无Next语句。
5.有f语句而无对应的End lf语句。
6.括号不匹配等。
概念:编译错误也称为语法错误,是程序中的语句违反了 Visual Basic的语法规则引起的
01
02
新知讲授
四
实时错误:
1.除数为零。
2. 0和负数求对数。
3.负数求平方根等。
概念:实时错误指程序在输入和编译时并未出现任何话法错误,但在程序运行过程中发生错误,导致应用程序中断。该类错误在设计阶段很难被发现,通常在程序运行时被发现
01
02
新知讲授
四
逻辑错误:
1.使用了不正确的变量类型。
2.语句的次序不正确。
3.循环中起始值和终止值不正确。
4.表达式书写不正确等。
概念:逻得错误是最难处理的一种错误。程序可以正常运行,但得不到所希望的结果。这不是程序语句的错误,而是程序本身存在逻辑缺陷导致的
01
02
新知讲授
四
使用错误捕捉语句。
对于没有被发现的错误,可以设置错误捕捉语句,对错误进行捕捉和处理。
错误捕捉语句的语法格式如下:
On Emor Goto[行号]
使用调试工具。
对于已发现的错误,可以利用调试工具对程序的运行进行跟踪,找出并改正导致错误
的语句。
01
02
错误处理:
新知讲授
四
3)Err对象的常用属性:
Number属性:存储当前错误的编号。除数为0的错误编号为“11”。
Description 属性:存储当前错误的描述信息。
描述为“除数为零”。
03
师生互动
五
1、若不指定范围关键字,则Sub过程默认的是Publico。( )
解析:通用过程有范围、名称、过程体,若不指定范围,则默认为Public。本题答案为√
√
2、若要保留过程中局部变量的值,则Sub过程用Static声明( )
解析:Static 声明的过程在过程被调用时保留局部变量的值。
√
师生互动
五
3、下列声明的过程是事件过程的是( )
Sub AA(X,Y) B. Private Sub AA(X,Y)
C. Private Sub Commandl ClickO D.以上都对
解析:根据事件过程的概念,是针对控件和窗体的事件编写的过程,故选C。
C
师生互动
五
4、Sub ABC(X As Integer, Byval Y As Single, Byref Z As Integer)语句参数按地址式传递的是( )
A.X和Y B.X和Z C.Y和Z D.以上都对
解析:在过程声明时,默认按地址方式传递,如果参数前有ByRef,也是按地址方式传递。故选B。
B
师生互动
五
5、下列程序中的错误属于实时错误的是( )
A.有For语句而无Next语句 B.除数为零
C.语句的次序不正确 D.关键字拼写错误
B
6、对于已发现的错误,可以利用错误捕捉语句对程序的运行进行跟踪,找出并改正导致错误的语句。( )
解析:实时错误是程序在运行过程中发生的错误。故选B。
X
解析:对于已发现的错误,可以利用调试工具对程序的运行进行跟踪,找出并改正导致错误的语句。本题答案为X。
课堂小结
七
谢谢
$$