网站大量收购闲置独家精品文档,联系QQ:2885784924

4选择型程序设计jwx.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 4 章 选择型程序设计 4.1 算法和算法的表示 解决问题确定的方法和有限的步骤 “一个算法,就是一个有穷规则的集合,其中之规则规定了一个解决某一特定类型的问题的运算序列。” 对同一个问题,可有不同的解题方法和步骤 算法决定了程序的质量 算法的要素 两要素: 基本功能操作 + 控制结构 算法的基本特征 算法 对处理问题的过程的描述 算法的基本特征 有穷性 确定性 有效性 有零个或多个输入 有一个或多个输出 数据结构 对这个过程中所涉及的数据的描述 算法举例 算法的表示 可用不同的方法表示算法,常用的有: 自然语言 传统流程图 结构化流程图 伪代码 PAD图 用流程图表示算法 美国国家标准化协会 ANSI(American National Standard Institute) 规定了一些常用的流程图符号 用流程图表示算法 结构化程序设计方法 程序设计的基本目标是用算法对问题的原始数据进行处理,从而获得所期望的效果。但这仅仅是程序设计的基本要求。要全面提高程序的质量,提高编程效率,使程序具有良好的可读性、可靠性、可维护性以及良好的结构,编制出好的程序来。 程序的三种基本结构 顺序结构 程序的三种基本结构 选择结构 程序的三种基本结构 循环结构 三种基本结构的共同特点 (1)只有一个入口; (2)只有一个出口; (3)结构内的每一部分都有机会被执行到; (4)结构内不存在“死循环”(无终止的循环)。 结构化程序设计方法 结构化程序设计方法是公认的面向过程编程应遵循的基本方法和原则。结构化程序设计方法主要包括: ①以三种基本的程序控制结构的组合来编制程序,从而使程序具有良好的结构; ②程序设计自顶而下; ③用结构化程序设计流程图表示算法。 else总是和它上面离它最近的未配对的if配对 例4-10 闰年判断算法 /*功能:说明if语句的嵌套格式和用法。*/ #include stdio.h void main() { int year,leap; printf(Please input the year:); scanf(%d,year); if (year % 4!=0) leap=0; else if (year % 100 != 0) leap=1; else if (year%400!=0) leap=0; else leap=1; if (leap) printf(%d is a leap year.\n,year); else printf(%d is not a leap year.\n,year); } 利用逻辑运算能描述复杂条件的特点,可将上述程序优化如下: #include stdio.h void main() { int year; printf(Please input the year:); scanf(%d,year); if (( year % 4 == 0 year % 100 != 0 ) || ( year % 400 == 0 )) printf(%d is a leap year.\n,year); else printf(%d is not a leap year.\n,year); } 课堂练习 [1]阅读下列程序,回答问题: #include stdio.h void main() { int a,b,m,n; scanf(“%d, %d”,a, b); m=1; n=1; if (a0) m=m+n; if (ab) n=2 * m; else if (a==b) n=5; else n=m+1; printf(“m=%d, n=%d\n”, m,n); } [案例4.4.1] 求一元二次方程ax2+bx+c=0的解(a≠0)。 /*功能:求一元二次方程的解。*/ #include math.h main() { float a,b,c,disc,x1,x2,p,q; scanf(“%f,%f,%f”, a, b, c); disc=b*b-4*a*c; if (fabs(disc)=1e-6) /*fabs():求绝对值库函数*/ printf(“x1=x2=%7.2f\n”, -b/(2*a) ); /*输出两个相等的实根

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档