C程序设计教程

C程序设计教程

ID:37240052

大小:1.45 MB

页数:68页

时间:2019-05-20

C程序设计教程_第1页
C程序设计教程_第2页
C程序设计教程_第3页
C程序设计教程_第4页
C程序设计教程_第5页
资源描述:

《C程序设计教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、習題解答資料結構理論與實務–以C語言實作習題參考解答第1章1.「資料結構」(DataStructures)是一門計算機科學的基礎學科,其目的是研究程式使用的資料在電腦記憶體的儲存方式,以便撰寫程式處理問題時,能夠使用最佳的資料結構,並且提供一種策略或方法來有效率的善用這些資料,以便達到下列目的,如下所示:¨程式執行速度快。¨資料佔用最少的記憶空間。¨更快速的存取這些資料。上述的策略或方法是指如何選擇最恰當的資料結構,並且將這些資料轉換成有用的資訊,如下圖所示:事實上,在上述圖例轉換資料的方法就是「演算法」(Algorithms)。演算法和資料結構的關係非常的密切

2、,因為程式使用的演算法和資料結構都會影響程式的執行效率,換句話說,演算法加上資料結構就等於程式。2.演算法、資料結構習題解答3.基本上,程式設計的過程可以分成5個階段,如下所示:需求(Requirements)程式設計的需求是在了解問題本身,以確切獲得程式需要輸入的資料和其預期產生的結果,如下圖所示:上述圖例顯示程式在輸入資料後,執行程式就可以輸出執行結果,例如:從1加到100,程式輸入的資料是相加的範圍1和100,輸出是計算結果:5050。設計(Design)在了解程式設計的需求後,就可以開始找尋解決問題的方法和策略,簡單的說,設計階段是在找出解決問題的步驟,

3、如下圖所示:上述圖例指出在了解需求且輸入資料後,需要經過處理才能將資料轉換成有用的資訊,也就是輸出結果,例如:從1加到100是1+2+3+4….+100的結果,程式使用數學運算的加法來解決,因為需要重複執行加法運算,所以for迴圈就派上用場。習題解答再來看一個例子,將華氏溫度轉換成攝氏溫度,輸入的資料是華氏溫度,溫度轉換是一個數學公式,在經過運算後,可以得到攝氏溫度,也就是所需的資訊。換句話說,為了解決需求,程式需要執行資料運算或比較等指令,請將詳細的執行步驟和順序寫下來,這就是設計解決問題的方法,也就是第1-2-2節的演算法。分析(Analysis)在解決需求

4、時只有一種解決方法嗎?例如:如果有100個變數,我們可以宣告100個變數來儲存資料,或是直接使用陣列來儲存,在分析階段是將所有可能解決問題的演算法都寫下來,然後分析比較哪一種方法比較好,選擇最好的演算法來撰寫程式。如果不能分辨出哪一種方法比較好?請選擇一種方法繼續下一個階段,因為在撰寫程式碼時,如果發現其實是另外一種方法比較好,我們可以馬上改為另一種方法來撰寫程式碼。撰寫程式碼(Coding)現在就可以開始使用指定的程式語言來撰寫程式碼,以本書為例是使用C程式語言,在實際撰寫程式時,可能發現另一種方法比較好,因為設計歸設計,在實際撰寫程式時才能真正發現其優劣,如

5、果這是一個良好的設計方法,就算改為其它方法也不會太困難。習題解答不過設計者有時很難下一個決定,就是考量繼續這個方法,或是改為其它方法重新開始,此時需視情況而定,不過每次撰寫程式碼最好只使用一種方法,而不要同時使用多種方法,如此,在發現問題確定需要重新開始時,因為已經有撰寫第一種方法的經驗,第2次將會更加的容易。驗證(Verification)驗證就是證明程式執行的結果符合需求的輸出資料,在這個階段可以再細分成三個小階段,如下所示:¨證明:執行程式時需要證明它的執行結果是正確的,程式符合所有輸入資料的組合,程式規格也都符合演算法的需求。¨測試:程式需要測試各種可能

6、情況、條件和輸入資料,以測試程式執行無誤,如果有錯誤產生,就需要除錯來解決問題。除錯:如果程式無法輸出正確的結果,除錯是在找出錯誤的地方,我們不但需要找出錯誤,還需要找出和決定更正的方法。4.X5.模組化主要是針對解決問題的方法,把一件大型的工作切割成多個小工作,切割的工作屬於一種結構化分析的範疇,最常使用的是「由上而下的設計方法」(Top-downDesign,詳見第1-2-4節),其主要是使用程序為單位來切割工作,也就是所謂的「程序式程式設計」(ProceduralDesign)。由上而下的設計方法(Top-downDesign)是在面對問題時,先考慮將整個

7、解決問題的方法分解成數個大「模組」(Modules),然後針對每一個大模組,一一分割成數個小模組,如此一直細分,最後等這些細分小問題的小模組完成後,再將它們組合起來,如此一層層的向上爬,完成整個軟體系統或應用程式的設計。習題解答6.「抽象資料型態」(AbstractDataType)是一種自訂資料型態,包含資料和相關操作,將資料和處理資料的操作一起思考,結合在一起,操作是對外的使用介面,,例如:將學生基本資料抽象化成Students模型,內含學號id、姓名name、地址address和電話號碼phone等資料,和setStudent()指定學生資料,getNam

8、e()、getAddre

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。