经典c语言课件---第2节_算法.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 主要内容 2.1 算法的概念 2.2 简单算法举例 2.3 算法的特性 2.4 怎样表示一个算法 2.5 程序化设计方法 上述四个方面中: 算法是灵魂; 数据结构是加工对象; 语言是工具; 编程需要采取合适的方法。 算法解决"做什么"和"怎么做"的问题。 程序中的按一定顺序列出的操作语句,就是算法的体现。 通过本门课,大家学会使用c语言的语法编写不太复杂的c程序。 算法的概念 用计算机解决问题的步骤,即计算机算法。 例2.2 有50个学生,要求将他们之中成绩在80分以上者打印出来。 闰年的条件: 能被4整除,但不能被100整除的年份; 能被100整除,又能被400整除的年份; S1: 2000→y S2: 若y不能被4整除,则输出y“不是闰年”, 然 后转到S6 S3: 若y能被4整除,不能被100整除,则输 出y“是闰年”,然后转到S6 S4: 若y能被100整除,又能被400整除,输 出y“是闰年” 否则输出y“不是闰年”, 然后转到S6 S5: 输出y“不是闰年”。 S6: y+1→y S7: 当y≤2500时, 返回S2继续执行,否则, 结束。 例2.4 求 算法的特性 有穷性:一个算法应包含有限的操作步骤而不能是无限的 确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的 输入:有零个或多个输入 输出:有一个或多个输出 有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果 小结: 流程图是表示算法的较好的工具。一个流程图包括以下几部分 : (1)表示相应操作的框; (2)带箭头的流程线; (3)框内外必要的文字说明。 算法的表示 用自然语言表示 用流程图表示(传统流程图和N-S图) 用伪代码表示 用计算机语言表示 结构化程序的三种基本结构: 顺序、选择、循环结构 (一)用自然语言表示算法 上节中讨论的例1和例2的算法是用自然语言写的。 自然语言指人们日常使用的语言,如汉语、英语等。 用自然语言表示算法的特点:通俗易懂,但不严谨,容易产生歧义。 除非问题很简单,一般不用自然语言描述算法。 (二) 用流程图表示算法 流程图采用一些图形框表示算法要表述的各种操作。 美国国家标准化协会ANSI规定了一些常用的流程图符号: 起止框 处理框 输入输出框 流程线 或 判断框 连接点 注释 例1的算法用流程图来表示 例2的算法用流程图来表示 (三)三种基本结构 顺序结构: (三)三种基本结构 选择结构 (三)三种基本结构 循环结构(当型---while型) (三)三种基本结构 循环结构(直到型---until型) (四)结构化程序设计方法 三种基本结构的共同点: 只有一个入口; 一个出口; 结构内每一部分都有机会被执行。 结构内不存在"死循环"。 如条件永远成立时,就成了"死循环" 已经证明,用上述三种基本结构顺序组成的算法结构,可以解决任何复杂的问题。 由基本结构构成的算法属于"结构化"的算法 只要符合上述的四个特点的结构,都称为基本结构。 对例1算法的流程图的结构化分析 对例2算法的流程图的结构化分析 (五)用N-S流程图表示算法 用基本结构的组合表示算法,从而去掉了流程线。避免了随意的跳转。 1973年两名美国学者提出了一种新的流程图形式,并用二人名字的第一个字母组合命名了该流程图。即N-S流程图,也称盒图。 三种基本结构的表示: 前面的算法用N-S流程图来表示 N-S图表示算法的优点 比文字描述直观、形象、 易于理解;比传统流程图紧凑易画。尤其是它废除了流程线,整个算法结构是由各个基本结构按顺序组成的,N--S流程图中的上下顺序就是执行时的顺序。用N--S图表示的算法都是结构化的算法,因为它不可能出现流程无规律的跳转,而只能自上而下地顺序执行。 小结: 一个结构化的算法是由一些基本结构顺序组成的。在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构范围之

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档