當前位置:首頁 » 操作系統 » 什麼是結構化演算法

什麼是結構化演算法

發布時間: 2024-09-22 05:06:20

1. 結構化演算法的特點是什麼

結構化演算法是由一些基本結構順序組成的,就是把一個大的功能的實現分隔為許多個小功能的實現。
在基本結構之間不存在向前或向後的跳轉,流程的轉移只存在於一個基本的結構范圍內.一個非結構化的演算法可以用一個等價的結構化演算法代替,其功能不變。這樣的好處是可以將復雜問題簡單化,讓編程更容易,提高代碼維護和可讀性。

2. 什麼叫結構化程序設計

問題一:什麼叫結構化程序設計?它的主要內容是什麼? 結構化程序設計的思路是:自頂向下、逐步求精;其程序結構是按功能劃分為若干個基本模塊;各模塊之間的關系盡可能簡單,在功能上相對獨立;每一模塊內部均是由順序、選擇和循環三種基本結構組成;其模塊化實現的具體方法是使用子程序。結構化程序設計由於採用了模塊分解與功能抽象,自頂向下、分而治之的方法,從而有效地將一個較復雜的程序系統設計任務分解成許多易於控制和處理的子任務,便於開發和維護。
雖然結構化程序設計方法具有很多的優點,但它仍是一種面向過程的程序設計方法,它把數據和處理數據的過程分離為相互獨立的實體。當數據結構改變時,所有相關的處理過程都要進行相應的修改,每一種相對於老問題的新方法都要帶來額外的開銷,程序的可重用性差。
由於圖形用戶界面的應用,程序運行由順序運行演變為事件驅動,使得軟體使用起來越來越方便,但開發起來卻越來越困難,對這種軟體的功能很難用過程來描述和實現,使處面向過程的方法來開發和維護都將非常困難

問題二:什麼是結構化程序設計方法? 一個結構化程序就是用高級語言表示的結構化演算法。用三種基本結構組成的程序必然是結構化的程序,這種程序便於編寫、閱讀、
修改和維護。這就減少了程序出錯的機會,提高了程序的可靠性,保證了程序的質量。
結構化程序設計強調程序設計風格和程序結構的規范化,提倡清晰的結構。怎樣才能得到一個結構化的程序呢?如果我們面臨一
個復雜的問題,是難以一下子寫出一個層次分明、結構清晰、演算法正確的程序的。結構化程序設計方法的基本思路是,把一個復
雜問題的求解過程分階段進行,每個階段處理的問題都控制在人們容易理解和處理的范圍內。
具體說,採取以下方法保證得到結構化的程序。
(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) 之上盛夏的數就是素數。...>>

熱點內容
編譯原理for循環三地址碼 發布:2024-11-24 15:16:44 瀏覽:201
php2048 發布:2024-11-24 15:14:49 瀏覽:894
php旋轉圖片 發布:2024-11-24 15:03:48 瀏覽:534
提新車如何查看車輛配置 發布:2024-11-24 14:58:40 瀏覽:889
編譯期多態與運行期多態 發布:2024-11-24 14:47:07 瀏覽:580
sqlserver連接工具 發布:2024-11-24 14:24:51 瀏覽:293
怎麼排除安卓軟體不兼容 發布:2024-11-24 14:24:18 瀏覽:526
怎麼讓Win10運行安卓 發布:2024-11-24 14:23:12 瀏覽:324
什麼是設置伺服器怎麼弄 發布:2024-11-24 14:01:59 瀏覽:334
u盤加密啟動電腦 發布:2024-11-24 13:30:44 瀏覽:907