《28过程和函数.ppt》由会员分享,可在线阅读,更多相关《28过程和函数.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1过程和函数的概念过程和函数的概念VB应用程序是按模块化的方式组成的,一个程序模块应用程序是按模块化的方式组成的,一个程序模块是程序的一部分,每个模块负责解决整个应用问题的一部是程序的一部分,每个模块负责解决整个应用问题的一部分任务。程序模块分为过程和函数两种。过程强调的是动分任务。程序模块分为过程和函数两种。过程强调的是动作,函数强调的是值的计算。作,函数强调的是值的计算。28 过程和函数过程和函数过程过程可以将程序划分成一个个较小的逻辑单元,每个这样的可以将程序划分成一个个较小的逻辑单元,每个这样的逻辑单元可以构成一个过程。过程中的代码可以被重复地调逻辑单元可以构成一个过程。过程中的代码可
2、以被重复地调用,从而避免了不必要的代码的重复编制,减少了编程的工用,从而避免了不必要的代码的重复编制,减少了编程的工作量。过程分为两类:一类是事件过理过程,一类是通用过作量。过程分为两类:一类是事件过理过程,一类是通用过程。程。事件处理过程描述的是,当对象事件处理过程描述的是,当对象X上发生某个事件上发生某个事件Y时,时,需要执行一段程序来响应这个事件,如鼠标单击需要执行一段程序来响应这个事件,如鼠标单击Click事件过事件过程,窗体加载程,窗体加载Load事件过程等;而通用过程则是一个独立的事件过程等;而通用过程则是一个独立的程序段,不同的事件可能需要使用同一个程序段时,可以把程序段,不同的
3、事件可能需要使用同一个程序段时,可以把这个程序段单独地建成一个通用过程,供其他事件处理过程这个程序段单独地建成一个通用过程,供其他事件处理过程或其他通用过程调用。或其他通用过程调用。函数函数函数是类似于过程的一个程序模块,不同之处是函数是类似于过程的一个程序模块,不同之处是函数执行完成后,函数的计算结果函数执行完成后,函数的计算结果(即即“函数返回值函数返回值”)被送到函数的调用点上被送到函数的调用点上(即调用函数的程序位置即调用函数的程序位置),供程,供程序的后续部分继续进行处理。序的后续部分继续进行处理。过程与函数的最大区别是:函数有返回值,过程过程与函数的最大区别是:函数有返回值,过程没
4、有返回值。没有返回值。2事件处理过程事件处理过程事件过理过程的一般形式参考如下:事件过理过程的一般形式参考如下:Sub 事件处理过程名事件处理过程名(参数表参数表) 局部变量或常数声明局部变量或常数声明 语语句块句块 Exit Sub 语句块语句块End Sub Sub过程以过程以Sub开头,以开头,以End Sub结束。在结束。在Sub与与End Sub之间是描述过程操作的语句块,称为子程序体或过程体。之间是描述过程操作的语句块,称为子程序体或过程体。过程体可以含有多个过程体可以含有多个Exit Sub的语句,程序执行的语句,程序执行Exit Sub时提时提前退出该进程,返回到调用该过程的下
5、一条语句。前退出该进程,返回到调用该过程的下一条语句。事件处理过程名必须符合的规则是:事件处理过程名必须符合的规则是:“对象名对象名_事件事件”的的标准名。标准名。VB常用对象的事件处理过程名有:常用对象的事件处理过程名有:窗体:窗体:Form_Load、Form1_Click文本框:文本框:Text1_Click、Text1_KeyPress、Text1_Change、Text1_DblClick按钮:按钮:Command1_Click标签:标签:Label1_Click、Label1_DblClick图像框:图像框:Image1_Click计时器:计时器:Timer1_Timer其中,其中
6、,Load事件是窗体加载事件,事件是窗体加载事件,Click是鼠标单击事件,是鼠标单击事件,DblClick是鼠标双击事件,是鼠标双击事件,KeyPress是按下键盘任意键事件,是按下键盘任意键事件,Timer是计时器事件。是计时器事件。建立事件处理过程建立事件处理过程打开打开“代码编辑器代码编辑器”窗口窗口打开打开“代码编辑器代码编辑器”窗口窗口在在Private Sub与与End Sub之间输入代码之间输入代码保存工程保存工程(分别保存分别保存窗体文件和工程文件窗体文件和工程文件)。3自定义函数自定义函数虽然虽然VB提供了常用的标准函数,可以使用这些函提供了常用的标准函数,可以使用这些函数
7、来实现某些数学计算或数据类型的转换,但许多应数来实现某些数学计算或数据类型的转换,但许多应用程序常常需要自己来定义函数,以实现某种特定的用程序常常需要自己来定义函数,以实现某种特定的计算。计算。自定义函数建立过程格式如下:自定义函数建立过程格式如下:Function 函数名函数名(参数表参数表) As 类型名类型名 局部变量或常数声明局部变量或常数声明 语句块语句块 Exit Function 语句块语句块 函数名表达式函数名表达式End Function自定义函数以自定义函数以Function语句开头,以语句开头,以End Function语句结束。其间是描述过程操作的语句,称为函数体。语句
8、结束。其间是描述过程操作的语句,称为函数体。在函数体内可以含有多个在函数体内可以含有多个Exit Function语句,程序执行语句,程序执行Exit Function语句时,就提前退出函数,返回调用点。语句时,就提前退出函数,返回调用点。函数名的命令规则与变量名的命名规则相同。在函数名的命令规则与变量名的命名规则相同。在函数体内,可以像使用简单变量一样使用函数名。函数体内,可以像使用简单变量一样使用函数名。参数表是对于函数需要的原始数据的类型进行一一地参数表是对于函数需要的原始数据的类型进行一一地说明。说明。As后的类型名,是说明函数的计算结果,即函数返后的类型名,是说明函数的计算结果,即函
9、数返回值的数据类型。回值的数据类型。End Function之前的语句块,描述了函数之前的语句块,描述了函数的计算过程,在这些语句中,至少有一个形如的计算过程,在这些语句中,至少有一个形如“函数名表函数名表达式达式”的语句,这样,表达式的计算结果才能作为函数的返的语句,这样,表达式的计算结果才能作为函数的返回值,被回值,被VB送到函数的调用点上。送到函数的调用点上。自定义函数的调用比较简单,与内部函数没有什么区自定义函数的调用比较简单,与内部函数没有什么区别,只不过内部函数由别,只不过内部函数由VB提供,而自定义函数由用户自己提供,而自定义函数由用户自己定义。调用的格式如下:自定义函数名定义。
10、调用的格式如下:自定义函数名(参数表参数表)。4列表框控件列表框控件列表框列表框ListBox用于列出可供用户选择的项目列表。用用于列出可供用户选择的项目列表。用户用鼠标单击,被选中的项目即被加亮显示;为了能正确操户用鼠标单击,被选中的项目即被加亮显示;为了能正确操作,列表框的项目应不少于作,列表框的项目应不少于3项。项。(1)列表框属性:列表框属性:列表框的一般属性包括列表框的一般属性包括Enabled(允许允许)、FontBold(字字体加粗体加粗)、Visible(可视可视)等属性。等属性。List属性:即表属性。用于保存列表内容。也可以使属性:即表属性。用于保存列表内容。也可以使用以下
11、形式来访问列表:用以下形式来访问列表:对象名对象名List(列表项序号列表项序号)其中的其中的“对象名对象名”即为列表框的名称属性值,列表项的即为列表框的名称属性值,列表项的序号由上下到依次为序号由上下到依次为0、1、2、3等。等。ListCount:列表项目数目。该属性列出列表框的数:列表项目数目。该属性列出列表框的数量。列表框中表项的次序是从量。列表框中表项的次序是从0开始的,最后一项为开始的,最后一项为ListCount1。ListIndex:列表项索引。该属性的值为最后选中的:列表项索引。该属性的值为最后选中的列表项序号,第一个列表项的符号列表项序号,第一个列表项的符号0,如果未选任何
12、表项,如果未选任何表项,则其值为则其值为1。Selected:选择属性。该属性实际上是一个数组,各:选择属性。该属性实际上是一个数组,各个元素的值为个元素的值为True或或False。每个元素与列表框中的一项相。每个元素与列表框中的一项相对应。当元素的值为对应。当元素的值为True时,表明选择了该项。例如,执行时,表明选择了该项。例如,执行下面的语句可以测试指定的表项是否被选择:下面的语句可以测试指定的表项是否被选择:ListBox 列表框列表框Selected(索引值索引值)(2)列表的方法:列表的方法:AddItem添加列表项。格式:列表框添加列表项。格式:列表框AddItem ,插入,插
13、入位置序号位置序号该方法只能单个地向表中添加项目,若不指定插入位置,则插该方法只能单个地向表中添加项目,若不指定插入位置,则插入到列表末尾。入到列表末尾。Clear删除列表中所有项目。格式:列表框删除列表中所有项目。格式:列表框Clear执行该语句后,列表框中的内容被清空,执行该语句后,列表框中的内容被清空,ListCount属性重新属性重新被置为被置为0.RemoveItem删除列表项。格式:列表框删除列表项。格式:列表框RemoveItem 删除项序号删除项序号该方法每次只能删除一个项目。该方法每次只能删除一个项目。(3)列表的事件列表的事件列表框可以响应单击列表框可以响应单击(Click
14、)与双击与双击(DblClick)事件,但一事件,但一般情况下,都使用单击事件。般情况下,都使用单击事件。本节课的学习过程中,需要理解过程与函数的概念,能本节课的学习过程中,需要理解过程与函数的概念,能识记对象常用事件名的含义,能根据算法理解函数或过程的功识记对象常用事件名的含义,能根据算法理解函数或过程的功能,能将代码补充完整。在自定义函数时,注意在函数内需要能,能将代码补充完整。在自定义函数时,注意在函数内需要有函数返回值的表达式。能掌握自定义函数的调用方法。掌握有函数返回值的表达式。能掌握自定义函数的调用方法。掌握列表框控件的详细使用方法。考查方式为选择题与填空题。列表框控件的详细使用方
15、法。考查方式为选择题与填空题。1.1. 窗体装载事件过程可以对程序进行初始化。窗体装载事件过程可以对程序进行初始化。VB窗体窗体装载事件过程的名称是装载事件过程的名称是( () )AForm1_Click BForm1_LoadCCommand1_Click DText1.ChangeB B B B 2. 小李在设计小李在设计VB程序时所使用的单选框对象的属性窗口如程序时所使用的单选框对象的属性窗口如下图所示。他想编制该单选框的单击事件处理过程,则下图所示。他想编制该单选框的单击事件处理过程,则该事件处理过程名是该事件处理过程名是 ()AOptionButton_ClickBOption1_C
16、lickC单选单选_ClickD单选框单选框_ClickC C 3.有如下有如下VB程序段:程序段:Private Sub Label1_Click() Dim a As Integer, b As Single a Val(Text1.Text) b a 5 / 3 b b / log(a) Label1.Caption Str(a)End Sub能运行该段程序的事件是能运行该段程序的事件是()A单击文本框单击文本框Text1B单击命令按钮单击命令按钮Command1C单击标签单击标签Label1D双击标签双击标签Label14. 某某VB程序段如下:程序段如下:Private Sub Co
17、mmand1_Click() Dim x As Integer, i As Integer For i 3 To 10 Step 2 x i * (i 1) List1AddItem Str(x) Next iEnd Sub运行程序,单击命令按钮运行程序,单击命令按钮Command1后,弹出如后,弹出如下图所示的出错信息提示:下图所示的出错信息提示:引起该错误的语句是引起该错误的语句是 ()AFor i 3 To 10 Step 2 Bx i * (i 1)CList1AddItem Str(x) DNext iC C C C5在窗体上画一个名称为在窗体上画一个名称为List1的列表框,列表框
18、中显示若干的列表框,列表框中显示若干城市的名称城市的名称(如下图所示如下图所示)。当单击列表框中的某个城市名时,该。当单击列表框中的某个城市名时,该城市名消失。下列在城市名消失。下列在List1_Click事件过程中能正确实现上述功事件过程中能正确实现上述功能的语句是能的语句是 ()C AList1.RemoveItem List1.Clear BList1.RemoveItem List1.ListCount CList1.RemoveItem List1.ListIndex DList1.RemoveItem List1.Selectled注:该示例程序在素材文件夹下注:该示例程序在素材文
19、件夹下vb4文件夹中。文件夹中。D D6已知已知VB自定义函数自定义函数fun(a As Single,b As Single) As Integer,以下赋值语句正确的是,以下赋值语句正确的是()Ax fun(3, 5) “abc” Bx fun(“3”, “5”) 3Cx fun(3, “a”) “123” Dx fun(3, 5) 6B B7有如下有如下VB程序段:程序段:Private Sub Command1_Click() Dim a As Integer, b As Integer a 9 b 13 Print fun(a, b); a; bEnd SubPrivate Func
20、tion fun(a As Integer, b As Integer) As Integer a a Mod 5 b b 5 fun aEnd Function程序运行时,单击命令按钮程序运行时,单击命令按钮Command1,则窗体上的输出结果是,则窗体上的输出结果是()A9132 B442C413 9 D139 2D D8以下为以下为VB自定义求两数最大公约数函数的代码:自定义求两数最大公约数函数的代码: Function gcd(a As Integer, b As Integer) As Integer 此处省略语句块内容此处省略语句块内容 End Function若要在文本框若要在文
21、本框Text1中输出中输出8、18、24这三个数的最大公约数,这三个数的最大公约数,下面正确的语句是下面正确的语句是()AText1.Textgcd(8,18),gcd(18,24),gcd(8,24)BText1.Textgcd(8,18,24)CText1.Textgcd(8),gcd(18),gcd(24)DText1.Textgcd(8,gcd(18,24)Fact(n)Fact(n)9下列下列VB程序的实现如下功能:程序运行时,在文本框程序的实现如下功能:程序运行时,在文本框Text1中输入中输入n的的值,单击命令按钮值,单击命令按钮Command1后,调用函数后,调用函数fact计
22、算计算s1!2!3!n!的值,并在文本框!的值,并在文本框Text2中输出结果。中输出结果。Private Sub Command1_Click() Dim n As Integer, s As Long n Val(Text1.Text) s _ Text2.Text Str(s)End SubFunction fact(n As Integer) As Long Dim i As Integer, f As Long, sum As Long sum 0 f 1 For i 1 To n f f * i_ Next i fact sumEnd Function为实现该程序的功能,划线处的语
23、句应填写为为实现该程序的功能,划线处的语句应填写为注:该示例程序在素材文件夹下注:该示例程序在素材文件夹下vb5文件夹中。文件夹中。Sum=Sum=sum+fsum+f10编写一个编写一个VB程序,实现如下功能:在文本框程序,实现如下功能:在文本框Text1、Text2、Text3中分中分别输入三个圆的半径长度,单击命令按钮别输入三个圆的半径长度,单击命令按钮Command1,在文本框,在文本框Text4、Text5、Text6中分别输入这三个圆的面积。程序代码如下:中分别输入这三个圆的面积。程序代码如下:Private Sub Command1_Click() Dim a As Single
24、, b As Single, c As Single a Val(Text1.Text) b Val(Text2.Text) c Val(Text3.Text) Text4.Text Str(s(a) Text5.Text Str(s(b) Text6.Text End SubFunction s(n As Single) As Single s End FunctionStr(s(n)3.1416+n+n运行界面如下图所示:运行界面如下图所示:(1)加框处有错,应改为加框处有错,应改为_。(2)加框处有错,应改为加框处有错,应改为_。3.1416*n*nStr(s(c)注:该示例程序在素材文
25、件夹下注:该示例程序在素材文件夹下vb6文件夹中。文件夹中。11已知方程已知方程 f(x)0 在单调区间在单调区间 a, b中有唯一的根,用二分中有唯一的根,用二分法求解方程近似根的算法如下:法求解方程近似根的算法如下:(1) 求该区间的中点求该区间的中点 m(ab)/2,并求出,并求出 f(m) 的值;的值;(2) 如果如果 f(m)0,则根为,则根为 m,求解结束;,求解结束;(3) 若若 f(m)与与 f(a)的值同为正数或者同为负数,则的值同为正数或者同为负数,则 a m, 否则否则 b m;(4) 重复第重复第(1) (3) 步,直到满足步,直到满足|ba|小于精确度小于精确度 e
26、为止。为止。编写编写 VB 程序,使用二分法求解方程程序,使用二分法求解方程 3x34x22.1x2.80 在在0,10中的根,中的根, 程序设计界面如下图所示:程序设计界面如下图所示:f请根据算法将下列程序补充完整。请根据算法将下列程序补充完整。Function f(x As Single) As Single_ 3 * x 3 4 * x 2 2.1 * x 2.8End FunctionPrivate Sub Command1_Click()Dim a As Single, b As Single, m As Singlea 0b 10Do While Abs(b a) 0.00001
27、m (a b) / 2 If f( m) 0 Then Exit Do _LoopLabel1.Caption “x ” & Str(m)End SubIf(f(m)0 And f(a)0) Or (If(f(m)0 And f(a)0 Then a=m Else b=m12(操作题操作题)修改素材文件夹下修改素材文件夹下vb7文件夹中的工程文件文件夹中的工程文件“工程工程1.vbp”,使其具有下列功能:单击,使其具有下列功能:单击“玩一局玩一局”按钮,在按钮,在“本人本人”下方的图像框下方的图像框Image1中显示本人随机掷出的骰子图片,同时在中显示本人随机掷出的骰子图片,同时在“电脑电脑”
28、下方的图像框下方的图像框Image2中显示电脑自动掷出的骰子图片,并在标签中显示电脑自动掷出的骰子图片,并在标签Label3中显示结果。中显示结果。程序运行效果如下图所示:程序运行效果如下图所示:完善界面。参照上图所示,将窗体完善界面。参照上图所示,将窗体Form1中的中的Caption属性修改为属性修改为“掷骰子游戏掷骰子游戏”,并将标签,并将标签Label3中的中的Caption属性设置为空。属性设置为空。完成下列操作:完成下列操作:参照效果图所示,向窗体参照效果图所示,向窗体Form1中添加图片框中添加图片框Image1,并将,并将其其Picture属性值设置为属性值设置为“Image”
29、文件夹中的文件夹中的“1.bmp”编制程序代码。选择命令按钮编制程序代码。选择命令按钮Command1的相应事件过程,的相应事件过程,将将“vb7”文件夹下文件夹下“code.txt”文件中所有代码复制到该过程中。文件中所有代码复制到该过程中。调试并运行程序。运行程序,单击命令按钮调试并运行程序。运行程序,单击命令按钮“玩一局玩一局”,在,在本人下方的图像框中与电脑下方的图像框中显示的是相同的图片。本人下方的图像框中与电脑下方的图像框中显示的是相同的图片。改正这一错误,使在程序运行时,在电脑下方的图像框改正这一错误,使在程序运行时,在电脑下方的图像框Image2中显中显示电脑掷出的骰子图片。示电脑掷出的骰子图片。保存窗体文件和工程文件,生成可执行程序保存窗体文件和工程文件,生成可执行程序“game.exe”并并保存到保存到“vb7”文件夹下。文件夹下。