1. 程式人生 > >結構化與非結構化程式的區別

結構化與非結構化程式的區別

1.結構化程式:
結構化程式設計由迪克斯特拉(E.W.dijkstra)在1969年提出,是以模組化設計為中心,將待開發的軟體系統劃分為若干個相互獨立的模組,這樣使完成每一個模組的工作變單純而明確,為設計一些較大的軟體打下了良好的基礎。
由於模組相互獨立,因此在設計其中一個模組時,不會受到其它模組的牽連,因而可將原來較為複雜的問題化簡為一系列簡單模組的設計。模組的獨立性還為擴充已有的系統、建立新系統帶來了不少的方便,因為我們可以充分利用現有的模組作積木式的擴充套件。
按照結構化程式設計的觀點,任何演算法功能都可以通過由程式模組組成的三種基本程式結構的組合: 順序結構、選擇結構和迴圈結構

來實現。
結構化程式設計的基本思想是採用"自頂向下,逐步求精"的程式設計方法和"單入口單出口"的控制結構。自頂向下、逐步求精的程式設計方法從問題本身開始,經過逐步細化,將解決問題的步驟分解為由基本程式結構模組組成的結構化程式框圖;"單入口單出口"的思想認為一個複雜的程式,如果它僅是由順序、選擇和迴圈三種基本程式結構通過組合、巢狀構成,那麼這個新構造的程式一定是一個單入口單出口的程式。據此就很容易編寫出結構良好、易於除錯的程式來。
結構化程式設計方法的主要原則可以概括為自頂向下、逐步求精、模組化及限制使用goto語句,總的來說可使程式結構良好、易讀、易理解、易維護。
2.非結構化程式:
而非結構化程式設計是歷史上最早的能夠創造圖靈完備演算法的程式設計模式。 在它之後,歷史上又出現了結構化(過程化)程式設計、面向物件程式設計。
非結構化程式設計被批評最嚴重的方面就是會產生很難讀懂的程式碼(戲稱“
義大利麵條
”),在建立大型工程方面有時會被認為是很差的,不過,因為賦予程式設計者很大的自由,被人稱讚為如同莫扎特在譜曲。
非結構化程式設計語言既有高階語言,也有低階語言。 其中包括早期版本的BASIC(比如MSX BASIC和GW-BASIC),JOSS、FOCAL、MUMPS、TELCOMP、COBOL、機器語言、早期的彙編系統(不包括過程化的metaoperators)、彙編偵錯程式和一些指令碼語言(比如MS-DOS batch檔案語言)。