过程与函数优秀课件.ppt
《过程与函数优秀课件.ppt》由会员分享,可在线阅读,更多相关《过程与函数优秀课件.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、过程与函数第1页,本讲稿共25页提出函数与过程的理由提出函数与过程的理由 计算机程序设计和问题求解的最基本思想是:将一计算机程序设计和问题求解的最基本思想是:将一计算机程序设计和问题求解的最基本思想是:将一计算机程序设计和问题求解的最基本思想是:将一个大的复杂的问题分解成更小、更简单和更容易处理个大的复杂的问题分解成更小、更简单和更容易处理个大的复杂的问题分解成更小、更简单和更容易处理个大的复杂的问题分解成更小、更简单和更容易处理的子问题。在的子问题。在的子问题。在的子问题。在PascalPascal语言提供了函数和过程,使得问语言提供了函数和过程,使得问语言提供了函数和过程,使得问语言提供了
2、函数和过程,使得问题的分解和处理更加方便。题的分解和处理更加方便。题的分解和处理更加方便。题的分解和处理更加方便。函数或过程:将对应于一个子问题求精的语句写在一起,函数或过程:将对应于一个子问题求精的语句写在一起,函数或过程:将对应于一个子问题求精的语句写在一起,函数或过程:将对应于一个子问题求精的语句写在一起,作为一个单独的程序模块。作为一个单独的程序模块。作为一个单独的程序模块。作为一个单独的程序模块。通常通过子程序定义抽象操作,通常通过子程序定义抽象操作,实现程序的模块化。实现程序的模块化。第2页,本讲稿共25页一、函数一、函数 1。定义。定义函数说明一般形式:函数说明一般形式:函数说明
3、一般形式:函数说明一般形式:FUNCTION FUNCTION ():):):):;BEGINBEGIN END END;注意注意注意注意:(1 1)函数名由合法的标识符指出)函数名由合法的标识符指出)函数名由合法的标识符指出)函数名由合法的标识符指出;参数表由形式参数名表和说明参数的类型标识符组成参数表由形式参数名表和说明参数的类型标识符组成参数表由形式参数名表和说明参数的类型标识符组成参数表由形式参数名表和说明参数的类型标识符组成;函数函数函数函数类型即结果类型类型即结果类型类型即结果类型类型即结果类型,由类型标识符指明。由类型标识符指明。由类型标识符指明。由类型标识符指明。(2 2)形式
4、参数类似于数学函数中的自变量)形式参数类似于数学函数中的自变量)形式参数类似于数学函数中的自变量)形式参数类似于数学函数中的自变量,为函数子程序提供初始量。在一个形式参数表中,可以为函数子程序提供初始量。在一个形式参数表中,可以为函数子程序提供初始量。在一个形式参数表中,可以为函数子程序提供初始量。在一个形式参数表中,可以有多个参数。逗号用来分开同类型的各个参数名,分号用来分开不同类型的参数。有多个参数。逗号用来分开同类型的各个参数名,分号用来分开不同类型的参数。有多个参数。逗号用来分开同类型的各个参数名,分号用来分开不同类型的参数。有多个参数。逗号用来分开同类型的各个参数名,分号用来分开不同
5、类型的参数。例如:(例如:(例如:(例如:(x,y:real;m,n:integerx,y:real;m,n:integer)(3 3)说明部分对仅说明部分对仅在函数中使用的量加以说明在函数中使用的量加以说明,可以包括函数所需要的常量、说明类型、变量说明,可以包括函数所需要的常量、说明类型、变量说明,也可以包括其他函数或过程说明,一般称之为也可以包括其他函数或过程说明,一般称之为局部变量局部变量。函数也可以没有说明。函数也可以没有说明。(4 4)函数体)函数体)函数体)函数体:(:(函数部分的程序体函数部分的程序体函数部分的程序体函数部分的程序体)其中至少要有一个给函数名赋值的语句,并以分号结
6、束函数体。其中至少要有一个给函数名赋值的语句,并以分号结束函数体。其中至少要有一个给函数名赋值的语句,并以分号结束函数体。其中至少要有一个给函数名赋值的语句,并以分号结束函数体。第3页,本讲稿共25页2.函数调用函数调用一般形式:一般形式:一般形式:一般形式:()解释:函数调用必须出现在表达式中。函数每次调用,是将解释:函数调用必须出现在表达式中。函数每次调用,是将解释:函数调用必须出现在表达式中。函数每次调用,是将解释:函数调用必须出现在表达式中。函数每次调用,是将每个实在参数的值赋给对应的形式参数,然后由函数完成规定每个实在参数的值赋给对应的形式参数,然后由函数完成规定每个实在参数的值赋给
7、对应的形式参数,然后由函数完成规定每个实在参数的值赋给对应的形式参数,然后由函数完成规定的处理,并回送处理结果。的处理,并回送处理结果。的处理,并回送处理结果。的处理,并回送处理结果。注意:注意:注意:注意:实在参数与形式参数的个数要相同,一一对应,类型上赋值实在参数与形式参数的个数要相同,一一对应,类型上赋值实在参数与形式参数的个数要相同,一一对应,类型上赋值实在参数与形式参数的个数要相同,一一对应,类型上赋值相容。相容。相容。相容。实在参数可以是表达式。实在参数可以是表达式。实在参数可以是表达式。实在参数可以是表达式。若没有形式参数,则若没有形式参数,则若没有形式参数,则若没有形式参数,则
8、 略去实在参数和括号。略去实在参数和括号。略去实在参数和括号。略去实在参数和括号。第4页,本讲稿共25页例例例例:编写一个求K!的函数,调用此函数计算:(0nm=0)and(nm)and(mn2thenlarger:=n1elselarger:=n2;end;largerbeginlargest:=larger(larger(f1,f2),f3);计算和返回f1,f2,f3的最大值end;largestlargest的函数说明指明了largest函数和它的子函数larger的结果值类型都为整数。子函数larger的结果值由赋值语句larger:=n1(或larger:=n2)确定;larges
9、t函数的结果值由赋值语句largest:=larger(larger(f1,f2),f3)确定。第6页,本讲稿共25页例例:求正整数A和B之间的完全数(AB).分析:所谓完全数是指它的小于该数本身的因子之和等于它本身,如6123,6即是一个完全数。因此我们可定义一个布尔型函数perfect(x),若x是完全数,其值为TURE,否则为FALSE。整个程序算法如下:1fori:=AtoBdo2ifperfect(i)thenwriteln(i);vari,a,b:integer;begin主程序开始write(Inputa,b:);repeat输入0a0)and(b0)and(ab);writel
10、n(Listofallperfectnumbers:);从a到b逐个判断,是完全数则打印出来fori:=atobdoifperfect(i)thenwriteln(i);end.functionperfect(x:integer):boolean;vark,sum:integer;begin累加x所有小于本身的因数sum:=1;fork:=2toxdiv2doifxmodk=0thensum:=sum+k;判断x是否是完全数perfect:=x=sum;将结果赋值给函数名end;endofperfect第7页,本讲稿共25页二、过程二、过程 1。定义。定义过程说明一般形式:过程说明一般形式:过
11、程说明一般形式:过程说明一般形式:PROCEDURE PROCEDURE (););););BEGINBEGIN END END;注意:注意:注意:注意:(1 1)形式参数表有两种格式:)形式参数表有两种格式:)形式参数表有两种格式:)形式参数表有两种格式:数值形参数值形参数值形参数值形参和以和以和以和以VARVAR开头的开头的开头的开头的变量形参变量形参变量形参变量形参。(2 2)过程体中没有也不可以有给过程名赋值的语句,返回值由变量形参提供。)过程体中没有也不可以有给过程名赋值的语句,返回值由变量形参提供。)过程体中没有也不可以有给过程名赋值的语句,返回值由变量形参提供。)过程体中没有也不
12、可以有给过程名赋值的语句,返回值由变量形参提供。2.2.过程调用一般形式:过程调用一般形式:过程调用一般形式:过程调用一般形式:()解释:与数值形参对应的实在参数可以是表达式,与变量形参对应的实在参数必须是变量,解释:与数值形参对应的实在参数可以是表达式,与变量形参对应的实在参数必须是变量,解释:与数值形参对应的实在参数可以是表达式,与变量形参对应的实在参数必须是变量,解释:与数值形参对应的实在参数可以是表达式,与变量形参对应的实在参数必须是变量,而不能是一般的表达式。而不能是一般的表达式。而不能是一般的表达式。而不能是一般的表达式。第8页,本讲稿共25页例:定义一个求三数中最大值的过程例:定
13、义一个求三数中最大值的过程procedurelargest(f1,f2,f3:integer;varir:integer);计算和返回f1,f2,f3的最大值irvarg:integer;procedurelarger(n1,n2:integer;varr:integer);largest的子过程,计算和返回n1,n2的最大值rbeginifn1n2thenr:=n1elser:=n2;end;largerbeginlarger(f1,f2,g);求出f1,f2中的最大值glarger(g,f3,ir);求出g,f3中的最大值Ir,作为f1,f2,f3中的最大值返回end;largestLar
14、gest有四个类型为整型的形式参数:f1,f2,f3和Ir,前三个参数f1,f2,f3为调用者向被调用者传入的三个要求比较大小的整数,这三个参数仅用作传入数据,不传出计算结果,因此称为值参;第四个参数Ir用来向调用者传送三数中的最大值,这种用作传出计算结果的参数称为变量参数,由var标志。Largest使用的子过程larger有三个类型为整型的形式参数:n1,n2和r,前二个参数n1,n2为过程Largest向它传入的二个要求比较大小的整数,属于值参;第三个参数r用来向过程Largest传送n1和n2的最大值,属于变量参数。第9页,本讲稿共25页例:例:输出以下一个图形:*分析:我们前面学习可
15、用的二重循环打印出上图形,现我们设置一个过程打印出N个连续的*号。programex7_2;vari:integer;proceduredraw_a_line(n:integer);该过程打印出连续n个星号,并换行varj:integer;beginforj:=1tondowrite(*);writeln;end;beginfori:=1to6dodraw_a_line(i);调用过程,第I行打印i个连续星号end.第10页,本讲稿共25页例例 说明一个求两个整数的最大公约数和最小公倍数的过程说明一个求两个整数的最大公约数和最小公倍数的过程Procedure mab(a,b:integer;v
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 过程 函数 优秀 课件
限制150内