第6章 函数与模块化程序设计基础.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文档。上传文档
查看更多

6.3.4递归调用(重点)函数调用函数本身,称为函数的递归调用。递归调用形式如下:1)直接递归voida(){...…a();...…}2)间接递归voida(){...…b();...…}voidb(){.....a();......}*第30页,共45页,星期日,2025年,2月5日用递归算法计算n!讨论: 采用递归的方法计算。n!的递归定义形式的:编程:if(初始条件) 表达式;else递推表达式;1n=0;n=n*(n-1)!n0*第31页,共45页,星期日,2025年,2月5日例程序:#includestdio.hlongfac(unsignedn){longf;if(n==0)f=1;/*递归结束条件*/elsef=n*fac(n-1);returnf;}main(){longy;intn;scanf(“%d”,n);y=fac(n);printf(“%d!=%ld\n”,n,y);}*第32页,共45页,星期日,2025年,2月5日第六章第6章函数与模块化程序设计基础*第1页,共45页,星期日,2025年,2月5日6.1概述6.1.1模块与函数1.功能模块求解较小问题的算法和程序称作“功能模块”,各功能模块可以先单独设计,然后将求解所有子问题的模块组合成求解原问题的程序。“自顶向下”的模块化程序设计方法: 将一个大问题分解成多个解决小问题的模块的设计思想。*第2页,共45页,星期日,2025年,2月5日2.由功能模块组成程序的结构图:主控模块模块1_1模块1_n模块2_1模块2_n模块n_1模块n_n模块1模块2模块n3.函数:完成相对独立功能的程序*第3页,共45页,星期日,2025年,2月5日【例6-1】输入年月日,计算出该日为该年的第几天。主控模块判断闰年求某月的天数输出输入求总天数图6-2程序结构图*第4页,共45页,星期日,2025年,2月5日程序实现:(1)判断闰年。intleap(intyear){intlp;lp=(year%4==0year%100!=0||year%400==0)?1:0;returnlp;}*第5页,共45页,星期日,2025年,2月5日(2)求某月的天数。intmonth_days(intyear,intmonth){intds,d;switch(month){case1:case3:case5:case7:case8:case10:case12:d=31;break;case2:d=leap(year)?29:28;break;default:d=30;}returnd;}*第6页,共45页,星期日,2025年,2月5日(3)求天数和。intdays(intyear,intmonth,intday){inti,ds=0;for(i=1;imonth;i++)ds=ds+month_days(year,i);ds=ds+day;returnds;}*第7页,共45页,星期日,2025年,2月5日4)在主函数中分别调用三个函数。voidmain(){intyear,month,day,t_day;printf(Inputyear-month-day:\n);scanf(%d-%d-%d,year,month,day);t_day=days(year,month,day);printf(%d-%d-%dis%dthdayoftheyear!\n,year,month,day,t_day);}注意: 在完整的程序中,前三个函数应放在main()函数之前。*第8页,共45页,星期日,2025年,2月5日6.1.2模块设计三个原则模块独立。功能独立的子功能模块之间的关系简单使用独立变量模块规模适当分解模块要注意层次对问题抽象化设计时细化*第9页,共45页,星期日,2025年,2月5日6.2函数定

文档评论(0)

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

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档