肆、程式設計流程
由前面的單元說明可了解,要指揮電腦工作必須透過電腦的程式來轉達;也學習到在設計程式時,應該考量的一些條件和因素。而程式設計的目的,一般是利用電腦來發展研究工具和解決問題,因此在設計的過程中,可按下列步驟來處理:
一、分析問題和需求
當問題或需求產生時,須先認清問題的癥結,對症下藥後,才能夠解決問題和需求。同樣地,在撰寫程式之前,必須對問題詳細的研究與探討,確認該問題應採用何種電腦軟硬體來作業,蒐集完整的相關資料後,經過徹底分析,來找出該問題的最佳解決方法。
二、設計演算法(Algorithm)
問題分析結束後,若是簡單容易的問題,可以「流程圖(Flow Chart)」將解決問題的步驟繪出(範例一),再依流程圖的程序來撰寫程式即可。遇到複雜的問題時,可用流程圖和演算法語言相互搭配。「演算法」就是為解決某一問題的一系列有次序、明確的步驟。
一個好的演算法應該具備下列幾個要件:
(一)有限性:
要花有限的步驟內解決問題。(二)明確性:
每個步驟都必須很清楚地表達出來。(三)有效性:
必須能在有限的時間內完成。(四)輸入資料:
包含零個或一個以上的輸入資料。(五)輸出資料:
至少產生一個輸出,即為結果的呈現。透過流程圖標準的符號,程式設計人員可在撰寫程式前,先決定解決問題的步驟和流程,並以流程圖的形式畫出。而流程圖是用各種標準圖形符號,以圖表和箭頭的方向,來說明解決問題的程序和方法。
三、撰寫程式
以流程圖定義解決問題的步驟以後,程式設計人員我根據流程圖的步驟,撰寫程式的指今,並檢查程式敘述的語法是否正確,處理的流程步驟是否和流程圖中的設計相同,經過反覆修改更正後,進行編輯撰寫程式,然後將編輯的程式儲存成檔案。程式檔案的內容如未經編譯時,稱為「原始程式(Source Program)」或「原始碼(Source Code)」。
四、電腦封原始程式的處埋
將產生的原始程式進行處理,依照先後順序可分為下列步驟:
(一)編譯(Compile)
由「編譯程式(Compiler)」將原始程式翻譯成機器碼,依程式語法正確與否,可能產生的情形如下:
1.程式內有語法錯誤(Syntax Error)編譯後會將原始程式印出(Source Listing),並指出語法錯誤的敘述,產生診斷報表(Diagnostic Report),程式設計人員必須按指示修改錯誤之處,再重新處理。
2.程式語法完全正確
原始程式係由高階語言組成,若語法完全正確,經編譯後會產生機器語言,稱之為「目的程式(Object Program)」或「目的碼(Object Code)」。
(二)執行(Execute)
編譯完成的目的程式可交給電腦執行,並得到預期的結果。
(三)除錯(Debug)
若執行的結果與預期的結果不同,表示程式的處理過程不完全正確,在編譯階段中,編譯程式會找出所有語法不符的錯誤敘述,但無法找出程式不正確的邏輯設計,如:程式設計人員將「Y+6」誤寫為「Y-6」,此種錯誤是程式邏輯不正確,而且只有花執行時,才會出現的錯誤,這就稱為「邏輯錯誤」。找出邏輯錯誤並加以改正的步驟稱為「除錯」,這種錯誤很難確定在什麼地方發生,所以除錯往往需要靠程式設計人員的耐心和經驗。
(四)測試(Test)
一個正確的程式,必須在任何狀況下,都能得到正確的結果,程式設計人員必須準備各種測試資料,以確定程式是否完全正確。因此,選用的測試資料必須周全,如果程式在任何狀況下都與預期結果相符,那麼這個程式必然是萬無一失。