當前位置:編程學習大全網 - 編程語言 - 什麽叫結構化程序設計

什麽叫結構化程序設計

問題壹:什麽叫結構化程序設計?它的主要內容是什麽? 結構化程序設計的思路是:自頂向下、逐步求精;其程序結構是按功能劃分為若幹個基本模塊;各模塊之間的關系盡可能簡單,在功能上相對獨立;每壹模塊內部均是由順序、選擇和循環三種基本結構組成;其模塊化實現的具體方法是使用子程序。結構化程序設計由於采用了模塊分解與功能抽象,自頂向下、分而治之的方法,從而有效地將壹個較復雜的程序系統設計任務分解成許多易於控制和處理的子任務,便於開發和維護。

雖然結構化程序設計方法具有很多的優點,但它仍是壹種面向過程的程序設計方法,它把數據和處理數據的過程分離為相互獨立的實體。當數據結構改變時,所有相關的處理過程都要進行相應的修改,每壹種相對於老問題的新方法都要帶來額外的開銷,程序的可重用性差。

由於圖形用戶界面的應用,程序運行由順序運行演變為事件驅動,使得軟件使用起來越來越方便,但開發起來卻越來越困難,對這種軟件的功能很難用過程來描述和實現,使處面向過程的方法來開發和維護都將非常困難

問題二:什麽是結構化程序設計方法? 壹個結構化程序就是用高級語言表示的結構化算法。用三種基本結構組成的程序必然是結構化的程序,這種程序便於編寫、閱讀、

修改和維護。這就減少了程序出錯的機會,提高了程序的可靠性,保證了程序的質量。

結構化程序設計強調程序設計風格和程序結構的規範化,提倡清晰的結構。怎樣才能得到壹個結構化的程序呢?如果我們面臨壹

個復雜的問題,是難以壹下子寫出壹個層次分明、結構清晰、算法正確的程序的。結構化程序設計方法的基本思路是,把壹個復

雜問題的求解過程分階段進行,每個階段處理的問題都控制在人們容易理解和處理的範圍內。

具體說,采取以下方法保證得到結構化的程序。

(1)自頂向下;(2)逐步細化;(3)模塊化設計;(4)結構化編碼。

在接受壹個任務後應怎樣著手進行呢?有兩種不同的方法:壹種是白頂向下,逐步細化;―種是自下而上,逐步積累。以寫文章為

例來說明這個問題。有的人胸有全局,先沒想好整個文章分成哪幾個部分,然後再進壹步考慮每壹部分分成哪幾節,每壹節分成哪

幾段,每壹段應包含什麽內容,用這種方法逐步分解,直到作者認為可以直接將各小段表達為文字語句為止。這種方法就叫做

“自頂向下,逐步細化”。

另有些人寫文章時不擬提綱,如同寫信壹樣提起筆就寫,想到哪裏就寫到哪裏,直到他認為把想寫的內容都寫出來了為止。

這種方法叫做“自下而上,逐步積累”。

顯然,用第壹種方法考慮周全,結構清晰,層次分明,作者容易寫,讀者容易看。如果發現某壹部分中有壹段內容不妥,需要修改

只需找出該部分,修改有關段落即可,與其他部分無關。我們提倡用這種方法設計程序。這就是用工程的方法設計程序。

我們應當掌握自頂向下、逐步細化的設計方法。這種設計方法的過程是將問題求解由抽象逐步具體化的過程。

用這種方法便於驗證算法的正確性,在向下壹層展開之前應仔細檢查本層設計是否正確,只有上壹層是正確的才能向下細化。

如果每壹層設計都沒有問題,則整個算法就 正確的。由於每壹層向下細化時都不太復雜,因此容易保證整個算法的正確性.檢查

時也是由上而下逐層檢查,這樣做,思路清楚,有條不紊地壹步壹步進行,既嚴謹又方便。

舉壹個例子來說明這種方法的應用。

例 將1到1000之間的素數打印出來。

我們已在本章中討論過判別素數的方法,現在采用“篩法”來求素數表。所謂“篩法”指的是“埃拉托色尼(Eratosthenes)篩法”

