「一圖勝過千言萬語」,看圖會意往往能收事半功倍之效,而所謂流程圖(flowchart)就是利用各種方塊圖形、線條及箭頭等符號來表達問題的解決問題的步驟及進行的順序;是演算法的一種表示方式。一般而言,從這些符號本身的形狀,就可以看出記載資料的媒體,使用機器的種類、處理的方法及工作程序等特殊意義;此外,在符號內也可以加入一些運算式或說明文字,增加它的可讀性。
流程圖可分為系統流程圖及程式流程圖兩類。系統流程圖(system flowchart)用以描述整個工作系統中,各單位之間的作業關係,如圖2.1所示。程式流程圖(program flowchart)以表示程式中的處理過程,是流程圖中較常用者,因此以介紹程式流程圖為主。
圖2.1系統流程圖範例
有關流程圖符號,為便於流通閱讀,目前所採用的是美國國家標準學會(ANSI)於1970年公佈的流程圖符號。現將較常用者依次列示如表2.1:
表2.1流程圖符號及意義
一般而言,要繪製一個好的流程圖,必須符合下面幾個原則:
流程圖必須使用標準符號,便於閱讀和研討分析。
每一流程中的文字力求簡潔、扼要,而且明確可行。
繪製方向應由上而下,自左到右。
流程線條避免太長或交叉,可多用連接符號。
演算法的設計
基本上,演算法的設計必須滿足下列準則:
- 輸入資料:明確指出程式中,要輸入哪些資料,如何輸入。
- 輸出結果:至少輸出一個以上的輸出結果。
- 明確性:所描述的程序是必須明確可行。
- 有限性:必須限定在有限數目的步驟內完成工作。
- 有效性:每一個步驟都可以用有效的指令表達出來。
一般而言,任何問題的演算法不外乎:(1)輸入資料、(2)處理資料、(3)輸出結果三大步驟。舉例說明如下:
例2.2-1 試寫出1×2×3×....×N之演算法則。
解:第一步:輸入資料
(1)設積之變數為S,並定其初值為1,即S=1 。
(2)設乘數之變數為I,並定其初值為1,即I=1 。
(3)由鍵盤輸入乘數的終值為N。
第二步:處理資料
(1)將原來的積S乘以I之存入新的積S,即S=S*I 。
(2)將乘數1進1,即I=I+1 。
(3)判斷I是否大於N值,若是,則跳至“第三步”,否則回到(1)繼續處理。
第三步:輸出結果
(1)將運算結果S,依規定格式顯示於螢幕。
(2)工作結束。
例2.2-2 依據下列條件,以流程圖方式,設計一個計算電費的演算法。
(1) 若用電在100度以內,每度3元。
(2) 100度以上,超過的部份每度4元。
解:如圖2.2所示。
圖2.2 例2.2-2之解 圖2.3 例2.2-3之解
例2.2-3 畫一流程圖說明輸入A、B、C三種,而輸出為最大值的演算法。
解:如圖2.3所示。