模块6 函数与过程(课件)-《程序设计基础(Visual Basic)》同步教学(语文出版社)

2024-08-04
| 56页
| 49人阅读
| 13人下载
普通

内容正文:

模块6 函数与过程 学习目标 理解函数和过程的基本概念 掌握常用输入输出函数的使用 掌握常用的内部函数 掌握子过程的定义和调用 掌握函数过程的定义和调用 理解参数传递的意义 任务1 认识函数 任务要点 掌握输入输出函数的使用 掌握内部常用函数的种类和应用 3 一、输入与输出函数 案例6-1:通过输入输出函数来完成重置密码。首先我们获取用户注册邮箱,如图6-1所示,然后我们通过输入函数来获得用户输入的新密码如图6-2所示,最后通过输出函数告知用户密码设置成功如图6-3所示。 图 6-1 输入用户邮箱 图6-设置新密码 图6-3提示信息 一、输入与输出函数 内容讲解: 输入函数: 在Visual Basic中,我们已经学会了通过文本框输入信息,除此之外,我们还可以利用InputBox函数来产生输入对话框提供给用户输入信息。 InputBox格式: InputBox(”提示内容”[,”标题”][,默认值]) 一、输入与输出函数 内容讲解: 输出函数: 在计算机操作的过程中,经常会出现提示信息,在VB中我们使用MsgBox函数来设计弹出的提示信息框。 函数的一般格式: MsgBox(”提示内容” [,按钮] [,”标题”]) MsgBox函数的第一个参数是提示信息框中的提示文字。第二个参数决定消息框内的按钮和图标的种类和数目。该参数是由三个数值相加之和。这三个数值分别代表按钮的类型、显示图标的种类和哪一个按钮是缺省的“活动按钮”。 一、输入与输出函数 内容讲解: 按钮数值: 常数 值 描述 vbOKOnly 0 只显示确定按钮。 vbOKCancel 1 显示确定和取消按钮。 vbAbortRetryIgnore 2 显示放弃、重试和忽略按钮。 vbYesNoCancel 3 显示是、否和取消按钮。 vbYesNo 4 显示是和否按钮。 vbRetryCancel 5 显示重试和取消按钮。 vbCritical 16 显示临界信息图标。 vbQuestion 32 显示警告查询图标。 vbExclamation 48 显示警告消息图标。 vbInformation 64 显示信息消息图标。 vbDefaultButton1 0 第一个按钮为默认按钮。 vbDefaultButton2 256 第二个按钮为默认按钮。 vbDefaultButton3 512 第三个按钮为默认按钮。 课堂小练手 6-1:设计一个程序,根据用户输入的圆的半径值,计算圆的周长和面积。 要求: 使用输入函数InputBox和输出函数MsgBox来设计程序。 二、常用内部函数 案例6-2:设计一个程序,当单击窗体时,在窗体上随机显示10个1-100之间的数字。 案例分析: 使用Rnd随机函数完成此案例。 内容讲解: Rnd(X)函数:用来返回小于1且大于或等于0的随机数。若要得到整数X~Y(X<Y)之间的随机数,可以使用下面的表达式:Int((Y - X + 1) * Rnd + X) Rnd(X)函数是VB中提供的常用内部函数之一。这些内部函数可供用户直接调用,包括数学函数、字符串函数和转换函数。 二、常用内部函数 内容讲解: 常用的数学函数及其功能表 二、常用内部函数 函数 功能 举例 结果 说明 Abs(x) 返回X绝对值 Abs(-50.3) 50.3   Exp(x) 返回e的X次幂 (e=2.718282) Exp(2) e*e e(自然对数的底)的某次方 Fix(x) 取整(取参数的整数部分) Fix(-99.8) Fix(99.8) -99 99 X<0时,返回大于或等于X的第一个负整数 Int(x) 取整(取小于或等于参数的最大整数) Int(-99.8) Int(99.8) -100 99 X<0时,返回小于或等于X的第一个负整数 Log(x) 返回常用对数 Log(1) 0 求自然对数值 Rnd 随机产生0~1的单精度值 Int(6*Rnd)+1 1~6 要产生一个从Min到Max的整数,应使用公式Int((Max-Min+1)*Rnd+Min) Round(x,n) 按小数位数四舍五入 Round(3.14159,3) 3.142 第2个参数为小数位数 Sgn(x) 取参数的符号值 Sgn(8.8) Sgn(-8.8) Sgn(0) 1 -1 0 参数大于0,返回1 参数小于0,返回-1 参数等于0,返回0 Sin(x) 返回角度X的正弦值 Sin(3.14159265/180*90) 1 三角函数以“弧度”为单位 Cos(x) 返回角度X的余弦值 Cos(3.14159265/180*180) -1 Atn(x) 返回角度X的反正切值 Atn(1) 0.7854 Tan(x) 返回角度X的正切值 Tan(3.14159265/180*45) 1 Sqr(x) 算术平方根 Sqr(9) 3 相当于 内容讲解: 常用的字符串函数及其功能表 二、常用内部函数 函数 功能 举例 结果 说明 Len(x) 返回字符串的长度(字符个数) Len("Vb技术") 4   LenB(x) 求字符串的字节个数 LenB("Vb技术") 8 VB中采用Unicode(ISO字符标准)来存储字符,所有字符都占2个字节 Mid(x,n1,n2) 从x字符串左边第n1个位置开始向右取n2个字符 Mid("Vb技术",2,2) "b技"   Left(x,n) 从x字符串左边开始取n个字符 Left("Vb技术",3) "Vb技"   Right(X,n) 从x字符串右边开始取n个字符 Right("Vb技术",3) "b技术"   UCase(x) 将x字符串中所有小写字母转换为大写 UCase("Vb技术") "VB技术"   LCase(x) 将x字符串中所有大写字母转换为小写 LCase("Vb技术") "vb技术"   Trim(x) 去掉x字符串两边的空格 Trim(" Vb 技术 ") "Vb 技术"   Ltrim(x) 去掉x字符串左边的空格 Ltrim(" Vb 技术 ") "Vb 技术 "   Rtrim(x) 去掉x字符串右边的空格 Rtrim(" Vb 技术 ") " Vb 技术"   Instr(x1,x2,M) 返回字符串x2在字符串x1中的位置,M=1不区分大小写,省略则区分 Instr("baBBAC","BA") 4 找不到则返回0 String(n,x) 返回由n个首字符组成的字符串 String(3,"AB") "AAA"   Space(n) 返回n个空格 Space(3) "    "   内容讲解: 常用的转换函数及其功能表 二、常用内部函数 函数 功能 举例 结果 说明 Str(x) 将数值转换为字符串 Str(45.2) "45.2"   Val(x) 将字符串中的数字转换成数值 Val("2.3ab") Val("a23") 2.3 0   Asc(x) 求字符ASCII值 Asc("a") 97   Chr(x) 将数值(ASCII码)转换为字符 Chr(65) "A"   CBool(x) 将数字字符串或数值转换成布尔型 CBool(1) CBool("0") True False 等于0为False,不等于0为True CDate(x) 将有效的日期字符串转换成日期 CDate(#1990,2,23#) "1990-2-23"   CSng(x) 将数值转换成单精度型 CSng(23.5125468) 23.51255   CDbl(x) 将数值转换成双精度型 CDbl(23.5125468) 23.5125468   内容讲解: 常用的日期时间函数及其功能表 二、常用内部函数 函数 功能 示例 结果 说明 Date 返回系统日期 Date 2014-9-1 (yyyy-mm-dd) Time 返回系统时间 Time 18:43:25 (hh:mm:ss) Now 返回系统日期和时间 Now 2014-9-1 18:43:25 (yyyy-mm-dd hh:mm:ss) Year(x) 返回指定日期的年份 Year("2014-9-1")或 Year(#9/1/2014#) 2014   Month(x) 返回指定日期的月份 Month("2014-9-1") 9   Day(x) 返回指定日期的日子 Day("2014-9-1") 1   Weekday(x) 返回指定日期的星期几 Weekday("2014-9-1") 2 2(星期一) 星期日为1 Hour(x) 返回指定时间的时数 Hour("18:43:25") 18   Minute(x) 返回指定时间的分数 Minute(Now) 43 假定系统时间为18:43:25 课堂小练手 6-2:阅读下面的程序,试想它的运行结果如何?不确定的话,就动手试试吧。 Private Sub Form_Click() Dim x As Integer, a As Integer ‘定义四个整型数字 Dim b As Integer, c As Integer x = 36 ‘将36赋值给x a = Int(x / 10) ‘x除10后的值取整的值赋值给a ,则 a=3 b = x Mod 10 ‘ x 除10后取余数赋值给b,则b=6 c = b * 10 + a ‘将b * 10 + a的结果赋值给c,则c=63 Print "处理后的数: "; c ‘打印数字c End Sub 任务2 使用Sub过程 任务要点 理解事件的概念 掌握Sub过程的定义与调用 一、事件过程 案例6-3:编写一个程序,当用户释放鼠标键时在窗体上显示系统日期和当前时间。 一、事件过程 案例6-3:编写一个程序,当用户释放鼠标键时在窗体上显示系统日期和当前时间。 案例分析: 在编写程序时使用MouseUp事件来触发程序。体会鼠标释放时触发程序的运行。 一、事件过程 内容讲解: “事件”是由系统事先设置好的、某一对象可以识别和响应的动作。通俗的说,“事件”是作用在对象上的某种实现规定的动作,如在窗体上按鼠标键(单击窗体);在窗体上连续按两次鼠标键(双击窗体)等。在VB中共有两类过程:事件过程和通用过程,每个事件过程都由相应的“事件”触发而执行。窗体能识别的常用事件有:鼠标事件、键盘事件和其他事件。 常用鼠标事件: 在窗体上移动鼠标(Mouse Move)、按下鼠标键(Mouse Down)、释放鼠标键(Mouse Up)、单击(Click)、双击(Double Click)都是常用的鼠标事件。 一、事件过程 案例6-4:编写一个程序,当用户按下键盘上任意键时,在窗体的(2600,2000)处画出一个半径为1000的红色圆。 一、事件过程 案例6-4:编写一个程序,当用户按下键盘上任意键时,在窗体的(2600,2000)处画出一个半径为1000的红色圆。 案例分析: 在编写程序时使用键盘事件KeyDown事件来触发程序。 小贴士 用Circle方法绘制圆的一般格式为: [对象.]Circle[Step](x,y),半径[,颜色] 对象指窗体、图片框等,Step后面的一对数字表示相当于当前坐标的位移量。 一、事件过程 内容讲解: 常用键盘事件: 按下键盘任意键(KeyDown)、按下键盘上任意键后释放该键(KeyUp)、敲击键盘(KeyPress)都是常用的键盘事件。 课堂小练手 6-3:设计一个程序,运行程序,当用户移动鼠标时,弹出提示信息框,显示“请勿随意使用本机”提示信息。 二、通用子过程 案例6-5:编写一个程序,当单击窗体上的命令按钮时打印指定的图形。 案例6-5:编写一个程序,当单击窗体上的命令按钮时打印指定的图形。 案例分析: 我们自定义一个Sub程序,当单击窗体命令按钮时,通过调用该通用子程序来实现在窗体打印图形。 二、通用子过程 内容讲解: 在实际编程中,有时多个不同的事件驱动程序可能需要用到一段相同的程序(公共程序),或一个程序要多次使用一段相同的程序。这时为了避免程序的重复,可以把这一段相同的程序独立出来,就成为一个“通用过程”。 Sub过程是VB通用过程之一, Sub过程又称为子程序。通常分为三个步骤 一、定义Sub过程 二、建立Sub过程 三、调用Sub过程 二、通用子过程 建立Sub过程 建立Sub过程 方法3:“菜单”法 27 内容讲解: 一、定义Sub过程 一般格式为: [Static] [Private] [Public] Sub过程名 [(参数表)] [语句块] [ Exit Sub ] End Sub 说明: Sub过程必须以Sub开头,End Sub结束。 参数表:传送数据进入Sub的变量或数组,参数之间用逗号分隔。 Exit Sub用于在必要时中途退出过程。 Sub过程不能嵌套。即Sub过程的过程体内不能包含内部的Sub过程。但调用时可以嵌套。 二、通用子过程 建立Sub过程 建立Sub过程 方法3:“菜单”法 28 内容讲解: 二、建立Sub过程 通用Sub不属于任何一个事件驱动过程,所以不能把通用Sub放在事件过程内部,应该放在事件过程外面,与事件过程独立开来,即通用Sub与事件过程是同一级别的。 建立通用Sub的方法有: 方法1:进入代码窗口→【工具】→【添加过程】→打开【添加过程】对话框→输入过程名→选择过程的类型→选择过程的作用范围→按【确定】,这时代码窗口上方的【对象框】出现【通用】,程序区出现过程的开始语句Sub…和结束语句End Sub,最后在过程内输入通用过程的过程体。 方法2:进入代码窗口,光标移到事件过程的外面,这时代码窗口上方的【对象框】出现【通用】,开始输入通用过程的所有语句,包括开始语句Sub…和结束语句End Sub。 二、通用子过程 建立Sub过程 建立Sub过程 方法3:“菜单”法 29 内容讲解: 三、调用Sub过程 调用Sub过程就等于执行这个过程。 Sub过程的调用有2种方式: 1、用Call语句 格式:Call 过程名(实参) 如果是无参过程,括号可以省略。 例如: Call Count ’ 调用无参过程Count Call Try(a,b) ’ 调用有参过程Try(x,y) 2、把过程名作为一个独立的语句来使用 与Call的区别:去掉Call,去掉实参的括号。 例如: Count ’ 调用无参过程Count Try a, b ’ 调用有参过程Try(x,y) 二、通用子过程 建立Sub过程 建立Sub过程 方法3:“菜单”法 30 课堂小练手 6-4:设计一个程序,运行程序后当用户单击命令按钮,在指定位置显示三个数中最大的那个数。 任务3 使用Function过程 任务要点 掌握Function过程的定义 掌握Function过程的调用 一、Function过程的定义 案例6-6 :编写一个程序,求1!+3!+5!之和。加载窗体,双击窗体显示1!+3!+5!的得数。 一、Function过程的定义 案例6-6 :编写一个程序,求1!+3!+5!之和。加载窗体,双击窗体显示1!+3!+5!的得数。 案例分析: Function过程也叫“自定义函数”,即定义一个VB标准函数中没有提供的特殊函数(如求X的阶乘)。我们一起定义Function过程来实现该程序。 内容讲解:定义Function函数 一般格式为: [Static] [Private] [Public] Function函数名[(形式参数表)] [As类型] 语句块 [ Exit Function ] 函数名=计算结果 End Function 说明: [As类型] 为函数返回值的类型,若省略,则返回变体类型值。 在函数体内至少对函数名进行一次赋值操作。 即使没有参数,函数名后的括号也不能省略。 参数可以是常量、变量或表达式,各参数之间使用逗号隔开。 一、Function过程的定义 二、Function过程的调用 案例6-7:编写一个程序,利用Function过程计算两个数的最大公约数。运行时,在文本框1和文本框2中分别输入两个值,单击按钮计算两个数的最大公约数,结果显示于文本框文本框3中。 二、Function过程的调用 案例6-7:编写一个程序,利用Function过程计算两个数的最大公约数。运行时,在文本框1和文本框2中分别输入两个值,单击按钮计算两个数的最大公约数,结果显示于文本框文本框3中。 案例分析: Function过程的调用比较简单,因为可以像使用VB内部函数一样来调用Function过程。 内容讲解:调用Function过程 Function过程定义好以后,就成了一个与标准函数一样的函数,调用方法也与标准函数一样,直接在表达式中调用: 格式: 过程名 ([参数列表]) 说明: [参数列表]: 常量、变量或表达式,各参数之间用逗号分隔。如果是数组,在数组名之后必须跟一对空括号。 二、Function过程的调用 Sub过程和Function过程的主要区别在于有无返回值。Sub过程没有返回值,而Function过程有返回值。 过程名也有类型,Sub过程名没有值,因而也没有类型“as 数据类型”指定函数类型。 小贴士 课堂小练手 6-5:设计一个程序,运行程序后当用户单击命令按钮,在指定位置显示三个数中最大的那个数。 任务4 过程中的参数传递 任务要点 理解形式参数和实际参数的意义。 掌握参数传递的方式 理解对象参数的使用方法 一、形式参数与实际参数 在调用过程的时候,我们必须把实际参数传递给过程,完成形式参数与实际参数的结合,然后再用实际参数执行调用的过程。参数是用来传送数据的。 形式参数又叫形参,是在Sub过程和Function过程的定义中出现的变量名。实际参数又叫实参,是在调用Sub过程或Function过程时传送给Sub过程或Function过程的常数、变量、表达式或数组。形参表中的各个变量和实参表中的各个参数都用逗号来分隔。 一、形式参数与实际参数 例如有下面一组程序代码: Function try(a,b) …… …… try = m End Function 调用try 函数时,可以使用以下语句来完成: Private Sub Command1_Click() …… …… Call try (x,y) End sub 在这段代码中的a和b是两个形式参数,而 x和y是两个实际参数。这样就完成了形参与实参的结合。 二、参数传递 案例6-8:编写如下程序,单击鼠标观察程序的输出结果。 案例分析:本案例使用传地址的方式来传递参数。 内容讲解: 在Visual Basic语言中,参数通过按地址传递的方法通常将它称为“引用”,在默认的情况下,变量都是通过“引用”来传递Sub或Function过程的。在这种情况下,可以通过改变过程中相应的参数来改变该变量的值。这意味着,当通过“引用”来传递实参时,有可能改变传递给过程的变量的值。 按地址传递是指将实参的地址传给形参,使形参和实参具有相同的地址,即形参与实参共享同一存储单元。按地址传递可以实现调用过程与子过程之间数据的双向传递。 二、参数传递 二、参数传递 案例6-9:编写如下程序,单击鼠标观察程序的输出结果。 案例分析:本案例使用传值的方式来传递参数。 内容讲解: 通过观察我们发现案例6-8与案例6-9的程序代码是非常相似的,只是在案例6-9定义形参A和B时前面加上了关键字ByVal,但是运行的结果却是截然不同的。原因就在于案例6-8是通过传地址方式也就是通过引用的方式来传递实参的,而案例6-9是通过传值的方式来传送实参的。 所谓按数值传递就是通过数值传递实际参数,即传递实参时只传递它的数值而不是传递它的地址。在这种情况下,数据的传递是单向的,系统把需要传递的变量复制到一个临时内存中的存储单元中,然后,把该临时单元地址传递给被调用的通用过程。由于通用过程没有访问变量(实参)的原始地址,因而,不会改变原来变量的值,所有的变化都是在变量的副本上进行的。 二、参数传递 在Visual Basic语言中,传值方式是通过关键字ByVal来实现的,也就是说,在定义通用过程时,如果形参前面有关键字ByVal,则该参数用传值方式传递,否则,就用“引用”方式传递。 传地址比传值效率要高。但在传地址方式中,形参不是一个真正的局部变量,有可能对程序的执行产生不必要的干扰。而在传值方式中,形参是一个真正的局部变量,当在程序的其他地方使用时,不会对程序产生干扰。 二、参数传递 三、对象参数 案例6-10:设计一个程序,当单击命令按钮时文本框中的预设内容自动转化为预定形式。 三、对象参数 案例6-10:设计一个程序,当单击命令按钮时文本框中的预设内容自动转化为预定形式。 案例分析:在VB中我们除了可以使用一般变量作为形参外,还可以使用对象作为参数。本例我们使用对象参数中的控件参数来完成程序。 内容讲解: 前面我们介绍了用数值、字符串等作为过程的参数,以及如何把这些类型的参数传递给过程。除此之外,由于VB与其他传统程序设计语言的不同,VB还允许用对象即窗体或控件作为通用过程的参数,我们称他们为对象参数。 用对象作为参数与一般数据类型作为参数的过程在定义和调用时没有什么区别,所以,在某些情况下,使用对象参数可以简化程序设计,提高效率。 三、对象参数 内容讲解: 对象作为过程的参数的格式为: Sub <过程名> (<形参表>) <语句块> [Exit Sub] …… …… End Sub “行参表”中形参的类型通常为Control或Form。 三、对象参数 内容讲解: 对象参数分为窗体参数和控件参数。所谓窗体参数指的是以窗体为对象实现数据参数的传递。所谓控件参数指的是以控件为对象实现数据参数的传递,与窗体参数一样,在使用时,可在一个通用过程中对控件类型的形参设置所需要的属性,然后,再用不同的控件调用此过程。在用控件作为参数调用时,作为实参的控件必须具有通用过程中所用到的形参控件的属性,否则,系统将会按出错处理。 三、对象参数 内容讲解: 为了判断某个控件是不是属于某种控件类型,Visual Basic专门提供了一个语句用来进行检测,其语句的格式如下: Typeof <控件名称> Is <控件类型> 该语句的功能是,测试<控件名称>是否属于<控件类型>。 在使用中Typeof 语句通常放在通用过程中,<控件名称>为控件参数(即形参)的名字,<控件类型>是代表各种不同控件的关键字。 三、对象参数 实训 设计查找字符个数小程序 实训要求:设计一个小程序,界面如图6-16所示。用户单击【开始查找】按钮时,弹出输入信息框,用户可输入任意字符串,如图6-16,输入结束后单击【确定】按钮,弹出信息提示框如图6-17所示。继续在弹出的输入信息框输入需要查找的内容后,被查找内容出现的频率将在指定文本框中显示,如图6-18所示。 图6-16实训图片1 图6-17实训图片2 图6-18实训图片3 55 敬请指正 $$

资源预览图

模块6  函数与过程(课件)-《程序设计基础(Visual Basic)》同步教学(语文出版社)
1
模块6  函数与过程(课件)-《程序设计基础(Visual Basic)》同步教学(语文出版社)
2
模块6  函数与过程(课件)-《程序设计基础(Visual Basic)》同步教学(语文出版社)
3
模块6  函数与过程(课件)-《程序设计基础(Visual Basic)》同步教学(语文出版社)
4
模块6  函数与过程(课件)-《程序设计基础(Visual Basic)》同步教学(语文出版社)
5
模块6  函数与过程(课件)-《程序设计基础(Visual Basic)》同步教学(语文出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。