- 1800
- 0
- 约4.33千字
- 约 9页
- 2019-07-07 发布于江苏
- 举报
软件工程-程序流程图
2009年10月15日 星期四 下午 12:06
4.5.1程序流程图
程序流程图独立于任何一种程序设计语言,比较直观、清晰,易于学习
掌握。但流程图也存在一些严重的缺点。例如流程图所使用的符号不够规范,
常常使用一些习惯性用法。特别是表示程序控制流程的箭头可以不受任何约
束,随意转移控制。这些现象显然是与软件工程化的要求相背离的。为了消
除这些缺点,应对流程图所使用的符号做出严格的定义,不允许人们随心所
欲地画出各种不规范的流程图。例如,为使用流程图描述结构化程序,必须
限制流程图只能使用图3.25所给出的五种基本控制结构。
图4.3 流程图的基本控制结构
任何复杂的程序流程图都应由这五种基本控制结构组合或嵌套而成。作为上述五种控制结构相互组合和嵌
套的实例,图示给出一个程序的流程图。图中增加了一些虚线构成的框,目的是便于理解控制结构的嵌套
关系。显然,这个流程图所描述的程序是结构化的。
4.5.2 N-S图
Nassi和Shneiderman 提出了一种符合结构化程序设计原则的图形描述工具,叫做盒图,也叫做N-S
图。为表示五种基本控制结构,在N-S图中规定了五种图形构件。参看图4.5。
为说明N-S图的使用,仍用图4.4给出的实例,将它用如图4.6所示的N-S图表示。
如前所述,任何一个N-S图,都是前面介绍的五种基本控制结构相互组合与嵌套的结果。当问题
很复杂时,N-S图可能很大。
图4.5 N-S图的五种基本控制结构
图4.6 N-S图的实例
4.5.3 PAD
PAD是Problem Analysis Diagram的缩写,它是日本日立公司提出,由程序流程图演化来的,用结构化程
序设计思想表现程序逻辑结构的图形工具。现在已为ISO认可。
PAD也设置了五种基本控制结构的图式,并允许递归使用。
图4.7 PAD的基本控制结构
做为PAD应用的实例,图4.8给出了图4.4程序的PAD表示。PAD所描述程序的层次关系表现在纵线上。每
条纵线表示了一个层次。把PAD图从左到右展开。随着程序层次的增加,PAD逐渐向右展开。
PAD的执行顺序从最左主干线的上端的结点开始,自上而下依次执行。 每遇到判断或循环,就自左而右进
入下一层,从表示下一层的纵线上端开始执行,直到该纵线下端,再返回上一层的纵线的转入处。如此继
续,直到执行到主干线的下端为止。
图4.8 PAD实例
4.5.4 判定表
当算法中包含多重嵌套的条件选择时,用程序流程图、N-S图或PAD都不易清楚地描述。然而,判定表却能
清晰地表达复杂的条件组合与应做动作之间的对应关系。仍然使用图4.4的例子。为了能适应判定表条件
取值只能是T和F的情形,对原图稍微做了些改动,把多分支判断改为两分支判断,但整个图逻辑没有
改变。见图4.9。
与图3.31表示的流程图对应的判定表如图3.32所示。在表的右上半部分中列出所有条件,T表示该条
件取值为真,F表示该条件取值为假,空白表示这个条件无论取何值对动作的选择不产生影响。在判定
表右下半部分中列出所有的处理,画Y表示要做这个动作,空白表示不做这个动作。判定表右半部的每
一列实质上是一条规则,规定了与特定条件取值组合相对应的动作。
图4.9 不包含多分支结构的流程图实例
4.5.5 PDL(Program Design Language)
PDL是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪码。一般地,
伪码的语法规则分为外语法和内语法。外语法应当符合一般程序设计语言常用语句的语法规则;而内
语法可以用英语中一些简单的句子、短语和通用的数学符号,来描述程序应执行的功能。
使用PDL语言,可以做到逐步求精:从比较概括和抽象的PDL程序起,逐步写出更详细的更精确的描述。
PDL就是这样一种伪码。它具有严格的关键字外语法,用于定义控制结构
和数据结构,同时它的表示实际操作和条件的内语法又是灵活自由的,可
使用自然语言的词汇。下面举一个例子,来看PDL的使用。 从上例可以
看到,PDL
原创力文档

文档评论(0)