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
