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