子程序的递归与嵌套.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第1页,共27页,星期日,2025年,2月5日1、复习函数与过程——子程序子程序的定义定义位置如何定义?子程序的调用在何处调用?如何调用?参数的传递值传递,地址传递变量的作用域全局,局部子程序如何返回值到调用处函数通过函数名带回值子程序可通过变量参数和全局变量的方式带回值到调用处第2页,共27页,星期日,2025年,2月5日【例1】:输入一个正整数,如果是回文素数则输出“Yes”,否则输出“No”【分析】定义两个并列关系的函数,分别判断一个数是否为素数和是否为回文数教材P93例5-11第3页,共27页,星期日,2025年,2月5日注意:1)内、外层子程序不得相互交叉,内层必须完全嵌套在外层之中;2)一般情况下,在子程序内部需要使用的变量应在子程序的内部进行定义。外层子程序不能访问内层子程序所定义的变量。【例2】:求组合数的和。vars:real;functioncnm(n,m:integer):real;functionfac(k:integer):longint;vari:integer;t:real;begint:=1;fori:=2tokdot:=t*i;fac:=t;end;begincnm:=fac(n)/(fac(m)*fac(n-m));end;begins:=cnm(6,3)+cnm(9,5);writeln(‘s=’,s:8:2);end.2、子程序的嵌套:第4页,共27页,星期日,2025年,2月5日functionfac(k:integer):longint;vari:integer;t:real;begint:=1;fori:=2tokdot:=t*i;fac:=t;end;functioncnm(n,m:integer):real;begincnm:=fac(n)/(fac(m)*fac(n-m));end;functionfac(k:integer):longint;Forward;functioncnm(n,m:integer):real;begincnm:=fac(n)/(fac(m)*fac(n-m));end;functionfac(k:integer):real;vari:integer;t:real;begint:=1;fori:=2tokdot:=t*i;fac:=t;end;超前引用第5页,共27页,星期日,2025年,2月5日【例3】:求组合数()/7!的和。vars:real;functionfac(k:integer):longint;vari:integer;t:longint;begint:=1;fori:=2tokdot:=t*i;fac:=t;end;functioncnm(n,m:integer):real;begincnm:=fac(n)/(fac(m)*fac(n-m));end;begins:=cnm(6,3)+cnm(9,5);writeln(‘s=’,(s/fac(7)):8:2);end.学校举行晚会,要从M个学生中选N个学生到舞台上表演一个游戏,问有多少种选择方法。这是数学中的组合运算,可用下列公式计算:第6页,共27页,星期日,2025年,2月5日3.递归调用:①递归的定义:Pascal语言中,如果在一个函数、过程等的定义或说明内部又直接或间接地出现有对自身的引用,则称它们是递归的或者是递归定义的。例如:在数学上,所有偶数的集合可递归地定义为:0是一个偶数;一个偶数和2的和是一个偶数。可见,仅需两句话就能定义一个由无穷多个元素组成的集合。②递归的实现:通过函数或过程的调用来实现。函数或过程直接调用其自身,称为直接递归;函数或过程间接调用其自身,称为间接递归。直接递归间接递归第7页,共27页,星期日,2025年,2月5日递归应用【例5】、植树节那天,有五位同学参加

文档评论(0)

xiaolan118 + 关注
实名认证
文档贡献者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档