第三章 結構化程式設計 授課老師:___________
本章學習目標 及使用時機。 2.讓讀者瞭解完成一個專案開發所需要的步驟。 3.讓讀者瞭解如何將使用者的需求,利用流程圖 來呈現。 1.讓讀者瞭解結構化程式設計的三種不同的結構 及使用時機。 2.讓讀者瞭解完成一個專案開發所需要的步驟。 3.讓讀者瞭解如何將使用者的需求,利用流程圖 來呈現。
本章內容 3-2 流程圖的介紹 3-3 結構化程式設計的三種結構 3-4 循序結構(Sequential) 3-5 選擇結構(Selection) 3-6 迴圈結構(Loop)
3-2 流程圖的介紹 初學者在學習程式設計之前,最好先利用流程圖方式來表示問題的步驟,這對於程式邏輯比較容易理解。雖然程式設計時,不一定要畫流程圖,但是當我們遇到比較複雜的問題時,如果沒有事先規劃出解決問題的步驟,很容易產生錯誤,因此筆者非常建議初學者一定要養成繪製流程圖的習慣。
3-2 流程圖的介紹 通常一個較專業的程式設計師,在繪製流程圖時,常利用專業的軟體來製作,例如Microsoft Visio繪圖軟體,它有提供非常多的工具來使用。如圖3-3所示:
3-2.1流程圖常用的符號表(1/3) 當我們想利用電腦程式語言來處理問題時,先要了解問題並想出許多方案來解決問題,並且分析那些資料是要「輸入」,經過「處理」之後,要「輸出」那些結果。因此,我們必須先利用「流程圖」來進行分析與設計,以便快速了解整個程式來解決問題的流程,這對於往後程式在偵錯及維護上有莫大的助益。如表3-1所示。
3-2.1流程圖常用的符號表(2/3)
3-2.1流程圖常用的符號表(3/3)
3-2.2 繪製流程圖的原則(1/3) 1.流程圖必須使用標準符號,便於閱讀和分析。 2.流程圖中的文字力求簡潔、扼要,而且明確可行。 一般而言,要繪製一個好的流程圖,必須符合下面幾個原則: 1.流程圖必須使用標準符號,便於閱讀和分析。 2.流程圖中的文字力求簡潔、扼要,而且明確可行。 3.繪製方向應由上而下,由左至右。 4.流程線條避免太長或交叉,可多用連接符號。
3-2.2 繪製流程圖的原則(2/3) 【實例】 欲設計一個計算國文與英文的平均成績,並依照平均成績來分成五個等級,其所需進行的步驟為何? 【解答】 1.分析及定義問題。 五個等級分別如下: (1)甲等的範圍:90(含)以上。 (2)乙等的範圍:80~89。 (3)丙等的範圍:70~79。 (4)丁等的範圍:60~69。 (5)戊等的範圍:60以下。
3-2.2 繪製流程圖的原則(3/3) 2.畫出整合問題的流程圖或撰寫問題的演算法。如圖3-4所示: 在繪製流程圖時,必須要考慮資料的處理流程,亦即「輸入---處理---輸出」三大步驟。
3-3. 結構化程式設計的三種結構 一、循序結構(Sequential) 二、選擇結構(Selection) 三、迴圈結構(Loop)
3-4. 循序結構 (1/3) 所謂循序結構,是指程式由上而下,依序逐一執行。亦即『程式碼被執行的順序為由上而下,一個敘述接著一個敘述依序執行』。此種結構是結構化程式設計中最基本的結構。如圖3-5所示:
3-4. 循序結構 (2/3)
3-4. 循序結構 (3/3)
3-5 選擇結構 (1/2) 在學會「循序結構」之後,您是否發現程式都是由上而下,逐一執行,但是我們在實務上所面臨的情況,可能會有一些過濾條件,例如老師想要了解那些同學及格與不及格時,如果只利用循序結構時,則只能顯示全班的平均成績,但無法顯示那些同學及格與不及格。如圖3-6所示。那我們就必須要使用「選擇結構」的方式了。如圖3-7所示:
3-5 選擇結構 (2/2)
3-6 迴圈結構(Loop)(1/3) 一般而言,我們可以把一再重複相同的動作,全部叫電腦來幫我們處理,這對電腦而言,是一件非常Easy的事,但對我們人類而言卻是一件苦差事,因此驅使電腦做這樣的事情的方式,就是迴圈(Loop),亦即讓某一段程式反覆執行多次的敘述,我們稱此結構為「迴圈結構」。如果我們想要撰寫一段程式,來輸出1,2,…,100時,怎麼辦?目前最少有兩種方法可以使用。如圖3-8所示:
3-6 迴圈結構(Loop)(2/3) 動作模式: 首先計數變數設定為初值,然後執行迴圈內之敘述後, 「計數變數」將加上“間隔值”,並檢查「計數變數」是否大於“終值”,若超過則跳出迴圈;否則將繼續執行迴圈敘述,直到「計數變數」大於終值為止。
3-6 迴圈結構(Loop)(3/3)