函数和过程优秀课件.ppt
《函数和过程优秀课件.ppt》由会员分享,可在线阅读,更多相关《函数和过程优秀课件.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、函数和过程第1页,本讲稿共28页函数v如果我们设计一个子程序,每调用一次产生一个结果,那么可以把这个子程序设计成函数。一、标准函数:abs(x);sqrt(x);chr(n);ord(c)length(s);copy(s,n,m);第2页,本讲稿共28页二、允许用户根据需要自定义函数一)自定义函数的一般格式为:function函数名(形式参数表):函数函数类型;函数首部局部变量说明部分;begin语句系列;函数名:=表达式函数体end;函数首部:1、在同一程序中,函数名不能与其他变量名重名。2、函数中的形式参数接受调用函数时所传入的值,用来参与函数中的运算3、函数的类型就是函数值的类型。函数体
2、:函数体与程序体相似由说明部分和执行部分组成1、说明部分变量是局部变量,这些变量只在函数内使用,与函数体外同名变量无关2、函数执行部分begin开头end结束,但end后是;3、函数体内至少要给函数名赋一次值,这样调用时返回函数值第3页,本讲稿共28页二)调用函数主程序通过调用函数得到函数的运算结果。调用函数的一般格式为:函数名(实在参数表)1.调用函数时,函数名后面圆括号内的参数称为实在参数。调用时即称为实在参数。调用时即把这些实际值传送给函数形参表中的相应形参变量,因此实参的个数和类型应与形参一一对应,并且要有确定的。2.形参不是实际存在的变量,它不占用内存单元,实参是在调用函数是所用的变
3、量,调用函数时形参才开辟单元,并将实参的值赋给形参,一旦结束形参就释放内存单元。3.函数不是单独的语句,只能作为运算赋值或出现在表达式中。第4页,本讲稿共28页例1:编程找出由键盘任意输入五个整数中的最大整数。解:设输入的五个整数为n1、n2、n3、n4、n5,为了便于处理,引入一个中间变量t1,按如下步骤处理:令t1=n1;将t1与n2比较,将两者中较大的数放入t1;将t1与n3比较,将两者中较大的数放入t1;将t1与n4比较,将两者中较大的数放入t1;将t1与n5比较,将两者中较大的数放入t1;经过以上5步处理后,t1即为5个数中最大者。从上面规划的步骤看来,从步骤从上面规划的步骤看来,从
4、步骤到步骤到步骤需处理的需处理的目标是相同的,因此我们可以设计一段子程序目标是相同的,因此我们可以设计一段子程序Max(x1,x2),以找出,以找出x1和和x2中最大的值并返回。中最大的值并返回。第5页,本讲稿共28页ProgramExam41_a;Varn1,n2,n3,n4,n5,t1:integer;Functionmax(x1,x2:integer):integer;BeginIfx1x2thenmax:=x1Elsemax:=x2;End;BeginWrite(Input5numbers:);Readln(n1,n2,n3,n4,n5);t1:=n1;t1:=max(t1,n2);t
5、1:=max(t1,n3);t1:=max(t1,n4);t1:=max(t1,n5);Writeln(Maxnumber:,t1);End.第6页,本讲稿共28页从上例看出,引入函数实际上是将一个复杂的问题划分成若干个易于处理的子问题,将编程化简的一种有效办法,而化简的方法是多种多样的,如前面已经做过求三个数中的最大数,所以可定义一个专门求三个数中最大数的函数(Max)。第一次用这个函数求出n1,n2,n3三个数中的最大数t1;第二次调用这个函数求出t1与n4,n5三个数中的最大数,也就是前三个数的最大数(已在t1中)和后面二个数再求一次,就得到五个数的最大数。因此,需要两次使用“求三个数中
6、的最大数”,步骤如下:调用函数Max(n1,n2,n3),求出n1,n2,n3中的最大者t1;调用函数Max(t1,n4,n5),求出t1,n4,n5中的最大者t2;输出最大数t2。第7页,本讲稿共28页ProgramExam41_b;Varn1,n2,n3,n4,n5,t1:integer;functionMax(x1,x2,x3:integer):integer;自定义函数自定义函数MaxVarXX:integer;函数内部变量说明函数内部变量说明begin函数体函数体ifX1X2thenXX:X1elseXX:X2;ifX3XXthenXX:X3;Max:XXend;Begin主程序主程
7、序Write(Input5numb:);Readln(n1,n2,n3,n4,n5);输入五个数输入五个数t1:Max(n1,n2,n3);用函数求用函数求n1,n2,n3的最大数的最大数t1:Max(n4,n5,t1);用函数求用函数求n4,n5,t1的最大数的最大数Writeln(MaxNumber:,t1);ReadlnEnd.第8页,本讲稿共28页例2求任意输入的五个自然数的最大公约数。解:自定义一个专门求两自然数的最大公约数的函数GCD;调用自定义函数,第一次求前两个数的最大公约数;从第二次开始,用每次求得的最大公约数与下一个数再求两个数最大公约数,直到最后。本题共四次“求两个数的最
8、大公约数”,设输入的五个自然数分别是a1,a2,a3,a4,a5,采用如下步骤:求a1,a2两个数的最大公约数存入a1;求a1,a3两个数的最大公约数存入a1;求a1,a4两个数的最大公约数存入a1;求a1,a5两个数的最大公约数存入a1;输出a1,此时的a1已是五个数的最大公约数。第9页,本讲稿共28页ProgramExam42;Vara1,a2,a3,a4,a5:integder;functionGCD(x,y:integer):integer;自定义函数自定义函数Varn:integer;beginWhilexmody0dobeginn:=x;x:=y;y:=nmodyend;GCD:=
9、yend;Begin主程序主程序Write(input5Numper:);readln(a1,a2,a3,a4,a5);输入五个数输入五个数Write(,a1,a2,a3,a4,a5,)=);a1:GCD(a1,a2);调用函数调用函数GCDa1:GCD(a1,a3);a1:GCD(a1,a4);a1:GCD(a1,a5);Writeln(a1);readlnEnd.第10页,本讲稿共28页例3:求图中五边形面积,边长及对角线长a1a7由文件输入。提示:利用三角形面积公式(海伦公式)s=sqrt(p*(p-a)*(p-b)*(p-c)a4a5a1a3a2a7a6vara1,a2,a3,a4,a
10、5,a6,a7,s:real;functionarea(a,b,c:real):real;varp:real;beginp:=(a+b+c)/2;area:=sqrt(p*(p-a)*(p-b)*(p-c);end;beginassign(input,1.txt);assign(output,2.txt)reset(input);readln(a1,a2,a3,a4,a5,a6,a7);s:=area(a4,a5,a7)+area(a1,a6,a7)+area(a2,a6,a3);writeln(s:8:2);end.第11页,本讲稿共28页习题1.数学上把从1开始的连续自然数相乘叫做阶乘。例
11、如把1*2*3*4*5称作5的阶乘,记为5!。编写一个求n!的函数,调用此函数求5!+8!2.求从键盘输入的五个自然数的最小公倍数。第12页,本讲稿共28页过程过程自定义函数通常被设计成求一个函数值,一个函数只能得到一个运算结果。若要设计成能得到若干个运算结果,或完成一系列处理,就需要自定义“过程”来实现。一)标准过程:vreadln(x);vwriteln(x);vval(s,x,e);vstr(x,s);vdelete(s,n,m);第13页,本讲稿共28页二)自定义过程的一般格式如下:Procedure过程名(形式参数表);过程首部局部变量说明部分;begin语句部分;过程体部分end;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 过程 优秀 课件
限制150内