C程序设计谭浩强_算法.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C 语言程序设计(第二版) 2. 三种基本结构 Bohra 和 Jacopini 提出了以下三种基本结 构: 顺序结构、选择结构、循环结构 用这三种基本结构作为表示一个良好算法 的基本单元。 C 语言程序设计(第二版) 三种基本结构的图示: 顺序结构 选择结构 C 语言程序设计(第二版) 循环 结构的图示: 当型 (While 型 ) 循环结构 直到型 (Until 型 ) 循环 C 语言程序设计(第二版) 三种基本结构的共同特点: (1) 只有一个入口。 (2) 只有一个出口。( 请注意: 一个菱形判断 框有两个出口,而一个选择结构只有一个出 口。不要将菱形框的出口和选择结构的出口 (3) 结构内的每一部分都有机会被执行到。 (4) 结构内不存在“死循环” ( 无终止的循环 ) 。 C 语言程序设计(第二版) 图中没有一条从 入口到出口的路 径通过 A 框 不正确的流程表示: 流程内的死循环 C 语言程序设计(第二版) 小结: ? 由三种基本结构顺序组成的算法结构 ,可以解决任何复杂的问题。由基本 结构所构成的算法属于“结构化”的 算法,它不存在无规律的转向,只在 本基本结构内才允许存在分支和向前 或向后的跳转。 C 语言程序设计(第二版) 扩展: ? 只要具有上述四 个特点的都可以 作为基本结构。 可以自己定义基 本结构,并由这 些基本结构组成 结构化程序。 此图符合基本结构的特点 C 语言程序设计(第二版) 这是一个多分支 选择结构,根据表 达式的值决定执行 路线。虚线框内的 结构是一个入口一 个出口,并且有上 述全部的四个特点 。由此构成的算法 结构也是结构化的 算法。可以认为这 是由三种基本结构 所派生出来的。 C 语言程序设计(第二版) 2.4.4 用 N-S 流程图表示算法 1973 年美国学者 I.Nassi 和 B.Shneiderman 提出了一种新的流程图形式。在这种流程图 中,完全去掉了带箭头的流程线。全部算法 写在一个矩形框内,在该框内还可以包含其 它的从属于它的框,或者说,由一些基本的 框组成一个大的框。这种流程图又称 N--S 结 构化流程图。 C 语言程序设计(第二版) N-S 流程图用以下的流程图符号: (1) 顺序结构 (2) 选择结构 (3) 循环结构 C 语言程序设计(第二版) 用三种 N-S 流程图中的基本框,可以组成复杂 的 N-S 流程图。图中的 A 框或 B 框,可以是一个 简单的操作,也可以是三个基本结构之一。 A 框可以是一个选择结构 B 框可以是一个循环结构 C 语言程序设计(第二版) 例 2.11 将例 2.1 的求 5! 算法用 N-S 图表示 C 语言程序设计(第二版) 例 2.12 将例 2.2 的算法用 N-S 图表示。( 打印 50 名学 生中成绩高 于 80 分的学 号和成绩) 没有输入数据 C 语言程序设计(第二版) 例 2.12 将例 2.2 的算法用 N-S 图表示。( 打印 50 名学 生中成绩高 于 80 分的学 号和成绩) 有输入数据 C 语言程序设计(第二版) 例 2.13 将例 2.3 判定闰 年的算 法用 N-S 图表示 C 语言程序设计(第二版) 例 2.14 将例 2.4 的算 法用 N-S 图表示 100 1 99 1 ...... 4 1 3 1 2 1 1 ? ? ? ? ? ? C 语言程序设计(第二版) 例 2.15 将例 2.5 判别 素数的算法用 N-S 流程图表示。 传统流程图分析: 出口 1 出口 2 此图不符合基本结构特点! 由于不能分解为三种基本结 构,就无法直接用 N--S 流 程图的三种基本结构的符号 来表示。因此,应当先作必 要的变换。 C 语言程序设计(第二版) 例 2.15 将例 2.5 判别 素数的算法用 N-S 流程图表示。 传统流程图变换为: 一个出口 C 语言程序设计(第二版) 用 N-S 流 程 图 表 示 : C 语言程序设计(第二版) N-S 图表示算法的优点 ? 比文字描述直观、形象、 易于理解; 比传统流程图紧凑易画。尤其是它废除 了流程线,整个算法结构是由各个基本 结构按顺序组成的, N--S 流程图中的 上下顺序就是执行时的顺序。用 N--S 图表示的算法都是结构化的算法,因为 它不可能出现流程无规律的跳转,而只 能自上而下地顺序执行。 C 语言程序设计(第二版) 小结: ? 一个结构化的算法是由一些基本结构顺序 组成的。在基本结构之间不存在向前或向 后的跳转,流程的转移只存在于一个基本 结构范围之内 ( 如循环中流程的跳转 ) ;一 个非结构化的算法可以用一个等价的结构 化算法代替,其功能不变 。如果一个算 法不能分解为若干个基本结构,则它必然 不是一个结构化的算法。

文档评论(0)

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

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

1亿VIP精品文档

相关文档