流程图、PAD图和盒图程序流程图程序流程图独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握。但流程图也存在一些严重的缺点。例如流程图所使用的符号不够规范,常常使用一些习惯性用法。特别是表示程序控制流程的箭头可以不受任何约束,随意转移控制。这些现象显然是与软件工程化的要求相背离的。为了消除这些缺点,应对流程图所使用的符号做出严格的定义,不允许人们随心所欲地画出各种不规范的流程图。例如,为使用流程图描述结构化程序,必须限制流程图只能使用图3.25所给出的五种基本控制结构。图4.3流程图的基本控制结构任何复杂的程序流程图都应由这五种基本控制结构组合或嵌套而成。作为上述五种控制结构相互组合和嵌套的实例,图示给出一个程序的流程图。图中增加了一些虚线构成的框,目的是便于理解控制结构的嵌套关系。显然,这个流程图所描述的程序是结构化的。图4.4流程图的基本控制结构4.5.2N-S图Nassi和Shneiderman提出了一种符合结构化程序设计原则的图形描述工具,叫做盒图,也叫做N-S图。为表示五种基本控制结构,在N-S图中规定了五种图形构件。参看图4.5。为说明N-S图的使用,仍用图4.4给出的实例,将它用如图4.6所示的N-S图表示。如前所述,任何一个N-S图,都是前面介绍的五种基本控制结构相互组合与嵌套的结果。当问题很复杂时,N-S图可能很大。图4.5N-S图的五种基本控制结构图4.6N-S图的实例4.5.3PADPAD是ProblemAnalysisDiagram的缩写,它是日本日立公司提出,由程序流程图演化来的,用结构化程序设计思想表现程序逻辑结构的图形工具。现在已为ISO认可。PAD也设置了五种基本控制结构的图式,并允许递归使用。图4.7PAD的基本控制结构做为PAD应用的实例,图4.8给出了图4.4程序的PAD表示。PAD所描述程序的层次关系表现在纵线上。每条纵线表示了一个层次。把PAD图从左到右展开。随着程序层次的增加,PAD逐渐向右展开。PAD的执行顺序从最左主干线的上端的结点开始,自上而下依次执行。每遇到判断或循环,就自左而右进入下一层,从表示下一层的纵线上端开始执行,直到该纵线下端,再返回上一层的纵线的转入处。如此继续,直到执行到主干线的下端为止。图4.8PAD实例