定義
計算機語言只是一種工具。光學習語言的規則還不夠,最重要的是學會針對各種類型的問題,擬定出有效的解決方法和步驟即算法。有了正確而有效的算法,可以利用任何一種計算機高級語言編寫程式,使計算機進行工作。因此,設計算法是程式設計的核心。算法圖常用的有流程圖,PAD圖等。
流程圖
定義
流程圖是用規定的圖形,指向線和文字說明來準確、清晰、直觀的來表示算法的圖形。又被稱為流程圖或流程算法圖。
構成
流程圖是由表示相應操作的程式框,帶有箭頭的流程線,程式框內必要的文字說明組成。
表示符號如下:
處理框(矩形框),表示一般的處理功能。
判斷框(菱形框),表示對一個給定的條件進行判斷,根據給定的條件是否成立決定如何執行其後的操作。它有一個入口,二個出口。輸入輸出框(平行四邊形框)。
起止框(圓弧形框),表示算法開始或結束。
連線點(圓圈),用於將畫在不同地方的流程線連線起來。用連線點,可以避免流程
線的交叉或過長,使流程圖清晰。
流程線(指向線),表示流程的路徑和方向。
注釋框,是為了對流程圖中某些框的操作做必要的補充說明,以幫助閱讀算法圖的人更好地理解流程圖的作用。它不是流程圖中必要的部分,不反映流程和操作。
規則
畫流程圖的規則如下:
1、使用標準的框圖符號;
2、流程圖一般按從上到下從左到右的方向畫;
3、起止框是任一流程圖中必不可少的,表示算法的開始和結束;
4、算法框內的文字要簡潔明了;
5、判斷框有一個進入點但有兩個退出點,其他程式框只有一個進入點和退出點。
順序結構
有若干個依次執行的步驟組成,語句與語句之間,框與框之間按
從上到下進行的邏輯結構,我們稱之為順序結構。
例如:尺規作圖,確定線段一個五等分點。
步驟:1、從線段的左端A點出發做一條射線;
2、在射線上取點C,得到單位線段AC;
3、在射線上做線段CE=AC;EF=AC;FG=AC;GD=AC;
4、連線DB;
5、過C做BD的平行線,交線段AB於M,即為五等分點。
選擇結構
在算法的流程中,先根據條件作出判斷,再決定執行哪一種操作的結構稱為選擇結構。
選擇結構的兩種模式如下圖:
循環結構
循環結構:又稱重複結構,即反覆執行某一部分的操作。有兩類循環結構:
當型(While):當給定的條件p成立時,執行A框操作,然後再判斷p條件是否成立。如果仍然成立,再執行A框,如此反覆直到p條件不成立為止。此時不執行A框而脫離循環結構。
直到型(Until):先執行A框,然後判斷給定的p條件是否成立。如果p條件不成立,則再執行A,然後再對p條件作判斷。如此反覆直到給定的p條件成立為止。此時脫離本循環結構。
PAD圖
定義
PAD是問題分析圖(Problem Analysis Diagram)的英文縮寫,由日本的二村良彥等人提出的一種主要用於描述軟體詳細設計的圖形表示工具。與流程圖一樣,PAD圖也只能描述結構化程式允許使用的幾種基本結果。發明以來,已經得到一定程度的推廣。它用二維樹形結構的圖表示程式的控制流,以PAD圖為基礎,遵循機械的走樹(Tree Walk)規則就能方便地編寫出程式,用這種圖轉換為程式代碼比較容易 。
規則
1、功能域(即,一個特定控制結構的作用域)明確,可以從PAD圖上一眼就看出來。
2、沒有箭頭,不可能任意轉移控制。
3、最左端的縱線是程式主幹線,對應程式的第一層結構;每增一層PAD圖向右擴展一條縱線,幫程式的縱線數等於程式層次數。
4、程式執行:從PAD圖最左主幹線上端結點開始,自上而下、自左向右依次執行,程式終止於最左主幹線。
特徵
1、結構清晰,結構化程度高;
2、易於閱讀
3、、很容易確定局部和全程數據的作用域。
4、很容易表現嵌套關係,也可以表示模組的層次結構。
5、五中基本模式,並允許遞歸使用。
優勢
1、使用表示結構最佳化控制結構的PAD符號所設計出來的程式必然是程式化程式
2、PAD圖所描述的程式結構十分清晰。圖中最左邊的豎線是程式的主線,即第一層控制結構。隨著程式層次的增加,PAD圖逐漸向右延伸,每增加一個層次,圖形向右擴展一條豎線。PAD圖中豎線的總條數就是程式的層次數;
3、用PAD圖表現程式邏輯,易讀、易懂、易記。PAD圖是二維數型結構的圖形,程式從圖中最左邊上端的結點開始執行,自上而下,從左到右順序執行;
4、很容易將PDA圖轉換成高級程式語言源程式,這種轉換可由軟體工具自動完成,從而可省去人工編碼的工作,有利於提高軟體可靠性和軟體生產率。
5、可用於表示程式邏輯,也可用於描述數據結構
6、PAD圖的符號支持自頂向下、逐步求精方法的使用。開始時設計者可以定義一個抽象程式,隨著設計工作的深入而使用“def”符號逐步增加細節,直至完成詳細設計。