1. 程式人生 > >如何畫程式流程圖

如何畫程式流程圖

看PST程式碼很多天了,裡面的讀寫流程看懂了,又忘了,再看,再忘,歸咎於筆記的不完善與可讀性差, 今天開始學習流程圖.

下面介紹一下標準程式流程圖的符號及使用約定

一,引言

程式流程圖(Progran flowchart)作為一種演算法表達工具,早已為工國計算機工作者和廣大計算機使用者十分熟悉和普通使用.然而它的一個明顯缺點在於缺乏統一的規範化符號表示和嚴格的使用規則.最近,國家標準局批准的國家標準(GB1525-89)<<資訊處理--資料流程圖,程式流程圖,系統流程圖,程式網路圖和系統資源圖的檔案編制符號及約定>>為我們推薦了一套標準化符號和使用約定.由於該標準是與國際標準化組織公佈的標準ISO5807--85 Information processing--Documentation symbols and comventions for data,program and system flowcharts,program network charts and system resources charts是一致的,這裡將其中程式流程圖部分摘錄出來,並做了一些解釋,供讀者參考.

根據這一標準畫出的程式流程圖我們稱為標準流程圖.

二,符號

程式流程圖表示了程式的操作順序.它應包括:

(1)指明實際處理操作的處理符號,包括根據邏輯條件確定要執行的路徑的符號.

(2)指明控制流的流線符號.

(3)便於讀寫程式流程圖的特殊符號.

clip_image002

以下給出標準流程圖所用的符號及其簡要說明,請參看圖1.

圖1 標準程式流程圖符號

1.資料---- 平行四邊形表示資料,其中可註明資料名,來源,用途或其它的文字說明.此符號並不限定資料的媒體.

2.處理---- 矩形表示各種處理功能.例如,執行一個或一組特定的操作,從而使資訊的值,資訊形世或所在位置發生變化,或是確定對某一流向的選擇.矩形內可註明處理名或其簡工功能.

3.特定處理---- 帶有雙縱邊線的矩形表示已命名的特定處理.該處理為在另外地方已得到詳細說明的一個操作或一組操作,便如子例行程式,模組.矩形內可註明特定處理名或其簡要功能.

4.準備---- 六邊形符號表示準備.它表示修改一條指令或一組指令以影響隨後的活動.例如,設定開關,修改變址暫存器,初始化例行程式.

5.判斷----- 菱形表示判斷或開關.菱形內可註明判斷的條件.它只有一個入口,但可以有若干個可供選擇的出口,在對符號內定義折條件求值後,有一個且僅有一個出口被啟用.求值結果可在表示出口路徑的流線附近寫出.

clip_image004

6.迴圈界限---- 迴圈界限為去上角矩形表示年界限和去下角矩形的下界限構成,分別表示迴圈的開始和迴圈的結束. 圖2 兩種迴圈表示

一對符號內應註明同一迴圈識別符號.可根據檢驗終止迴圈條件在迴圈的開始還是在迴圈的末尾,將其條件分別在上界限符內註明(如:當A>B)或在下界限符內註明(如:直到C<D).圖2給出了當終止條件成立時進入迴圈和直到終止條件成立退出迴圈的兩種不同的表示.

7.連線符---- 圓表示連線符,用以表明轉向流程圖的它處,或從流程圖它處轉入.它是流線的斷點.在圖內註明某一識別符號,表明該流線將在具有相同識別符號的另一連線符處繼續下去(參看以下關於連線符使用的約定).

8.端點符---- 扁圓形表示轉向外部環境或從外部環境轉入的端點符.例如,程式流程的起始或結束,資料的外部使用起點或終點.

clip_image006

9.註解符---- 註解符由縱邊線和虛線構成,用以標識註解的內容.虛線須連線到被註解的符號或符號組合上.註解的正文應靠近縱邊線.請參看圖3給出的註解符使用示例.

圖3 註解符的使用

10.流線 ----- 直線表示控制流的流線.關於流線上表示流向的箭頭,其使用方法見後面的約定.

