用流程圖描述算法

文章導讀

【前面瞭解了程序和算法的關係,知道了算法是解決問題的具體方法和步驟,也學會了用文字去描述算法。哪還有沒有其它描述算法的方式呢?畢竟文字看起來比較費勁。流程圖就是一種描述算法的圖形化描述,用流程圖可以清晰地描述出算法的思路和過程。通過本篇的學習,你將瞭解到如何用流程圖來描述算法。】

流程圖是算法的圖形化描述。俗話說:一張圖勝過千言萬語,用流程圖可以清晰地描述出算法的思路和過程。

1、從生活中認識流程圖

說到流程圖,同學們可能會感到比較陌生和不理解,其實在我們生活中,經常會看到流程圖,也會讀懂流程圖,並能按照流程圖的要求去執行流程圖中的各個步驟。例如,我們去圖書館借書就要遵循圖書館制定的流程,當初次使用車站自動售票機購票時,就要仔細看自動購票流程圖。看流程圖的目的,就是讓我們能夠明確每一個步驟,而不會出現差錯。

圖 1 借書與自動售票流程圖

現在家庭中一般都有電冰箱、洗衣機等家用電器,家用電器包裝箱裏面都會附帶使用說明書,使用說明書包含了產品的使用方法、注意事項以及一般故障排除流程等內容,當家用電器發生故障時,可以先根據使用說明書的故障排除流程進行故障檢查,多半故障原因是因使用不當造成的。下圖是某一洗衣機不啓動的故障原因排除流程圖:

圖 2 洗衣機不啓動故障排除流程圖

流程圖明確給出了排除因使用不當原因而造成洗衣機不啓動故障的排查方法和流程,可以參照流程圖給出的步驟,逐步排查洗衣機不能啓動的原因。

按照流程圖給出的步驟進行排查:

第一步需要檢查電源是否接通,如果電源有問題,則解決電源問題後,故障排除。如果電源沒有問題,則進入第二個步驟。

第二步需要檢查洗衣機門是否關嚴,如果洗衣機門沒有關嚴,則關嚴洗衣機門,故障排除。如果洗衣機門已關嚴,則進入第三個步驟。

第三步需要檢查洗衣機進水部分,查看水龍頭是否打開,沒有水壓,洗衣機也不能啓動,如果水龍頭沒有打開,則打開水龍頭,故障排除。如果水龍頭已打開且有水壓,則進入第四個步驟。

第四步需要檢查是否按下了啓動鍵並有蜂鳴聲,如果沒有按下啓動鍵,則按下啓動鍵,故障排除。如果已按下啓動鍵且有蜂鳴聲,則需要給售後服務打電話報修。

2、認識流程圖的符號

前面看了洗衣機故障排除流程圖,同學們一定很奇怪,流程圖的橢圓框、菱形框、平行四邊形、長方形以及帶線的箭頭都表示什麼意義? 畫流程圖是不是可以用其它形狀畫呢?

其實,流程圖是可以允許用其它圖形符號畫的,只要自己能看明白,能記住流程就行。問題是,如果你希望其他人也能看懂你的流程圖,可能就有點麻煩了,你需要給他們解釋你流程圖中採用的每個圖形所表示的含義是什麼,當需要給多個人解釋時,這時你一定在想,如果這些圖形表示的含義他們都知道該多好,就不用我一個個去講,去溝通了。

因此,規範的流程圖可以幫助人們對流程的統一認識,便於溝通和討論,有助於工作效率的提高。它使用一組預定義的符號來說明如何執行特定任務,這些預先定義的符號已經標準化,從而讓全世界的開發人員都可以採用這些符號而不會引起混淆。表 1-1 對流程圖中使用的符號進行了彙總。

3、如何繪製流程圖?

先請同學們思考一個計算長方形面積的問題,並給出算法,用文字描述出來。

問題的解決可分爲下面幾個步驟:

(1)設置 num1 和 num2 兩個變量,接收用戶輸入的長度和寬度,並存儲到 num1 和 num2 兩個變量;

(2)判斷 num1 和 num2 是否大於 0,如果大於 0,繼續下一個步驟,否則提示用戶長度和寬度輸入錯誤,算法結束;

(3)計算 num1 和 num2 的乘積,並將乘積結果存儲到 result 變量;

(4)顯示 result 變量的值到屏幕。

流程圖可以採用多個工具軟件進行繪製,下面所列是常用的繪製流程圖的工具軟件,建議使用 Microsoft Visio 軟件繪製,本課程流程圖採用 Microsoft Visio 2013 軟件繪製,流程圖見圖 2-3。

(1)Microsoft Visio 2010 或更高版本

(2)在線流程圖繪製工具 processon.com

(3)PPT、Word 等軟件

                                             

圖 3 計算長方形面積算法流程

使用 Microsoft Visio 2013 繪製流程圖步驟如下:

(1)Visio 2013 是一款比較強大的畫圖工具,不僅用於軟件、辦公室用圖表,還可以繪製工程圖表,啓動 Visio2013 後,Visio 會展現各種特色的圖表,雙擊圖表,就進入繪製頁面了。如圖 4 所示。

