函数与过程答辩.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数和过程;一、函数(把完成某种计算的子程序定义为函数,每调用 一次产生一个结果);例1:设计一个求累加和的函数。输入一个正整数,然后计算从1到此数的累加和。;例如:要调用上面的函数,主程序如下: Var x:integer; begin readln(x); write(sum(x)); End.;例2:计算如图示多边形的面积;Function area(a,b,c:real):real; Var p:real; Begin p:=(a+b+c)/2; area:=sqrt(p*(p-a)*(p-b)*(p-c)); End; Var b1,b2,b3,b4,b5,b6,b7,s:real; Begin readln(b1,b2,b3,b4,b5,b6,b7); s:=area(b1,b5,b6)+area(b2,b6,b7)+area(b3,b4,b7); Writeln(‘s=‘,s:8:2); End.;二、过程;procedure fiveline; var i:integer; begin for i:=1 to 5 do writeln end;;过程调用是一个独立的语句,当执行到该语句时,则将实参中的信息传送 给相应的形参(若有的话),然后转去执行过程说明中的语句,执行完毕 后返回到调用位置;Procedure sjx(x:integer); Var I,j:integer; Begin for I:=1 to x do begin for j:=1 to I do write(‘*’); writeln; end; End; Var a:integer; Begin read(a); sjx(a); End.;函数与过程的区别(课本P83-P84);练习1:分别用函数和过程计算S=1/7!+1/9!+1/13!;三、参数传递;形参是值参:过程或函数被调用时,系统为每个值参开辟临时 存储单元,然后将对应实参的值赋给值参。由于值参与实参是 不同的存储单元,所以过程体中对值参的改变不会影响实参, 数据的传送是单向的,当流程返回到调用程序时,值参所占的 存储单元被释放。;例;四、标识符的作用域;五、嵌套;一、教材P94-P96的应用实例要看会。;参考答案: 1、设计一个过程,计算圆的面积。在主程序中输入一个半径值,然后调用该过程,并输出圆的面积。;2、读入正整数n,利用函数求2到n之间所有的素数。;3、编写一个函数,根据参数指定的n,计算出函数值x,;4、在程序中定义一函数digit(n,k),它能分离出整数n从右边数第K个数字,并在主程序中调用此函数。如:digit(31859,3)=8, digit(2076,5)=0;6、向前引用;7、递归;一般来说,递归子程序在调用本身前应有条件语句控制何时继 续递归,何时结束递归,这个条件语句就是递归边界。例如 fac函数体中的“if n=0 then fac:=1”。;练1??快速排序;练2:输入一个十进制的整数(-32767..32767),求相应的二进制、八进制和十六进制的值。;练3:输入一个凸多边形的n个顶点坐标,求凸多边形的面积。;练4:(数据查找)给定一组数据,查找其中一个符合条件的数据。

文档评论(0)

***** + 关注
实名认证
内容提供者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档