他是古希臘的著名數學家。他采取的方法是,在壹張紙上寫上1到1000全部整數,然後逐個判斷它們是否素數,找出壹個非素數,就

把它 挖掉,最後剩下的就是素數

具體作法如下:

(1) 先將1挖掉(因為1不(2) 是素數)。

(3) 用2去除它後面的各個數,(4) 把能被2整除的數挖掉,(5) 即把2 的倍(6) 數挖掉。

(7) 用3去除它後面各數,(8) 把3的倍(9) 數挖掉

(10) 分別用4、5…各數作為除數去除這些數以後個各數。這個過程壹直進行到除數後面的數已全被挖掉為止。

上面的算法可表示為:

(1) 挖去1;

(2) 用剛才被挖去的數的下壹個數p去除p後面各數,(3) 把p的倍(4) 數挖掉;

(5) 檢查p是否小於√n的整數部分(如果n=1000,(6) 則檢查p∠31?),(7)如果是則返回(2)繼續執行,(8)否則

就結束;

(9) 之上盛夏的數就是素數。...>>

問題三:結構化程序設計的工作原理是什麽? 是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。結構化程序設計是過程式程序設計的壹個子集,它對寫入的程序使用邏輯結構,使得理解和修改更有效更容易。

中文名:結構化程序設計

外文名:structured programming

提出人:E.W.Dijikstra

時間:1965年

分享

概述

概念

其概念最早由E.W.Dijikstra在1965年提出的,是軟件發展的壹個重要的裏程碑。它的主要觀點是采用自頂向下、逐步求精及模塊化的程序設計方法;使用三種基本控制結構構造程序,任何程序都可由順序、選擇、循環三種基本控制結構構造。結構化程序設計主要強調的是程序的易讀性。

內容

詳細描述處理過程常用三種工具:圖形、表格和語言。

圖形:程序流程圖、N-S圖、PAD圖 表格:判定表

語言:過程設計語言(PDL)

結構化程序設計曾被稱為軟件發展中的第三個裏程碑。該方法的要點是:

(1) 主張使用順序、選擇、循環三種基本結構來嵌套連結成具有復雜層次的“結構化程序”,嚴格控制GOTO語句的使用。用這樣的方法編出的程序在結構上具有以下效果:

a. 以控制結構為單位,只有壹個入口,壹個出口,所以能獨立地理解這壹部分。

b. 能夠以控制結構為單位,從上到下順序地閱讀程序文本。

c.由於程序的靜態描述與執行時的控制流程容易對應,所以能夠方便正確地理解程序的動作。

(2)“自頂而下,逐步求精”的設計思想,其出發點是從問題的總體目標開始,抽象低層的細節,先專心構造高層的結構,然後再壹層壹層地分解和細化。這使設計者能把握主題,高屋建瓴,避免壹開始就陷入復雜的細節中,使復雜的設計過程變得簡單明了,過程的結果也容易做到正確可靠。

(3)“獨立功能,單出、入口”的模塊結構,減少模塊的相互聯系使模塊可作為插件或積木使用,降低程序的復雜性,提高可靠性。程序編寫時,所有模塊的功能通過相應的子程序(函數或過程)的代碼來實現。程序的主體是子程序層次庫,它與功能模塊的抽象層次相對應,編碼原則使得程序流程簡潔、清晰,增強可讀性。

(4) 主程序員組。

其中(1)、(2)是解決程序結構規範化問題;(3)是解決將大劃小,將難化簡的求解方法問題;(4)是解決軟件開發的人員組織結構問題。

模型

結構化程序設計通常使用自上往下的設計模型,開發員將整個程序結構映射到單個小部分。已定義的函數或相似函數的 *** 在單個模塊或字模塊中編碼,這意味著,代碼能夠更有效的載入存儲器,模塊能在其它程序中再利用。模塊單獨測試之後,與其它模塊整合起來形成整個程序組織。

程序流程遵循簡單的層次化模型,采用“for”、“repeat”、“while”等循環結構,鼓勵使用“Go To”語句。幾乎任何語言都能使用結構化程序設計技術來避免非結構化語言的通常陷阱。非結構化程序設計必須依賴於開發人員避免結構問題,從而導致程序組織較差。大多數現代過程式語言都鼓勵結構化程序設計。

