結構化程序設計
1.什么是結構化程序設計
結構化程序設計是指程序的設計、編寫和測試都采用一種規(guī)定的組織形式進行,這樣,可使編制的程序結構清晰,易于讀懂,易于調(diào)試和修改,充分顯示出模塊化程序設計的優(yōu)點。
2.結構化程序設計的內(nèi)容
結構化程序設計(structured programming)是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。其概念最早由E.W.Dijikstra在1965年提出的,是軟件發(fā)展的一個重要的里程碑。它的主要觀點是采用自頂向下、逐步求精及模塊化的程序設計方法;使用三種基本控制結構構造程序,任何程序都可由順序、選擇、循環(huán)三種基本控制結構構造。結構化程序設計主要強調(diào)的是程序的易讀性。
結構化程序設計在1960年代開始發(fā)展,科拉多·伯姆及朱塞佩·賈可皮尼伯姆于1966年5月在《Communications of the ACM》期刊發(fā)表論文,說明任何一個有goto指令的程序,可以改為完全不使用goto指令的程序,后來艾茲赫爾·戴克斯特拉在1968年也提出著名的論文《GOTO陳述有害論》(Go To Statement Considered Harmful),因此結構化程序設計開始盛行,此概念理論上可以由結構化程序理論所證明,而在實務上,當時也有像ALGOL一樣,有豐富控制結構的編程語言來實現(xiàn)結構化程序設計。在20世紀70年代初,由Boehm和Jacobi提出并證明的結構定理:即任何程序都可以由3種基本結構程序構成結構化程序,這3種結構是:順序結構、分支(條件選擇)結構和循環(huán)結構。每一個結構只有一個入口和一個出口,3種結構的任意組合和嵌套就構成了結構化的程序。程序的基本結構有四種:順序結構,分支程序結構,循環(huán)程序結構,子程序結構。
3.結構化程序設計的構成
結構化程序設計的三種基本結構是:順序結構、選擇結構和循環(huán)結構。
- 順序結構
順序結構表示程序中的各操作是按照它們出現(xiàn)的先后順序執(zhí)行的。順序結構的程序又稱簡單程序,這種結構的程序是順序執(zhí)行的,無分支,無轉移,無循環(huán),程序本身的邏輯很簡單,它只依賴于計算機能夠順序執(zhí)行指令(語句)的特點,只要語句安排的順序正確即可。
- 選擇結構
選擇結構表示程序的處理步驟出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個分支執(zhí)行。選擇結構有單選擇、雙選擇和多選擇三種形式。
- 循環(huán)結構
循環(huán)結構表示程序反復執(zhí)行某個或某些操作,直到某條件為假(或為真)時才可終止循環(huán)。在循環(huán)結構中最主要的是:什么情況下執(zhí)行循環(huán)?哪些操作需要循環(huán)執(zhí)行?循環(huán)結構的基本形式有兩種:當型循環(huán)和直到型循環(huán)。 當型循環(huán):表示先判斷條件,當滿足給定的條件時執(zhí)行循環(huán)體,并且在循環(huán)終端處流程自動返回到循環(huán)入口;如果條件不滿足,則退出循環(huán)體直接到達流程出口處。因為是"當條件滿足時執(zhí)行循環(huán)",即先判斷后執(zhí)行,所以稱為當型循環(huán)。 直到型循環(huán):表示從結構入口處直接執(zhí)行循環(huán)體,在循環(huán)終端處判斷條件,如果條件不滿足,返回入口處繼續(xù)執(zhí)行循環(huán)體,直到條件為真時再退出循環(huán)到達流程出口處,是先執(zhí)行后判斷。因為是"直到條件為真時為止",所以稱為直到型循環(huán)。
4.結構化程序設計的特點
結構化程序中的任意基本結構都具有唯一入口和唯一出口,并且程序不會出現(xiàn)死循環(huán)。在程序的靜態(tài)形式與動態(tài)執(zhí)行流程之間具有良好的對應關系。
- 優(yōu)點
由于模塊相互獨立,因此在設計其中一個模塊時,不會受到其它模塊的牽連,因而可將原來較為復雜的問題化簡為一系列簡單模塊的設計。模塊的獨立性還為擴充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因為我們可以充分利用現(xiàn)有的模塊作積木式的擴展。按照結構化程序設計的觀點,任何算法功能都可以通過由程序模塊組成的三種基本程序結構的組合:順序結構、選擇結構和循環(huán)結構來實現(xiàn)。
結構化程序設計的基本思想是采用"自頂向下,逐步求精"的程序設計方法和"單入口單出口"的控制結構。自頂向下、逐步求精的程序設計方法從問題本身開始,經(jīng)過逐步細化,將解決問題的步驟分解為由基本程序結構模塊組成的結構化程序框圖;"單入口單出口"的思想認為一個復雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結構通過組合、嵌套構成,那么這個新構造的程序一定是一個單入口單出口的程序。據(jù)此就很容易編寫出結構良好、易于調(diào)試的程序來。
- 缺點