教学课件第7章 过程.ppt
《教学课件第7章 过程.ppt》由会员分享,可在线阅读,更多相关《教学课件第7章 过程.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第7章章过过 程程 2本章内容本章内容n过程的一般概念过程的一般概念n函数过程函数过程n子过程子过程n参数传递参数传递n作用域作用域 3学习目标学习目标 n了解过程的基本概念,过程的调用流程了解过程的基本概念,过程的调用流程n理解使用过程的优点,理解函数过程与子过程的特点与区别理解使用过程的优点,理解函数过程与子过程的特点与区别和过程参数的传递机制和过程参数的传递机制n熟悉可选参数和对象参数的传递特点熟悉可选参数和对象参数的传递特点n理解过程与变量的作用域的概念理解过程与变量的作用域的概念n掌握函数过程与子过程的定义、调用方法掌握函数过程与子过程的定义、调用方法n掌握值传递与地址传递的区别
2、与使用场合,掌握数组参数的掌握值传递与地址传递的区别与使用场合,掌握数组参数的使用方法使用方法n熟悉全局变量、模块级变量、局部变量和静态变量的区别与熟悉全局变量、模块级变量、局部变量和静态变量的区别与特点特点n能够编写正确的函数过程与子过程和调用程序能够编写正确的函数过程与子过程和调用程序n能够熟练使用值传递、地址传递方式以及数组参数传递信息能够熟练使用值传递、地址传递方式以及数组参数传递信息n懂得如何使用全局变量、模块级变量、局部变量和静态变量懂得如何使用全局变量、模块级变量、局部变量和静态变量 47.1 过程概述过程概述 n过程是一段程序,是一个可以实现独立功能的过程是一段程序,是一个可以
3、实现独立功能的程序单元程序单元n过程的种类过程的种类n函数过程函数过程n用于得到一个计算结果用于得到一个计算结果n子过程子过程n用于实现一种操作用于实现一种操作5为何要使用过程为何要使用过程n一个复杂问题可以分解为多个相对简单的子问题,一个复杂问题可以分解为多个相对简单的子问题,用过程去解决这些子问题,最后再把这些过程组用过程去解决这些子问题,最后再把这些过程组装成一个完整的程序装成一个完整的程序n例如:求例如:求ex的近似值可以用级数的近似值可以用级数n累加累加n第第0项项 + 第第1项项 + 第第2项项 + 第第3项项 + + 第第n项项n第第k项项 = xk / k! 乘方:乘方: xk
4、 阶乘:阶乘: k! n定义定义3个过程分别计算累加、乘方和阶乘个过程分别计算累加、乘方和阶乘!.! 3! 2132nxxxxn6过程间信息的传递过程间信息的传递n通常要在过程之间传递一些信息通常要在过程之间传递一些信息 n例如为了计算例如为了计算n!n要向计算阶乘的过程传递要向计算阶乘的过程传递n的值的值n计算结束后要把计算结果传回来计算结束后要把计算结果传回来 n设计一个过程需要确定设计一个过程需要确定n传递哪些数据传递哪些数据n如何传递数据如何传递数据n数据的类型数据的类型n这些信息称为过程的接口这些信息称为过程的接口n一个过程设计好之后,它的接口也就确定了一个过程设计好之后,它的接口也
5、就确定了n接口设计本身也是过程设计的重要内容接口设计本身也是过程设计的重要内容n知道了过程的接口,也就知道了如何使用这个过程知道了过程的接口,也就知道了如何使用这个过程 7过程的调用过程的调用n在程序代码中使用过程被称为过程的调用在程序代码中使用过程被称为过程的调用n一个过程可以在程序的不同位置多次被调用一个过程可以在程序的不同位置多次被调用 n过程调用的流程过程调用的流程 过程过程sub1调用调用sub2调用调用sub3过程过程sub2过程过程sub3调用调用sub38使用过程的优点使用过程的优点 n降低了程序设计的难度降低了程序设计的难度n使用过程可以使程序结构清晰、有层次使用过程可以使程
6、序结构清晰、有层次n程序便于阅读和理解程序便于阅读和理解n便于程序的调试、修改和维护便于程序的调试、修改和维护n每个过程实现相对独立的功能,算法相对简单,因此调试每个过程实现相对独立的功能,算法相对简单,因此调试也相对容易也相对容易n对一个过程中的代码进行修改时而对程序的其他部分没有对一个过程中的代码进行修改时而对程序的其他部分没有影响影响n提高程序代码的可重用性提高程序代码的可重用性n便于把过程移植到其他程序中,可提高程序设计的效率便于把过程移植到其他程序中,可提高程序设计的效率n便于实现团队协作便于实现团队协作n只需知道过程的接口和功能,不必了解过程内部编码的细只需知道过程的接口和功能,不
7、必了解过程内部编码的细节即可调用过程节即可调用过程n可以充分利用已有的过程和他人设计的过程可以充分利用已有的过程和他人设计的过程97.2 函数过程函数过程 n函数过程简称函数,可以获得一个计算结果函数过程简称函数,可以获得一个计算结果n数学函数数学函数 y = f (x) 自变量自变量函数关系函数关系函数值函数值n直接把数值或表达式代入到相应的自变量位置直接把数值或表达式代入到相应的自变量位置处,即可获得函数结果处,即可获得函数结果ny=f(5)ny=f(a)ny=f(a+3)10Visual Basic函数函数 nVisual Basic函数函数Function f(x As Integer
8、) As Integer函数体函数体End Function 参数(自变量)参数(自变量)函数名函数名参数的数参数的数据类型据类型函数值的函数值的数据类型数据类型实现函数功实现函数功能的代码能的代码11Visual Basic函数函数nVisual Basic函数过程的定义形式函数过程的定义形式Private | Public Function () As End Function nPrivate | Public表示函数的作用域表示函数的作用域nFunction表示是函数过程,表示是函数过程,End Function表示函数的结束表示函数的结束n函数名是程序设计者自己定义的函数名称,应符合
9、命名规则函数名是程序设计者自己定义的函数名称,应符合命名规则n参数列表由参数列表由0个或多个参数组成个或多个参数组成n参数列表的形式与变量定义的形式类似,但没有参数列表的形式与变量定义的形式类似,但没有Dimn每个参数有一个数据类型,若省略则为变体类型每个参数有一个数据类型,若省略则为变体类型n函数首部最后是函数返回值的数据类型,若省略则是变体类型函数首部最后是函数返回值的数据类型,若省略则是变体类型n函数体是实现函数功能的程序代码,为了能够产生返回值,在函数体是实现函数功能的程序代码,为了能够产生返回值,在函数体内至少要在适当的位置对函数名赋值一次函数体内至少要在适当的位置对函数名赋值一次n
10、函数体中可以用函数体中可以用Exit Function语句从函数中跳出语句从函数中跳出12Visual Basic函数函数n计算计算n!的的Visual Basic函数函数nPrivate Function fact(n As Integer) As Longn Dim k As Integer, t As Longn t = 1n For k = 1 To nn t = t * kn Next kn fact = tnEnd Function为函数名赋值为函数名赋值产生返回值产生返回值13Visual Basic函数与数学函数对比函数与数学函数对比数学函数数学函数Visual Basic函数
11、函数函数形式函数形式f(x)Function fact(n As Integer) As Long自变量自变量自变量自变量参数参数自变量的自变量的定义域定义域在上下文中定义在上下文中定义参数的数据类型,在函数首部中定义参数的数据类型,在函数首部中定义函数的计函数的计算结果算结果函数值函数值函数的返回值,通过对函数名赋值来实现函数的返回值,通过对函数名赋值来实现函数的值函数的值域域在上下文中定义在上下文中定义函数返回值的数据类型,在函数首部中定义函数返回值的数据类型,在函数首部中定义函数内容函数内容f(x)=x!函数体中的代码函数体中的代码14函数过程的调用函数过程的调用 nVB函数的调用与数学
12、函数的调用基本相同函数的调用与数学函数的调用基本相同n例如:例如:x=fact(5) n函数定义时的参数称为函数定义时的参数称为“形式参数形式参数”,简称,简称“形参形参”n调用函数时,实际写在参数位置处的表达式称为调用函数时,实际写在参数位置处的表达式称为“实际参实际参数数”,简称,简称“实参实参”n实参可以是常量、变量或表达式实参可以是常量、变量或表达式n实参要与形参数量相同,顺序一致,类型匹配实参要与形参数量相同,顺序一致,类型匹配 n函数的调用的位置函数的调用的位置n表达式中表达式中n过程的实际参数中过程的实际参数中n例如例如nx=fact(5)nx=fact(5)+fact(3)+1
13、0nPrint fact(6)nx=fact(fact(3)15函数的应用函数的应用n例例7-1 输入输入x,计算,计算ex的近似值,要求精度达到的近似值,要求精度达到10-6n分析分析n利用公式利用公式ex = 可以求得可以求得ex的近似值的近似值nn越大,精度越高越大,精度越高n可分解为可分解为3个子问题,即:求累加、求个子问题,即:求累加、求xk和求和求k!n思路思路n用函数用函数e来计算累加,函数来计算累加,函数power和和fact分别计算分别计算xk和和k!n每次累加前,先调用每次累加前,先调用power和和fact构成累加项,再进行累加。构成累加项,再进行累加。n当精度满足时,停
14、止累加当精度满足时,停止累加n可以用可以用xk/k!的值来判别精度,当!的值来判别精度,当xk/k!10-6即可认为达到即可认为达到了精度要求了精度要求n界面设计界面设计n用标签控件用标签控件Label1、Label2、Label3分别显示分别显示e、e的指数、的指数、计算结果计算结果n按钮按钮Command1用来输入用来输入x的值并产生计算结果的值并产生计算结果 !.! 3! 2132nxxxxn16nPrivate Sub Command1_Click( )n Dim x As Integern x = InputBox(请输入一个正整数请输入一个正整数)n Label2.Caption
15、= xn Label3.Caption = = & e(x)nEnd SubnPrivate Function e(x As Integer) As Doublen Dim result As Double, tmp As Doublen Dim k As Integern result = 1#n k = 1n Don tmp = power(x, k) / fact(k)n k = k + 1n result = result + tmpn Loop Until tmp 0.000001 精度检查精度检查n e = resultnEnd Function 17nPrivate Functi
16、on power(x As Integer, k As Integer) As Variantn Dim i As Integer, p As Variantn p = 1n For i = 1 To kn p = p * xn Next in power = pnEnd FunctionnPrivate Function fact(k As Integer) As Variantn Dim i As Integer, t As Variantn t = 1n For i = 2 To kn t = t * in Next in fact = tnEnd Function 18函数的应用函数的
17、应用n例例7-2 从键盘输入从键盘输入m、n的值,计算组合的值,计算组合C(m,n) ,并显示在窗体上,并显示在窗体上 nC(m,n) n程序代码程序代码nPrivate Sub Command1_Click()n Dim m As Integer, n As Integern m = InputBox(请输入一个整数请输入一个整数)n n = InputBox(请输入一个整数请输入一个整数)n Print C(; m; ,; n; )=;n Print fact(m) / fact(n) / fact(m - n)nEnd SubnPrivate Function fact(n As Int
18、eger) As Longn Dim k As Integer, t As Longn t = 1n For k = 1 To nn t = t * kn Next kn fact = tnEnd Function )!( !nmnm197.3 子过程子过程 n子过程与函数类似,但没有返回值,在子子过程与函数类似,但没有返回值,在子过程的过程体中,不能对过程名进行赋值过程的过程体中,不能对过程名进行赋值 n子过程的定义子过程的定义nPrivate | Public Sub ()n nEnd Sub nSub表示这是一个子过程,其他部分与函数表示这是一个子过程,其他部分与函数定义中的含义相同定义
19、中的含义相同n过程体中可以用过程体中可以用Exit Sub语句强行跳出过程语句强行跳出过程 20子过程的定义子过程的定义n例例7-3n编写一个可以在窗体上输出如图所示图案的过程,图案的行数编写一个可以在窗体上输出如图所示图案的过程,图案的行数作为过程的参数作为过程的参数n过程代码过程代码nSub Triangle(height As Integer)n For i = 1 To heightn Print Tab(height - i + 1); 确定第确定第i行第行第1个字符的输出个字符的输出n For j = 1 To in Print *;n Next jn Printn Next in
20、End Sub 21子过程的调用子过程的调用 n子过程的调用要作为一条语句在程序中出现子过程的调用要作为一条语句在程序中出现 n子过程的调用格式子过程的调用格式nCall ()n或:或:n nCall是是Visual Basic的关键字的关键字n使用使用Call时,参数列表写在括号中,若无参数,括号也省略时,参数列表写在括号中,若无参数,括号也省略n不使用不使用Call时,参数列表没有括号,与子过程名用空格隔开,时,参数列表没有括号,与子过程名用空格隔开,无参数时,只写子过程名无参数时,只写子过程名n例如例如nPrivate Sub Form_Click()n Triangle 8 或或 Ca
21、ll Triangle( 8 )nEnd Sub 22子过程的应用子过程的应用n例例7-4n编写程序,可以用按钮分别把列表框中选中的列表项上移编写程序,可以用按钮分别把列表框中选中的列表项上移一行、下移一行、移到最前面、移到最后面一行、下移一行、移到最前面、移到最后面n分析分析n这这4个按钮的功能都是把选中的列表项移到另一个位置,不个按钮的功能都是把选中的列表项移到另一个位置,不同的是目标位置的索引值不同同的是目标位置的索引值不同n使用同一个子过程使用同一个子过程MoveItem来实现列表项的移动,列表项来实现列表项的移动,列表项的原位置和目标位置的索引值作为参数传给过程的原位置和目标位置的索
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件第7章 过程 教学 课件
限制150内