基本結構

結構化程序設計的三種基本結構是:順序結構、選擇結構和循環結構。

順序結構

順序結構表示程序中的各操作是按照它們出現的先後順序執行的。

選擇結構

選擇結構表示程序的處理步驟出現了分支,它需要根據某壹特定的條件選擇其中的壹個分支執行。選擇結構有單選擇、雙選擇和多選擇三種形式。

循環結構

循環結構表示程序反復執行某個或某些操作,直到某條件為假(或為真)時才可終止循環。在循環結構中最主要的是:什麽情況下執行循環?哪些操作需要循環執行?循環結構的基本形式有兩種:當型循環和直到型循環。

當型循環:表示先判斷條件,當滿足給定的......>>

問題四:結構化程序設計的三種基本結構是什麽。各有什麽特點 順序結構、分支結構、循環結構

順序結構就是從頭到尾壹次執行每壹個語句

分支結構根據不同的條件執行不同的語句或者語句體

循環結構就是重復的執行語句或者語句體,達到重復執行壹類操作的目的

問題五:什麽是結構化程序設計 結構化程序設計(structured programming)是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。結構化程序設計是過程式程序設計的壹個子集,它對寫入的程序使用邏輯結構,使得理解和修改更有效更容易。結構化程序設計的三種基本結構是:順序結構、選擇結構和循環結構。結構化程序設計曾被稱為軟件發展中的第三個裏程碑。結構化程序設計通常使用自上往下的設計模型,開發員將整個程序結構映射到單個小部分。當型循環:表示先判斷條件,當滿足給定的條件時執行循環體,並且在循環終端處流程自動返回到循環入口;如果條件不滿足,則退出循環體直接到達流程出口處。

問題六:結構化程序設計原則 1.自頂向下:程序設計時,應先考慮總體,後考慮細節;先考慮全局目標,後考慮局部目標。不要壹開始就過多追求眾多的細節,先從最上層總目標開始設計,逐步使問題具體化。 2.逐步求精:對復雜問題,應設計壹些子目標作為過渡,逐步細化。 3.模塊化:壹個復雜問題,肯定是由若幹稍簡單的問題構成。模塊化是把程序要解決的總目標分解為子目標,再進壹步分解為具體的小目標,把每壹個小目標稱為壹個模塊。 4.限制使用goto語句

問題七:結構化程序設計的目的構成與方法 結構化程序設計的目的:通過設計結構良好的程序,以程序靜態的良好的結構保證程序動態執行的正確性,使程序易理解、易調試、易維護,以提高軟件開發的效率,減少出錯率。構成:控制結構+數據結構,控制結構有順序、選擇、循環結構。方法:模塊丁,自頂向下,自底向上。

問題八:結構化與非結構化程序的區別? 結構化就是把整體分布,把每部分都解決

問題九:什麽叫結構化程序設計?它的主要內容是什麽? 結構化程序設計的思路是:自頂向下、逐步求精;其程序結構是按功能劃分為若幹個基本模塊;各模塊之間的關系盡可能簡單,在功能上相對獨立;每壹模塊內部均是由順序、選擇和循環三種基本結構組成;其模塊化實現的具體方法是使用子程序。結構化程序設計由於采用了模塊分解與功能抽象,自頂向下、分而治之的方法,從而有效地將壹個較復雜的程序系統設計任務分解成許多易於控制和處理的子任務,便於開發和維護。

雖然結構化程序設計方法具有很多的優點,但它仍是壹種面向過程的程序設計方法,它把數據和處理數據的過程分離為相互獨立的實體。當數據結構改變時,所有相關的處理過程都要進行相應的修改,每壹種相對於老問題的新方法都要帶來額外的開銷,程序的可重用性差。

由於圖形用戶界面的應用,程序運行由順序運行演變為事件驅動,使得軟件使用起來越來越方便,但開發起來卻越來越困難,對這種軟件的功能很難用過程來描述和實現,使處面向過程的方法來開發和維護都將非常困難

