【问题描述】
N-S图,也被称为盒图或NS图(Nassi Shneiderman图)。是结构化编程中的一种可视化建模。1972年,美国学者I.Nassi 和 B.Shneiderman提出了一种在流程图中完全去掉流程线,全部算法写在一个矩形阵内,在框内还可以包含其他框的流程图形式,即由一些基本的框组成一个大的框,这种流程图又称为N-S结构流程图。
依从上到下的设计,待处理的问题会分解成一些较小的副程序,最后只有简单的叙述及控制流程结构,NS图对应了上述的思维,利用嵌套的方块来表示副程序。NS图中没有对应Goto指令的表示,和结构化编程中不使用GOTO的理念一致。NS图的抽象层次接近结构化的代码,若程序重写,NS图就需重新绘制,不过NS图在简述程序及高级设计时相当方便。
NS图几乎是流程图的同构,任何的NS图都可以转换为流程图,而大部分的流程图也可以转换为NS图。其中只有像Goto指令或是C语言中针对循环的break及continue指令无法用NS图表示。
NS图的特点:
1. 功能域(即一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来;
2. 不可能任意转移控制;
3. 很容易明确局部和全局数据的作用域;
4. 很容易表现嵌套关系,也可以表示模块的层次结构。
由于NS图没有箭头,因此不允许随意转移控制。坚持使用NS图作为详细设计的工具,可以使程序员逐步养成用结构化的方式思考问题和解决问题的习惯。
N-S图包括顺序、选择(CASE型是多分钟选择)和循环(一种是while一种是until)三种基本结构。
以C语言描