VB过程与函数课件
$4.4
过程与函数
模块分成两种:1. 过程 2. 函数
• 过程:强调的是动作,比如显示一个对话框 MsgBox "你输入东西了,哈哈“ • 函数:强调的是值的计算,如求算术平方根,sqr(5)
二、过程的分类:
(1)事件处理过程:当对象X上发生某个事件Y 时,需要执行一段程序来响应这个事件。 常用格式 sub 对象名_事件的标准名(参数表) 语句块 事件处理过程名 end sub
Private Sub Command1_Click() Text1.Text = Str(f(24, 18)) End Sub
3、程序阅读 • (1)、有以下程序段: • For i = 1 To 3 • For j = 1 To 5 • s = i*j • Next j • Next i • 则语句s = i*j 的执行次数 是 ( A) • (A)15(B)16(C)17(D)18
3、程序阅读
• (2)、有如下程序段: •x=1 •y=0 • Do While x<10 •x=x*2 • y = y +1 • Loop • 该程序段运行后,y的值为(D ) (A)0(B)2(C)3(D)4
4.4 过程与函数
一、概念: VB应用程序是按模块化的方式组成的, 每个模块完成一部分任务。
模块分成两种:1. 过程 2. 函数
过程:强调的是动作,比如显示一个对话框 MsgBox "你输入东西了,哈哈“ 函数:强调的是值的计算,如求算术平方根,sqr(5)
二、过程的分类:
过程:将程序划分为一个个较小的逻辑单元, 每个逻辑单元构成一个过程。过程中的代码 被重复的调用。过程分为:事件处理过程和 通用过程。
复习与回顾
1、For语句与Do语句的区别 (1)for语句:事先可知循环次数,通过次数控制 循环;循环体先执行后判断次数完否,至少执行一 次循环;控制循环次数的循环变量的值会按步长自动 变化,循环会自动结束。 (2)do 语句:事先可不知循环次数,通过条件控 制循环;条件先判断后执行循环体,循环次数可以 为0次;控制循环条件的主要变量的值必须在循环体 中改变,并要最终能终止循环。 2、For语句一定可以改成Do语句,反之不一定成立。
自定义函数的格式:
2、自定义函数
Function 函数名(参数表)AS 类型名 语句块 (其中至少有一个语句是: 函数名=表达式) End Function
例: Function ou(a) As String If a Mod 2 = 0 Then ou = "该数为偶数!" Else ou = "该数为奇数!" End If End Function
演示“函数与过程调用工程中的函数调用(Form2)”
应用实例:在文本框text1和text2中输入两个整数,单击按钮 对象command1,在标签label1中显示这两个数的较大数。
Founction big(x,y) as integer if x>y then big=x else big=y End if End Founction
这样表达式 的结果才能 作为函数的 返回值
(二)、调用(使用)函数 应用实例:判断一个数是否为偶数 Private Sub Text1_Change() Dim a As Integer a = Val(Text1.Text) Label2.Caption = ou(a) End Sub Function ou(a) As String If a Mod 2 = 0 Then ou = "该数为偶数!" Else ou = "该数为奇数!" End If End Function
如:Private Sub Command1_Click() a = InputBox("请输入你的姓名:") MsgBox (a + "我知道你了,哈哈!") End Sub
(2)通用过程(教材省略,不作要求)
三、事件处理过程
1、例:文本框1,内容改变事件 Private Sub Text1_Change() MsgBox "你输入东西了,哈哈“ End Sub 2、事件处理过程名=对象名_事件的标准名 对象名:文本框(Text)、命令按钮(Command)、 标签(label) 事件的标准名 单击(click)、双击(Dblclick)、 改变内容(change)、键盘按下(KeyPress) (参见教材P84表4.4.1) 4、事件处理过程以sub开始,并且以end sub结束
七、总结:
• Vb是一种基于模块化的设计方法,函数与过 程是模块的具体实现。 • 调用过程相当于执行了一条语句(过程名), 强调的是动作,它不返回值。调用函数时, 强调的是表达式中值的计算,返回值由函数 名带回。
• • • • • • • • • • •
Public Function f(m, n) As Integer Do While m <> n Do While m > n m=m-n Loop Do While n > m n=n-m 运行结果:6 Loop Loop 函数f的功能是:求最大公约数 f=m 演示: “函数与过程调用工程中的函 End Function 数调用阅读练习(Form3,Form4)”
六、模块化程序设计的方法
1、把判断A是否为偶数这样的一个过程从整个程序中分 离出来,成为一个独立的模块,(模块可以是函数,也 可以是过程),这是一种模块化程序设计方法。 2、VB应用程序是按模块化的方式组成的,一个程序模 块是程序的一部分,每个模块负责解决整个应用问题的 一部分。 3、使用这样的方法的好处是: ①、使程序设计结构简单化 ②、过程规模小,容易调用和维护 ③、过程可以被反复使用,从而避免了重复编码
private sub command1_click() dim a1,a2 as integer a1=val(text1.text) a2=val(text1.text) Label1.caption= Big(a1,a2)
分析:自定义函数big用于求两个整数中的 较大数
由于输入的整数是a1,a2。即调用函数 时对应的参数为a1,a2,而不是x,y, 因此答案为Big(a1,a2)
Private Sub Label1_Dblclick() Picture1.Print "你双击我了,哈哈!" Command1_Clib Text1_Change() • Picture1.Print "你输入东西了,哈哈" • Command1_Click
五、函数
函数也是一个程序模块,不同之处是函数执行完后会 返回一个函数值。函数的函数值是通过函数名返回的
五、函数
• (一)函数分为标准函数和自定义函数
1、标准函数:
(1)、常用数学函数:
Abs(x) Int(x) Sqr(x) Exp(x) Log(x) Sin(x) Cos(x) Tan(x)
(2)、类型转化函数和字 符串函数:
Asc(x) asc(“A”)=65 Chr(x) chr(48)=“0” Val(x) val(“170”)=170 Str(x) str(170)=“170” Len(x) len(“asd”)=3 Mid(x,n,k) 如:mid(“abcde”,3,2)=“cd” Fix(x) fix(2.56)=2
• • • • • • • •
• • • •
Private Sub Command1_Click() Dim a As String Label2.Caption = ("请输入你的姓名:") a = Text2.Text If a <> "" Then Picture1.Print (a + "我知道你了,哈哈!") End If End Sub