- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数与巨集
第6章 函數與巨集 6-1 由上而下的設計方法 6-2 建立函數 6-3 函數的參數呼叫方式 6-4 變數的有效範圍 6-5 遞迴函數 6-6 C語言的巨集 6-7 C語言的標準函式庫 6-1 由上而下的設計方法-基礎1 模組化主要是針對解決問題的方法,把一件大型的工作切割成無數的小工作,切割的工作屬於一種結構化分析的範疇,我們最常使用的是「由上而下的設計方法」(Top-down Design),其主要是使用程序為單位來切割工作,也就是所謂的「程序式程式設計」(Procedural Design)。 6-1 由上而下的設計方法-基礎2 由上而下的設計方法是在面對問題時,先考慮將整個解決問題的方法分解成數個大「模組」(Modules),然後針對每一個大模組,一一分割成數個小模組,如此一直細分,最後等這些細分小問題的小模組完成後,再將它們組合起來,如此一層層的向上爬,完成整個軟體系統或應用程式的設計。 6-1 由上而下的設計方法-注意事項 獨立性:每一個分割模組間的關聯性愈少,處理起來就會愈快。所謂獨立性,是指當處理某一個子問題時,無需考慮到其它子問題。換一句話說,獨立性是要將每一個問題都定義成一件簡單且明確的問題。 結合問題:小心的控制子問題間的結合方法,而且要注意結合這些子問題的邏輯順序,避免語焉不詳的結果。 子問題間的溝通:雖然獨立性可以減少各問題間的關聯性,但是並無法避免掉全部的溝通。 6-1 由上而下的設計方法-實例 例如:目前有一個工作是繪出房屋的圖形,如下圖所示: 6-1 由上而下的設計方法-第一步 從房屋繪圖工作可以粗分為三個小工作,如下所示: 繪出屋頂和外框。 繪出窗戶。 繪出門。 6-1 由上而下的設計方法-第二步 接著將第一個小工作【繪出屋頂和外框】(Draw Outline)再次進行分割成二個小工作,如下所示: 繪出屋頂。 繪出房屋的外框。 6-1 由上而下的設計方法-繼續步驟 只需重複上述分析,持續一步一步的向下分割工作,例如:因為窗戶共有2個,所以【繪出窗戶】可以分為【繪出窗戶1】和【繪出窗戶2】,而【繪出門】可以分為【繪出門框】和【繪出門把】。 最後,在將問題分割成一個個小問題後,每一個小問題就是一個C語言的函數,只需完成這些函數即可解決整個繪出房屋的問題。 6-2 建立函數 6-2-1 函數是一個黑盒子 6-2-2 建立C語言的函數 6-2-3 函數的原型宣告 6-2-4 函數的參數 6-2-5 函數的傳回值 6-2 建立函數 C語言的模組單位是「函數」(Functions),函數是一個獨立的程式單元,使用函數可以將大工作分割成一個個小型的工作,也可以重複使用以前已經建立的函數或直接呼叫C語言標準函式庫的函數。 6-2-1 函數是一個黑盒子-說明 在C語言的程式敘述執行函數稱為「函數呼叫」(Functions Call),事實上,程式設計者並不需要了解函數內部實際的程式碼,也不想知道其細節,函數如同一個「黑盒子」(Black Box),只要告訴程式設計者如何使用這個黑盒子的「使用介面」(Interface)即可。 6-2-1 函數是一個黑盒子-圖例 圖例可以看出呼叫函數只需知道需要傳入的參數,然後從函數取得什麼傳回值,這就是函數和外部溝通的使用介面,實際函數內容的程式碼是隱藏在使用介面後,函數實際內容的程式碼撰寫稱為「實作」(Implementations)。 6-2-1 函數是一個黑盒子-規則 函數的使用介面需要直接、良好定義和容易了解。 在使用函數時,並不需要知道任何有關內部實作的問題,唯一需要知道的是如何使用它的使用介面。 在實作程序時,並不用考量或知道到底是誰需要使用此函數,只需滿足使用介面定義的輸入參數和傳回值即可。 6-2-1 函數是一個黑盒子-語法與語意 函數的「語法」(Syntactic)是說明函數需要傳入何種資料型態的「參數」(Parameters)和傳回值。 「語意」(Semantic)是指出函數可以作什麼事? 撰寫函數時,需要了解函數的語法規則,而呼叫函數時需要了解其語意規則,如此才可以正確的呼叫函數。 6-2-2 建立C語言的函數-語法 C語言的函數是由函數名稱和程式區塊所組成,其語法格式如下所示: 傳回值型態 函數名稱( 參數列 ) { 程式敘述; …… return 傳回值; } 傳回值型態是函數傳回值的資料型態,函數名稱如同變數命名方式由設計者自行命名,函數使用return關鍵字傳回函數值。 6-2-2 建立C語言的函數-範例 一個沒有參數列和傳回值的函數,如下所示: void writeString() { printf(歡迎使用C/C++!\n); } 在括號內定義傳入的參數列,不過這個函數並沒有任何參數,所以空
您可能关注的文档
- 关于组织2016年下半年教师网络培训的通知-河北科技大学理学院.doc
- 关于组织做好残疾人企业家培训班-残疾人企业家培训网络课堂.doc
- 关于组织参加廉洁读书月读书活动的通知.doc
- 关于组织评选2015年度上海市科技系统青年五四奖章.doc
- 关于编写2005年硕士研究生入学考试-中国科学院地球环境研究所.doc
- 关于葡萄酒的起源,众说纷纭,有的说,起源于古埃及,或古希腊,抑或.doc
- 关于评选2008年广州市广播电视大学开放教育优秀学生的通知.doc
- 关于评选连云港市名师、名校长、名校工作的实施意见-连云港市教育网.doc
- 关于职业生涯规划书.ppt
- 关于课题研究的结题.ppt
- 2025年云南省楚雄市事业单位考试(自然科学专技类C类)职业能力倾向测验知识点试题最新.docx
- 2024年青海省海东地区单招职业倾向性测试必刷测试卷最新.docx
- 2025年云南省大理市事业单位公开招聘考试职业能力倾向测验(D类)(中小学教师类)真题最新.docx
- 装卸船作业流程详解.docx
- 重庆某中学2024-2025学年高一(下)第一次月考数学试卷(3月份)含解析.pdf
- 2025年云南省瑞丽市事业单位考试(中小学教师类D类)职业能力倾向测验知识点试题附答案.docx
- 2025年云南省文山市事业单位考试(综合管理类A类)职业能力倾向测验知识点试题最新.docx
- 2025年云南省瑞丽市事业单位考试(综合管理类A类)职业能力倾向测验强化训练试题集必考题.docx
- 项目四船舶轴系舵系维修课件.pptx
- 文书模板-绿植公司的章程.docx
文档评论(0)