自上而下的程式設計方法是正規程式設計設計的基礎。現在向大家介紹這些在下圖中說明了步驟細節。步驟如下:
1.清晰地陳述你所要解決的問題
編寫的程式大多數情況下要滿足一些感覺上的需要, 但這種需要不一定能夠被人清晰地表達出來。例如,使用者需要乙個解線性方程組的表示式。像這樣的要求就不夠清楚,程式設計師就很難編出乙個使他滿意的程式。他必須弄清楚要有多少問題需要解決?在這些方程式中有沒有對稱的形式使我們的開發變得簡單?程式設計者必須和使用者討論所需的程式,他們必須要對完成的任務有乙個精確細緻的描述。對問題清晰的描述可以防止誤解,並且能夠幫助程式設計師合理的組織他的思想。上面的例子對問題合適的陳述應為:
設計乙個用於解決聯立線性方程組的程式,這些方程中未知數的係數為實數,最多有
20個未知數。
2.定義程式所需的輸入量和程式所產生的輸出量
指定輸入量和輸出量,只有這樣新的程式才能適應全過程計畫。在這個例子中方程式的
係數可能有其預先存在的順序,我們的新程式必須能按照順序讀取它們。相似地,也需要產生出這個程式所要求的結果,即輸出量,我們還要以一定的格式列印出來。
3.設計你的程式得以實現的演算法
演算法是指為某個問題找到答案一步接一步的程式。在這個階段自上而下的程式設計方法發揮
了作用。程式設計設計者開始對這個問題進行邏輯劃分,把它逐步分解為乙個又乙個子工作。這個過程叫做分解(decomposition)。如果一些子工作還是比較大,設計者還可以把他它分解成更小的塊。這個過程將會繼續到問題被分解成許多簡單且易理解的小塊為止。在問題被分解成小塊之後,每乙個小塊要被進一步的求精,這個過程叫做逐步求精(stepwise refinement)。在這個過程中,設計者開始於對本小塊**總括性的描述,然後開始一步一步地定義所需的函式,越來越具體,直到他能夠轉化為matlab(或其他程式語言,下面都一樣)語句。逐步求精的過程中,我們要用到的偽**將會在下節為大家介紹。在演算法開發過程中,這個方法是非常有用的。如果設計者真正理解了解決問題的這些步驟,他將會對問題進行分解和逐步求精。
4.把演算法轉化為**
如果分解和逐步求精的過程已經順利完成,那麼這一步將會異常地簡單。所有程式設計師都會將偽**轉化為合適地matlab語句。
5 檢測產生的matlab程式
這一步是真正的攔路虎。首先,程式的每一部分將會被單獨地檢測,如果有可能的話,
整個程式還要被檢測一遍。在我們檢測程式時,我們必須證明所有合法輸入資料值都能夠正常執行。用標準的輸入值檢測程式,看它是否產生了值。如果在乙個程式中執行的演算法包含了不同的分支,你必須檢測每乙個分支,以保證產生正確的答案。大程式在交付大眾使用之前,必須經過一系列地檢測。
編譯原理,自上而下非遞迴語法分析自上而下的語法分析
要求 1.使用的文法如下 見編譯陳第三版 e te e te t ft t ft f e id2.對於任意給定的輸入串 詞法記號流 進行語法分析,遞迴下降方法和非遞迴 分析方法可以任選其一來實現。3.要有一定的錯誤處理功能。即對錯誤能提示,並且能在一定程度上忽略盡量少的記號來進行接下來的分析。可以參...
自上而下的歸併排序
左右陣列均有序 例如,對於有八個元素的陣列,我們將經過三次劃分,即 第一次將原陣列劃分為兩個有四個元素的陣列,第二次劃分為四個子陣列,每個陣列含有兩個元素,第三次劃分為八個子陣列,每個陣列含有乙個元素。再將八個子陣列歸併為四個子陣列,每組兩個元素.以此類推,直到整個陣列還原為止。接下來是merge ...
什麼是模擬估算法 自上而下的估算
模擬估算法也被稱作自上而下的估算,是一種通過比照已完成的類似專案的 實際成本 去估算出新 專案成本 的方法。模擬估算法適合評估一些與歷史專案在應用領域 環境和複雜度方面相似的專案。其約束條件在於必須存在類似的具有可比性的軟體開發系統,估算結果的精確度依賴於歷史專案資料的完整性 準確度以及現行專案與歷...