圖 4  Visio2013 可繪製的圖表類型

(2)選擇類別,Visio 進入類別頁面,找到流程圖類別,用鼠標單擊流程圖,進入流程圖選擇頁面。如圖 5 所示。

圖 5 Visio2013 類別選擇頁

(3)在流程圖新建頁面,選擇基本流程圖,用鼠標單擊基本流程圖,在彈出的創建對話框中,單擊創建按鈕,進入繪圖頁面。如圖 6 所示。

圖 6 創建基本流程圖

(4)在繪圖頁面中,左側的是圖形符號窗口,可以在這裏選擇不同的圖形符號拖拽到繪圖區域,右側用灰色線條框住的區域是繪圖區域,如圖 7 所示。

圖 7 流程圖繪圖頁面

(5)繪製流程圖,先從開始符號繪製,在左側符號區域選擇開始 / 結束圖形符號,按下鼠標左鍵,用鼠標拖拽到繪圖區域的適當位置,並輸入 “開始” 文字,如圖 8 所示。

圖 8 繪製開始符號

(6)算法的第一個步驟是接收用戶輸入的長度和寬度,並存儲到 num1 和 num2 變量中,此時要用到輸入 / 輸出符號,在左側符號區域選擇輸入 / 輸出符號,按下鼠標左鍵,用鼠標拖拽到開始符號的下方適當位置,輸入 “接收 num1 和 num2” 內容。並在開始符號和輸入 / 輸出符號之間繪製流程線,流程線的箭頭指向輸入 / 輸出符號。如圖 9 所示。

圖 9 繪製流程圖輸入 / 輸出符號

(7)算法的第二個步驟是判斷輸入的 num1 和 num2 是否大於零,根據判斷情況執行不同的分支。此時要用到判斷符號,在左側符號區域選擇判定符號,按下鼠標左鍵,用鼠標拖拽到輸入 / 輸出符號下方適當位置,並輸入判定內容。如圖 10 所示。

圖 10 繪製流程圖判斷符號

(8)如果 num1 或 num2 小於零,提示用戶輸入錯誤。此時拖拽輸入 / 輸出符號到判定符號的左側適當位置,輸入 “顯示輸入錯誤” 內容,並用流程線連接判定符號和輸入 / 輸出符號,在流程線上標註“否”。如圖 211 所示。

圖 11 繪製判定流程否分支

(9)算法的第三個步驟是,如果 num1 或 num2 大於零,則執行兩數相乘操作。此時應選用流程符號,拖拽流程符號到判定符號的下方適當位置,輸入活動內容,並在判定符號和流程符號之間繪製流程線,流程線上標註 “是”。如圖 12 所示。

圖 12 繪製判定流程 “是” 分支

(10)算法的第四個步驟是將 result 變量輸出到屏幕,此時應選用輸入 / 輸出符號,拖拽輸入 / 輸出符號到流程符號下方的適當位置,並繪製流程線,輸入活動內容。如圖 213 所示。

圖 13 繪製輸出 / 輸出符號

(11)算法流程圖的繪製到此結束,拖拽開始 / 結束符號到繪圖區域適當位置,並在結束符號和 “顯示輸入錯誤” 符號、“顯示 result”符號之間繪製流程線。在 “顯示輸入錯誤” 符號和結束符號之間繪製流程線,主要是算法規定當輸入的 num1 和 num2 小於零時,提醒用戶並退出程序。如圖 214 所示。

圖 14 繪製流程結束符號

使用圖形表示算法是非常好的思路,繪製流程圖的過程就是整理思路的過程。通過繪製流程圖,可以對算法進行一次完整的梳理,及時發現問題,調整思路。流程圖一定要有開始和結束;菱形框表示判斷,判斷必須有兩個分支,或者滿足條件或者不滿足條件;平行四邊形框表示輸入輸出框,用於輸入數據和輸出數據的處理;矩形框表示處理過程,用於數值計算和業務處理;引線表示流程的方向。

文章小結

1. 流程圖是算法的圖形化描述。流程圖用圖形化的方式描述了算法從開始到結束的所有步驟,通過流程圖可以直觀的瞭解算法執行的過程,是人們之間交流算法很重要的圖形化工具。

2. 人們爲了方便地使用流程圖交流算法,而不至於因圖形符號的問題引起對算法過程理解的混淆。人們規定了一組預定義的圖形符號來表示算法的過程,並給出每個圖形符號的說明。標準的流程圖符號包括開始 / 結束符號、輸入 / 輸出符號、流程符號、子流程符號、判斷符號、流程線 6 種圖形符號,用這 6 種圖形符號可以繪製任何類型的流程圖。

3. 繪製流程圖的工具有很多,比較常用的有 Visio、PPT 等工具軟件。繪製流程圖時,必須要有開始和結束,並要遵循流程圖各符號表示的含義。當需要輸入數據或輸出數據時,就要用輸入 / 輸出符號;當需要對條件進行判斷時,就要用判斷符號;當需要執行計算過程時,就要用流程符號。另外,流程線的箭頭指向算法當前步驟的下一個步驟,表示算法執行過程的走向。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Ac66pMv8EacGHRoxjy4mmw