用流程圖描述算法

課程導言

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

 

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

1、從生活中認識流程圖

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

                                             

0033.png

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

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

000999.jpg

 

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

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

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

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

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

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

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

2、認識流程圖的符號

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

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

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

blob.png

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等軟件

   blob.png                                          

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

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

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

blob.png

圖4  Visio2013可繪製的圖表類型

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

blob.png

圖5 Visio2013類別選擇頁

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

blob.png

圖6 創建基本流程圖

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

blob.png

圖7 流程圖繪圖頁面

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

blob.png

圖8 繪製開始符號

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

blob.png

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

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

blob.png

圖10 繪製流程圖判斷符號

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

blob.png

圖11 繪製判定流程否分支

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

blob.png

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

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

blob.png

圖13 繪製輸出/輸出符號

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

blob.png

圖14 繪製流程結束符號

 

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

 

■ 課程小結

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

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

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

 

■ 思考與練習

1. 思考一個求三個數最大值的算法,算法步驟通過流程圖繪製出來。

作業要求:接受用戶輸入的三個數值,求出最大值,將計算結果輸出到顯示器。

2. 請給出第一篇思考與練習第4題算法的流程圖描述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章