- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
函数进阶和结构化编程I
第 7 章 函数进阶和结构化编程 学习目标 1.掌握源程序结构中函数的组织方法; 2.理解结构化程序设计思想,并能利用它来解决问题; 3. 理解函数嵌套调用的概念,并能熟练利用函数的嵌套调用来解决问题; 4.理解递推、递归及其算法实现; 5.理解编译预处理的概念,能熟练应用宏定义和文件包含; 6.了解用户自定义库模块。 7.1 结构化编程 结构化程序设计(Structured Programming)是一种良好的程序设计技术,它由著名计算机科学家E·W·Dijkstra于1969年提出 7.1.1 自顶向下分析问题 自顶向下分析问题就是把一个较大的复杂问题分解成几个小问题后再解决。 7.1.2 模块化设计 模块化设计时要遵循模块独立性的原则,即模块之间的联系应该尽量简单。具体体现在: 1.一个模块只完成一个指定的功能 2.模块间只通过参数进行调用 3.一个模块只有一个入口和一个出口 4.模块内慎用全局变量 在C语言中,模块一般通过函数来实现,一个模块对应一个函数。 7.1.3 结构化编码 经模块化设计后,每个模块都可以独立编码。编程时应选用顺序、选择和循环3种控制结构,并使程序具有良好的风格。 1.见名知义命名对象名 2.使用注释 3.使程序结构清晰 4.使程序具有良好的交互性 7.2 函数的嵌套调用 例: 设计一个用于计算常用圆形体体积的计算器,该计算器可支持多次反复计算。采用菜单方式输入1或2或3,分别表示需要计算球体、圆柱体和圆锥体的体积,计算时需输入函数所需的相应参数。 #includestdio.h #includemath.h #define PI 3.141592654 void calculate(int); void main(void) { int sel; /* 循环选择计算圆形体的体积,直到输入非1~3数字为止 */ while(1) { printf(\t\t%s,1--ball\n); printf(\t\t%s,2--cylind\n); printf(\t\t%s,3--cone\n); printf(\t\t%s,other--exit\n); printf(\t\tPlease input your selete: ); scanf(%d,sel); if(sel1||sel3) { printf(\n input error\nplease input 1~3\n); break; } else calculate(sel); } } void calculate(int sel) { double vol_ball(void); double vol_cylind(void); double vol_cone(void); switch(sel) { case 1: printf(ball:%.2lf\n,vol_ball()); break; case 2: printf(cylind:%.2lf\n,vol_cylind()); break; case 3: printf(cone:%.2lf\n,vol_cone()); break; } } /* cylind : v=PI*r*r*h */ double vol_cylind() { double r,h; printf(Please input rh:); scanf(%lf%lf,r,h); return PI*r*r*h; } /* cone : v=PI*r*r*h/3.0 */ double vol_cone() { double r,h; printf(Please input rh:); scanf(%lf%lf,r,h); return PI*r*r*h/3.0; } 7.3 递推 7.3.1 递推的一般概念 递推也称为迭代,思路是通过数学推导,将一个复杂的运算化解为若干简单运算的重复执行。 例:通过公式: 计算的近似值,计算过程在所加项的值小于10-10时终止。 #includestdio.h double fun(double); void main( ) { double eps=1e-10,sum; sum=fun(eps); printf(\nPI=%.8lf,sum); } double fun(double eps) { d
您可能关注的文档
最近下载
- DB3201_T 1075—2022紫云英栽培技术规程.pdf VIP
- 高考物理动能与动能定理题20套(带答案)含解析.doc VIP
- 征信电子版PDF个人信用报告简版2024年12月最新版可编辑带水印模板.pdf VIP
- BX系列行星摆线针轮减速机选型手册.pdf VIP
- 2025教师招聘幼教简单100题.pdf VIP
- 一种肠内营养配制装置.pdf VIP
- 特殊作业管理疑难问题解析.pdf
- JC_T 2848-2024《玻璃纤维增强石膏(GRG)装饰制品》.pdf VIP
- 第10课《往事依依》课件(共27张PPT)-2024-2025学年统编版语文七年级上册(2024).pptx VIP
- 外研版(2024)新教材小学三年级英语下册第二单元Unit 2 作业设计方案.docx VIP
文档评论(0)