- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
‘呼叫’副程式
* * * * * * * * * * * * * * * * * * * * * * * 說明:1. 呼叫函數的方式為將自定函數名稱直接指定給某一個變數名稱。 2. 語法:變數名稱=自定函數名稱(實際參數之串列) 3. 實際參數之串列可以是多個變數,也可以傳遞整個陣列。 7-7 內建函數 * * 為了讓程式設計師快速完成程式的需求,VB2010環境中將一些常用且標準的運算及問題處理方法,設計在VB2010的函數庫中,此稱為「內建函數」(Built-In Function)。亦即VB2010程式內部本來就提供的函數,使用者不須再自行定義撰寫,只要拿出來套用即可。 * * 7-8 遞迴(Recursion) 何謂「遞迴(Recursion)」是指函式本身又可以呼叫自己的副程式。 我們在撰寫程式時,如果適時的使用遞迴方式,將可以使得程式 變得比較簡潔,但是,在撰寫時必須要先了解題意,並且要非常 謹慎小心使用,否則很容易產生無窮迴圈或無法預期的錯誤。 呼叫自己 函式 無窮迴圈 如果沒有設定終止條件 例如:我們設計一個遞迴程式來計算n!時,如果沒有設定「終止條件」時,將會無限制地呼叫自己,因此,就會造成無窮迴圈現象。 有設定終止條件 遞迴程式 不會產生無窮迴圈 在目前的程式語言中,並非每一種程式語言都具有遞迴呼叫的功能,例如: (1)不具遞迴呼叫的程式語言:BASIC, FORTRAN,COBOL等。 (2)具遞迴呼叫的程式語言:C, C++, PASCAL等。 ?遞迴函數 如果將程式模組化為一支獨立的函數,如果該函數可以反覆地自己呼叫自己,因此我們稱這個函數為「遞迴函數」。 在遞迴函數中,最典型的例子就是計算n階層的程式。 一、數學上:n階層的概念如下: 說明:在撰寫一個n階層的遞迴函數程式時,則該函數將具備兩個主要特徵: 1.該遞迴函數可以自己反覆地呼叫自己 (1)第一次呼叫時的參數為n, (2)第二次呼叫時的參數為n-1, (3)第三次呼叫時的參數為n-2,..., (4)參數的值會逐次遞減。 2.當參數值等於1時,必須停止遞迴呼叫。 停止遞迴呼叫 第二次遞迴呼叫 n=4 第三次遞迴呼叫n=3 第四次遞迴呼叫 n=2 第五次遞迴呼叫n=1 第一次遞迴呼叫 n=5 二、演算法上:n階層的概念如下: 01 02 03 04 05 06 07 08 09 Procedure fact(int n) Begin int Result; if(n == 1) then result = 1; //終值設定為1,以防止產生無窮迴圈 else //如果否是終值,則 result = n * fact(n-1); //遞迴呼叫,並且每次要更新值,即每次減1 return Result ; End End Procedure 三、以圖解來說明:遞迴函數呼叫的過程 遞迴函數呼叫的過程 * * 7-8.1 遞迴函數種類 一般而言遞迴函數可以分為兩種: 1. 直接(Direct)遞迴:程序自己直接呼叫自己。 2. 間接(Indirect)遞迴 是指兩個以上函數,彼此呼叫對方,形成迴路。 說明:在A遞迴函數內呼叫B遞迴函數,並且在B遞迴函數內呼叫 A遞迴函數。 7-8.2 遞迴與非遞迴的比較 (1)遞迴:是指函數本身又可以呼叫自己的副程式。 (2)非遞迴:是指函數本身沒有呼叫自己的程式。 【例如】設計n!的遞迴與非遞迴的比較,如下所示: 【遞迴函數的優、缺點】 遞迴 (Recursion) 非遞迴 (Non-Recursion; Iterative) ?優點 ?程式較簡潔明確 ?節省記憶體空間 ?表達力較強 ?區域變數與暫存變數較少 ?較節省執行的時間 ?不需額外的Stack空間 ?缺點 ?執行時參數的存取較費時間 ?需額外堆疊(Stack)空間支援 ?程式較長 ?浪費記憶體空間 ?表達力較弱 ?區域變數與暫存變數較多 * * * * * * * * * * * * * * * * * * 第 七 章副程式 課程名稱:程式設計 授課老師:________ * * 本章學習目標 * * 1.讓讀者瞭解主程式與副程式的呼叫方式及如何傳遞參數。 2.說明遞迴呼叫方式及應用。 本章內容 * * 7-1 副程式 7-2 參數的傳
您可能关注的文档
- (x, y)的边缘分布.ppt
- (zetabon)工艺因素探讨.pdf
- (补充资料9602).doc
- (第1-4章).doc
- (第一期)跟踪评级报告(2016年) - 际华集团.pdf
- (二) 物理部分.ppt
- (二)学生测验历程.ppt
- (公共)水资源分配.ppt
- (急)软件测试工程师.doc
- (金融)外资银行进入与中国商业银行成本效率 ——基于scp分析范式 .doc
- 某区纪委书记年度民主生活会“四个带头”个人对照检查材料.docx
- 某县纪委监委2024年工作总结及2025年工作计划.docx
- 某市场监督管理局2024年第四季度意识形态领域风险分析研判报告.docx
- 县委书记履行全面从严治党“第一责任人”职责情况汇报.docx
- 税务局党委书记2024年抓党建工作述职报告.docx
- 某市税务局副局长202X年第一季度“一岗双责”履行情况报告.docx
- 副县长在全县元旦春节前后安全生产和消防安全工作部署会议上的讲话.docx
- 某市委书记个人述职报告.docx
- 某县长在县委常委班子年度民主生活会个人对照检查材料1.docx
- 某县长在县委常委班子年度民主生活会个人对照检查材料.docx
文档评论(0)