4选择型程序设_jwx.pptVIP

  • 1
  • 0
  • 约1.59万字
  • 约 46页
  • 2016-12-04 发布于河南
  • 举报
4选择型程序设_jwx

第 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)

1亿VIP精品文档

相关文档