11.虛線 ---- 虛線用於表明被註解的範圍或連線被註解部分與註解正文,也參看圖3.

clip_image008

12.省略符 ---- 若流程圖中有些部分無需給出符號的具體形式和數量,可用三點構成的省略符.省略符應夾在流線符號之中或流線符號之間 ,參看圖4.

圖4 省略符的使用

clip_image010

13.並行方式 ---- 一對平行線表示同步進行兩個或兩個以上並行方式的操作.並行方式的示例如圖5,圖中在處理A完成後才能進行處理C,D和E;同樣,處理F要等處理B,C,D完成以後進行.但處理C可以處理D開始和(或)結束前開始和(或)結束.

圖5 並行方式示例

三,使用約定

關於流程圖符號的使用約定,簡要地說明以下幾點:

1.圖的佈局

流程圖中所用的符號應該均心地分佈,連線保持合理的長度,並儘量少使用長線.

2.符號的形狀

流程圖中多數符號內的空白供標註說明性文字.使用各種符號應注意符號的外形和各符號大小的統一,避免使符號變形或各符號大小比例不一.

3.符號內的說明文字

應使符號內的說明文字儘可能簡明.通常按從左向右和從上向下方式書寫,並與流向無關.如果說明文字較多,符號內寫不完,可使用註解符.若註解符干擾或影響到圖形的流程,應將正文寫在另外一頁上,並註明引用符號.

4.符號識別符號

clip_image012

為符號規定識別符號是為了便於其它檔案引用該符號.便如,程式清單中引用到流程圖中的特定符號.符號識別符號一般寫在符號的左上角,參看圖6(a).

圖6 符號識別符號和符號描述符

5.符號描述符

為便於進一步理解符號的功能,可標註符號描述符.通常描述符寫在符號的右上角,如圖6(b)所示.

6.詳細表示

clip_image014

在處理符號或資料符號中畫一橫線,表明該符號在同一檔案集中的其它地言有更為詳細的表示.橫線在符號內靠近項端,詳細表示的識別符號寫在符號內橫線之上,見圖7(a).端點符用作詳細表示的開始符號和結束符號,在此符號中應給出加橫線符號中的識別符號,見圖7(b).

圖7 加橫線符號及其詳細表示

7.流線

(1)標準流向與箭頭的使用

流線的標準流向是從左到右和從上到下.沿標準流向的流線可不用箭頭指示流向,但沿非標準流向的流線應用箭頭指示充向.

(2)流線的交叉

應當儘量避免流線的交叉.即使出現流線的交叉,交叉的流線之間也沒有任何邏輯關係,並不對流向產生任何影響,如圖8(a)所示.

(3)流線的彙集

clip_image016

兩條或多條進入線可以彙集成一條輸出線,此時各連線點應要互錯工以提高清晰度,並用箭頭表示流向,如圖8(b)所示.

圖8 漢線的交叉與流線的彙集

(4)符號流線進出

一般情況下,流線應從符號的左邊或項端進入,並從右邊或底端離開.其進出點均應對準符號的中心.

(5)連線符

為避免出現流線交叉和使用長線,或某個流程圖能在另一頁上延續,可用連線符將流線截斷.截斷始端的連線符稱為出口連線符,載斷末端的連線符稱為入口連線符.兩連線符中用同一識別符號.

clip_image018

換頁截斷可用與連線符相連的註解符表示,如圖9所示.

圖9 出口連線符與入口連線符

8.多出口判斷的兩種表示方法

(1)直接從判斷符號引出多條流線,如圖10(a)所示.

clip_image020

(2)從判斷符號引聘條流線,再從它引出多條流線,如圖10(b)所示.

圖10 多出口判斷

clip_image022

多出口判斷的每個出口都應標有相應的條件值,用以反映它所引出的邏輯路徑,如圖11所示.

圖11 多出口判斷出口處標出條件值

clip_image024

四, 示例
clip_image002[4]