Jackson图
虽然程序中实际使用的数据结构种类繁多,但是他们的数据元素彼此之间的逻辑关系却只有顺序、选择和重复3类,因此,逻辑数据结构也只有这3类。
1.顺序结构
顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。图6.8是表示顺序结构的Jackson图的一个例子。
2.选择结构
选择结构的数据包含两个或多个数据元素,每次使用这个数据时,按一定条件从这些数据元素中选择一个。图6.9是表示三个中选一个结构的Jackson图。
3.重复结构
重复结构的数据,根据使用时的条件由一个数据元素出现0次或多次构成。图6.10是表示重复结构的Jackson图。
改进的Jackson图
传统的杰克森图的缺点是用这种图形工具表示选择或重复结构时选择条件或循环结束条件不能直接在图上表示出来,影响了图的表达能力也不容易直接把图翻译成程序,此外空间连线为直线,不宜在行式打印机上输出,为了解决上述问题,建议使用改进的杰克森图。
(a)顺序结构,BCD中,任何一个都不能是选择出现或重复出现的数据元素
(b)选择结构,S面括号中的数字i是分支条件的编号。
(c)可选结构,a或者是元素b或者不出现。
(d)重复结构,循环结束条件的编号为i。
Jackson方法
杰克森结构程序设计方法基本由下述5个步骤组成。
(1)分析并确定输入和输出数据的逻辑结构,并用杰克森图描绘这些数据结构。
(2)找出输入数据结构和输出数据结构中有对应关系的数据单元。所谓有对应关系是指有直接的因果关系在程序中可以同时处理的数据单元。
(3)用下述三条规则从描绘数据结构的杰克森图中导出描绘程序结构的杰克森图。
第一,为每对有对应关系的数据单元,按照他们在数据结构中的层次,在程序结构图中相应层次画一个处理框。
第二,根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为他们画上对应的处理框。
第三,根据输出数据结构中剩余的每个数据单元所处的层次,在结构程序图中相应层次分别为它们画上对应的处理框。
(4)列出所有操作和条件,包括分支条件和循环结束条件。并把它们分配到程序结构图的适当位置。
(5)用伪码表示程序。
三种结构对应的伪码
顺序结构
//顺序结构对应的伪码,其中seq和end是关键字。
A seq
B
C
D
A end
选择结构
//选择结构对应的伪码,其中select or 和end是关键字,cond1,2,3分别是执行BCD的条件
A select cond1
B
A or cond2
C
A or cond3
D
A end
循环结构
//循环结构对应的伪码,其中iter,until,while和end是关键字,cond是条件
A iter until(或while) cond
B
A end