- 1
- 0
- 约6.57千字
- 约 54页
- 2019-11-06 发布于广东
- 举报
图中没有一条从入口到出口的路径通过A框 不正确的流程表示: 流程内的死循环 小结: 由三种基本结构顺序组成的算法结构,可以解决任何复杂的问题。由基本结构所构成的算法属于“结构化”的算法,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。 扩展: 只要具有上述四个特点的都可以作为基本结构。可以自己定义基本结构,并由这些基本结构组成结构化程序。 此图符合基本结构的特点 这是一个多分支选择结构,根据表达式的值决定执行路线。虚线框内的结构是一个入口一个出口,并且有上述全部的四个特点。由此构成的算法结构也是结构化的算法。可以认为这是由三种基本结构所派生出来的。 2.4.4 用N-S流程图表示算法 既然各基本结构之间是顺序组成的,那么基本结构之间的流程线就多余了。 1973年美国学者I.Nassi和B.Shneiderman提出了一种新的流程图形式。在这种流程图中,完全去掉了带箭头的流程线。全部算法写在一个矩形框内,在该框内还可以包含其它的从属于它的框,或者说,由一些基本的框组成一个大的框。这种流程图又称N--S结构化流程图。 N-S流程图用以下的流程图符号: (1)顺序结构 (2)选择结构 (3)循环结构 用三种N-S流程图中的基本框,可以组成复杂的N-S流程图。图中的A框或B框,可以是一个简单的操作,也可以是三个基本结构之一。 A框可以是一个选择结构 B框可以是一个循环结构 例2.11 将例2.1的求5!算法用N-S图表示 1→t 2→i 当i≤5 t*i→t i+1→i 输出t 例2.14 将例2.4的算法用N-S图表示 例2.13 将例2.3判定闰年的算法用N-S图表示 N-S图表示算法的优点 比文字描述直观、形象、易于理解;比传统流程图紧凑易画。尤其是它废除了流程线,整个算法结构是由各个基本结构按顺序组成的,N--S流程图中的上下顺序就是执行时的顺序。用N--S图表示的算法都是结构化的算法,因为它不可能出现流程无规律的跳转,而只能自上而下地顺序执行。 小结: 一个结构化的算法是由一些基本结构顺序组成的。在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构范围之内(如循环中流程的跳转);一 个非结构化的算法往往可以用一个等价的结构化算法代替,其功能不变 。 2.4.5 用伪代码表示算法 概念:伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。 特点:它如同一篇文章一样 ,自上而下地写下来。每一行(或几行)表示一个基本操作。它不用图形符号,因此书写方便 、格式紧凑,也比较好懂,也便于向计算机语言算法(即程序)过渡。 用处:适用于设计过程中需要反复修改时的流程描述。 开始 置t的初值为1 置i的初值为2 当i=5,执行下面操作: 使t=t×i 使i=i+1 {循环体到此结束} 输出t的值 结束 也可以写成以下形式: BEGIN{算法开始} 1?t 2 ? i while i≤5 {t×i ?t i+1 ? i} print t END{算法结束} 例2.16 求5!。用伪代码表示算法: 2.4.6 用计算机语言表示算法 概念:用计算机实现算法。计算机是无法识别流程图和伪代码的。只有用计算机语言编写的程序才能被计算机执行。因此在用流程图或伪代码描述出一个算法后,还要将它转换成计算机语言程序。 特点:用计算机语言表示算法必须严格遵循所用的语言的语法规则,这是和伪代码不同的。 用处:要完成一件工作,包括设计算法和实现算法两个部分。设计算法的目的是为了实现算法。 #include stdio.h void main( ) {int i,t; t=1; i=2; while(i=5) { t=t*i; i=i+1; } printf(″%d\n″,t); } 例 2.20 将例2.16表示的算法(求5!)用C语言表示。 应当强调说明:写出了C程序,仍然只是描述了算法,并未实现算法。只有运行程序才是实现算法。应该说,用计算机语言表示的算法是计算机能够执行的算法。 2.5 结构化程序设计方法 一个结构化程序就是用高级语言表示的结构化算法。用三种基本结构组成的程序必然是结构化的程序,这种程序便于编写、便于阅读、便于修改和维护。 结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。 结构化程序设计方法的基本思路是:把一个复杂问题的求
原创力文档

文档评论(0)