簡介

流程圖是描述演算法的工具之一。人教版高中數學課本上稱其為「程序框圖」。它是一種用規定的圖形、指向線及文字說明來準確、直觀地表示演算法的圖形。

目前最常用的流程圖的符號由美國國家標準學會(American National Standards Institute, ANSI)於20世紀60年代規範標準,1970年,國際標準化組織(International Organization for Standardization, ISO)採納了ANSI制定的符號。目前的標準於1985年修改。

流程圖的基本符號

如果不包括流程線,有四大最基本的符號:

終端框(起止框):符號為膠囊狀矩形。表示一個演算法的開始或結束。上面的文字一般只是「開始」或「結束」,也可以是觸發演算法開始的操作或者是提交、傳值等將值傳給下一個演算法的操作。

終端框

輸入、輸出框:符號為平行四邊形。表示一個演算法輸入和輸出的信息。一般來說文字的開頭要註明「輸入」或「輸出」。

輸入、輸出框

處理框(執行框):符號為矩形。表示一個賦值、計算等操作。文字註明具體操作。

處理框

判斷框:符號為菱形。表示判斷某條件是否成立。一般來說,它有兩個分支,條件成立與否之後的流程在分支線處標明「是」「否」或「Y」「N」。對於不是判斷某條件是否成立,而是判斷某個表達式的值的情況(如C、Javascript的switch語句),目前沒有規定的畫法。我一般的做法是在分支處標明值。

判斷框

流程線(指向線):流程圖各符號之間以有向單向線連接。線一般要求橫平豎直,可以有若干個90°的轉彎。流程線盡量不要交叉,當兩條流程線不得已而交叉時,將其中一條流程線的交叉處用圓弧隔開。標準規定,如果不是從上到下、從左到右,流程線的箭頭是必需的。但是,一般來說,在任何情況下都要畫出流程線的箭頭。

流程線

此外還有一些不太常用的符號:

連接點/連接符/頁面內引用:符號為圓形。用於將流程圖中的各個元素連接起來,可以在流程圖過於複雜、流程線過長或可能會發生混淆的情況下使用。

連接點

具體操作是:流程圖分裂開來,分裂時通常從流程圖的某一條流程線處分開,並在此流程線處標註分裂號,同時在另一流程圖的入口位置標註同樣的分裂號,以表示兩個流程圖在此標號處連接。如圖:

連接點用例

跨頁引用/頁面外引用:符號為上面為方的五邊形。當流程圖太長以至於需要斷開成多頁,可以在前頁的結尾和後頁的開頭插入。我沒找到它的詳細用法,可能和連接點的用法相似。事實上也有人使用連接點執行上述職能。

跨頁引用
跨頁引用用例

注釋:如圖所示,為塊做注釋。

注釋

子流程/子程序/預定義流程:符號為左右各有一條豎線的矩形。這種符號一般用於比較龐大的工程中,用以分割基本功能。

子流程

此外還有一些極少用的符號,這裡就不再贅述。一般來說,瞭解上面的符號,95%以上的流程圖就能夠掌握了。

流程圖的畫法

一般來說,流程圖是從上到下、從左到右畫的。豎版和橫版都可以,但豎版更為常見。

為了美觀大方,更能體現流程,流程圖應該條理層次清晰,各塊不重疊、大小和間距盡量相同。流程線盡量不交叉,橫平豎直。

其實,在上面的「連接點用例」中,我們已經看到了一個流程圖的例子。即使我沒有教後面的內容,我想你們也能夠比較清楚它的執行過程了吧(sqrt(x)是x的算術平方根,*是乘號,/是除號)。

一般來說,如果在紙上畫流程圖,最好事先打草稿,以免構圖時遇到困擾。在電腦上畫流程圖有(但不限於)以下軟體或網站:

  • Microsoft Visio(Windows,流程圖只是其功能之一)
  • OmniGraffle(macOS)
  • yEd(跨平臺)
  • Inkscape(跨平臺,流程圖只是其功能之一)
  • ProcessOn(網站)

我用過Visio和ProcessOn,感覺還行。

Visio
ProcessOn

此外,一些使用Markdown的平臺(如Typora)有基於flowchart.js、mermaid的流程圖引擎,可以通過特定的語法生成流程圖。

我在這裡以flowchart為例:

st=>start: 開始
e=>end: 結束
input=>inputoutput: 輸入a、b
output=>inputoutput: 輸出max
cond1=>condition: a ≥ b?
op1=>operation: max = a
op2=>operation: max = b

st->input->cond1
cond1(yes)->op1->output
cond1(no)->op2->output
output->e

flowchart.js生成結果

參考資料

  • Flowchart - Wikipediaen.wikipedia.org/wiki/F
  • 普通高中課程標準實驗教科書(必修) 數學(A版) 必修3. 人民教育出版社
  • 5.2.2 使用流程圖描述法 - 51CTO.COMbook.51cto.com/art/2014
  • 繼續在單獨的頁面上的流程圖 - Visio

    support.office.com/zh-c

推薦閱讀:

相關文章