- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函式的名称可以相同但参数及型态须不同
函式的範例 void line() { for (k=0; k10; ++k) printf(“*”); } void line1(int n) { for (k=0; kn: ++k) printf(“*”); } void line2(int n, char ch) { for (k=0; kn; ++k) printf(“%c”,ch); } 函式呼叫時的執行流程 void main(String args[]) { int squ; squ = square(10); System.out.println(squ); System.out.println( “The End !”); } 函式的傳回值(C++/Java) 1) 具傳回值: int square(int k) { return ( k*k );} float square(float f) { return ( f*f );} int abs(int k) { if ( k=0 ) return (k); else return (-k); } 函式參數的預設初值設定(for C++ only) int sum(int x, int y=0, int z=1) { return ( x+y+z); } ex. k=sum(10); k=sum(10, 12); k=sum(10, 12, 9) 函式呼叫時參數的傳遞方式(for C/C++) 傳值呼叫:(call by value) void exchange(int x, int y) { int temp; temp=x; x=y; y=temp; } void main() { int a=3, b=8; cout a b endl; exchange(a, b); cout a b endl; } 傳址呼叫:(call by address) void exchange(int *x, int *y) { int temp; temp=*x; *x=*y; *y=temp; } void main() { int a=3, b=8; cout a b endl; exchange(a, b); cout a b endl; } 函式呼叫時參數的傳遞方式(for C++ only) 傳參數別名:(call by reference) viod exchange(int x, int y) { int temp; temp=x; x=y; y=temp; } main() { int a=3, b=8; cout a b ednl; exchange(a, b); cout a b endl; } Call by reference 的 reference 可以當成是 該參數的一個別名,於 是在使用這個別名時 就跟直接使用原來的 變數是一樣的! 常用函式群簡介(for C/C++) 數學類: (math.h) sin(x) cos(x) tan(x) atan(x) exp(x) [=ex] sqrt(x) pow(y, x) [=yx] pow10(x) [=10x] log(x) [=ln(x)] log10(x) 字串類: (string.h) strlen(s) strlwr(s) // 轉成小寫 strupr(s) // 轉成大寫 strcat(s1, s2) // s1 = s1+s2 strcpy(s1, s2) // s1 = s2 函式的遞迴呼叫(recursive call) 所謂的遞迴呼叫: 就是函式在執行過程中又呼叫到自己,而同樣自我呼叫的 方式一再的繼續下去!這種情形就稱為遞迴 (recursion). *使用時,先歸納出一再重複部分的規則. *必須有一個能終止一再呼叫的條件產生,否則就成了無盡 迴圈的狀況,將導致堆疊(stack)爆滿,程式當掉! *遞迴程式能以非常精簡的方式來巧妙的解決問題! * 一種四兩撥千斤,叫人嘆為觀止的藝術展現! * 函式 ( function ) 的宣告(1) 2)以 #define 的形式,來定義需要重複呼叫的程式部分! 當有一件事需要重複去作或過程比較複雜時,1)可以寫成函式,方便偵錯維護與往後呼叫! int sum(int N) { int k, total=0; for ( k=1; k=N; ++k ) total +=
文档评论(0)