問題十:什麽是結構化程序設計方法? 壹個結構化程序就是用高級語言表示的結構化算法。用三種基本結構組成的程序必然是結構化的程序,這種程序便於編寫、閱讀、

修改和維護。這就減少了程序出錯的機會,提高了程序的可靠性,保證了程序的質量。

結構化程序設計強調程序設計風格和程序結構的規範化,提倡清晰的結構。怎樣才能得到壹個結構化的程序呢?如果我們面臨壹

個復雜的問題,是難以壹下子寫出壹個層次分明、結構清晰、算法正確的程序的。結構化程序設計方法的基本思路是,把壹個復

雜問題的求解過程分階段進行,每個階段處理的問題都控制在人們容易理解和處理的範圍內。

具體說,采取以下方法保證得到結構化的程序。

(1)自頂向下;(2)逐步細化;(3)模塊化設計;(4)結構化編碼。

在接受壹個任務後應怎樣著手進行呢?有兩種不同的方法:壹種是白頂向下,逐步細化;―種是自下而上,逐步積累。以寫文章為

例來說明這個問題。有的人胸有全局,先沒想好整個文章分成哪幾個部分,然後再進壹步考慮每壹部分分成哪幾節,每壹節分成哪

幾段,每壹段應包含什麽內容,用這種方法逐步分解,直到作者認為可以直接將各小段表達為文字語句為止。這種方法就叫做

“自頂向下,逐步細化”。

另有些人寫文章時不擬提綱,如同寫信壹樣提起筆就寫,想到哪裏就寫到哪裏,直到他認為把想寫的內容都寫出來了為止。

這種方法叫做“自下而上,逐步積累”。

顯然,用第壹種方法考慮周全,結構清晰,層次分明,作者容易寫,讀者容易看。如果發現某壹部分中有壹段內容不妥,需要修改

只需找出該部分,修改有關段落即可,與其他部分無關。我們提倡用這種方法設計程序。這就是用工程的方法設計程序。

我們應當掌握自頂向下、逐步細化的設計方法。這種設計方法的過程是將問題求解由抽象逐步具體化的過程。

用這種方法便於驗證算法的正確性,在向下壹層展開之前應仔細檢查本層設計是否正確,只有上壹層是正確的才能向下細化。

如果每壹層設計都沒有問題,則整個算法就 正確的。由於每壹層向下細化時都不太復雜,因此容易保證整個算法的正確性.檢查

時也是由上而下逐層檢查,這樣做,思路清楚,有條不紊地壹步壹步進行,既嚴謹又方便。

舉壹個例子來說明這種方法的應用。

例 將1到1000之間的素數打印出來。

我們已在本章中討論過判別素數的方法,現在采用“篩法”來求素數表。所謂“篩法”指的是“埃拉托色尼(Eratosthenes)篩法”

他是古希臘的著名數學家。他采取的方法是,在壹張紙上寫上1到1000全部整數,然後逐個判斷它們是否素數,找出壹個非素數,就

把它 挖掉,最後剩下的就是素數

具體作法如下:

(1) 先將1挖掉(因為1不(2) 是素數)。

(3) 用2去除它後面的各個數,(4) 把能被2整除的數挖掉,(5) 即把2 的倍(6) 數挖掉。

(7) 用3去除它後面各數,(8) 把3的倍(9) 數挖掉

(10) 分別用4、5…各數作為除數去除這些數以後個各數。這個過程壹直進行到除數後面的數已全被挖掉為止。

上面的算法可表示為:

(1) 挖去1;

(2) 用剛才被挖去的數的下壹個數p去除p後面各數,(3) 把p的倍(4) 數挖掉;

(5) 檢查p是否小於√n的整數部分(如果n=1000,(6) 則檢查p∠31?),(7)如果是則返回(2)繼續執行,(8)否則

就結束;

(9) 之上盛夏的數就是素數。...>>

  • 上一篇:結晶器伺服振動裝置在連鑄機上的應用:立式連鑄機
  • 下一篇:51單片機怎麽可以編程壹個在鍵盤上按下0到9就可以在LED上面顯示的程序?
  • copyright 2024編程學習大全網