欢迎来到天天文库
浏览记录
ID:58826179
大小:483.50 KB
页数:77页
时间:2020-10-01
《函数与巨集ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章函數與巨集5-1由上而下的設計方法5-2建立C語言的函數5-3函數的參數呼叫方式5-4變數的有效範圍5-5遞迴函數5-6C語言的巨集5-7C語言的標準函式庫5-8C語言的模組化程式設計5-1由上而下的設計方法5-1-1由上而下設計方法的基礎5-1-2由上而下設計方法的實例5-1-1由上而下設計方法的基礎-說明模組化是一種解決問題的方法,把一件大型工作切割成無數的小工作,切割工作屬於一種結構化分析的範疇,我們最常使用的是「由上而下的設計方法」(Top-downDesign),其主要是使用程序為單位來切割工作,也就是所謂的「程序式程式設計」(Proc
2、eduralDesign)。由上而下的設計方法是在面對問題時,先考慮將整個解決問題的方法分解成數個大「模組」(Modules),然後針對每一個大模組,一一分割成數個小模組,如此一直細分,最後等這些細分小問題的小模組完成後,再將它們組合起來,一層層的向上爬,完成整個軟體系統或應用程式的設計。5-1-1由上而下設計方法的基礎-注意事項獨立性:每一個分割模組間的關聯性愈少,處理起來就會愈快。所謂獨立性,是指當處理某一個子問題時,無需考慮其它子問題。換一句話說,獨立性是將每一個問題都定義成一件簡單且明確的問題。結合問題:小心控制子問題間的結合方法,而且要注意結
3、合這些子問題的邏輯順序,避免語焉不詳的結果。子問題間的溝通:雖然獨立性可以減少各問題間的關聯性,但是並無法避免掉全部的溝通。因此各問題間如何溝通的問題(即函數的參數傳遞)也是十分重要的考量。5-1-2由上而下設計方法的實例-說明由上而下的設計方法是一種循序漸進了解問題的方法,筆者準備使用一個實例來說明分割工作的過程,例如:目前有一個工作是繪出一間房屋的圖形,如下圖所示:5-1-2由上而下設計方法的實例-步驟一(說明)整個房屋的繪圖工作可以粗分成三個小工作,如下所示:繪出屋頂和外框。繪出窗戶。繪出門。主程式的虛擬碼,如下所示:CallDrawOutlin
4、eCallDrawWindowsCallDrawDoor5-1-2由上而下設計方法的實例-步驟一(圖例)依據上述工作的分割,我們可以建立各問題間的模組架構,如下圖所示:5-1-2由上而下設計方法的實例-步驟二(說明)接著將第一個小工作【繪出屋頂和外框】(DrawOutline)再次進行分割,可以分成二個小工作,如下所示:繪出屋頂。繪出房屋的外框。其虛擬碼如下所示:CallDrawRoofCallDrawHouseFrame5-1-2由上而下設計方法的實例-步驟二(圖例)依據上述分割,我們可以建立出下一層各問題間的模組架構,如下圖所示:5-1-2由上而下
5、設計方法的實例-其他步驟重複上述分析,繼續一步一步向下進行工作的分割,例如:窗戶共有2個,所以【繪出窗戶】可以分為【繪出窗戶1】和【繪出窗戶2】,【繪出門】可以分為【繪出門框】和【繪出門把】。最後,當將問題分割成一個個小問題後,每一個小問題就是一個C語言的函數,只需完成這些函數即可解決整個繪出房屋的問題。5-2建立C語言的函數5-2-1函數是一個黑盒子5-2-2建立C語言的函數5-2-3函數的原型宣告5-2-4函數的參數列5-2-5函數的傳回值5-2-1函數是一個黑盒子-說明在C語言的模組單位是「函數」(Functions),函數是一個獨立的程式單元,
6、函數就是將大工作分割成的一個個小型工作,我們可以重複使用之前已經建立的函數或直接呼叫C語言標準函式庫提供的函數。在C語言的程式敘述執行函數稱為「函數呼叫」(FunctionsCall),事實上,程式設計者並不需要了解函數內部實際的程式碼,也並不想知道其細節,函數如同「黑盒子」(BlackBox),只要告訴程式設計者如何使用這個黑盒子的「使用介面」(Interface)即可。5-2-1函數是一個黑盒子-圖例呼叫函數只需知道需要傳入哪些參數,然後從函數取得什麼傳回值,這是函數和外部溝通的使用介面,實際函數內容的程式碼是隱藏在使用介面後,函數實際內容的程式碼
7、撰寫稱為「實作」(Implementations)。5-2-1函數是一個黑盒子-規則在使用程式語言撰寫函數時,有一些規則可供參考,如下所示:函數的使用介面需要直接、良好定義和容易了解。在使用函數時,並不需要知道任何有關內部實作的問題,唯一需要知道的是如何呼叫它的使用介面。在實作程序時,並不用考量或知道到底是誰需要使用此函數,只需滿足使用介面定義的輸入參數和傳回值即可。5-2-1函數是一個黑盒子-語法與語意函數的「語法」(Syntactic)是說明函數需要傳入何種資料型態的「參數」(Parameters)和傳回值,「語意」(Semantic)指出函數可以
8、作什麼事?換句話說,在撰寫函數時,需要了解函數的語法規則,呼叫函數時需要了解其語意規則,如此才
此文档下载收益归作者所有