函數傳回值函數傳回值.pptVIP

  • 4
  • 0
  • 约2.94千字
  • 约 18页
  • 2018-07-08 发布于福建
  • 举报
函數傳回值函數傳回值

程式設計II 函式 為何需要函式 一般說來, 程式執行的起點, 就可以叫做主程式. C語言的程式起點是在main函式中, 所以, main是程式的入口.函式並不會自動執行, 只有在被呼叫時,函式才會被執行. 事實上使用函式的目的是將程式是當地做分割,避免過長的程式而造成維護上及製作上的困難。 函式的設計 無傳回值的函式設計 有傳回值的函式設計 #include stdio.h void hello(void) { printf(Hello\n); } void main(void) { printf(Im going to call hello()\n); hello() printf(Ive called hello()\n); } 參數的設計與引數的傳遞 參數(argument):函式所取得的資料,sum(5,8); 引數(Parameter):引入相對應於參數的值, float sum(int a,int b); Call by value 傳值法 Call by address 傳址法 遞迴函式呼叫 函式本身在呼叫自己。一般稱為Recursive。 是一種用來重複執行的技巧,類似於for迴圈,但for迴圈是一種iterative重複的技巧。 變數的生命週期與有效範圍 變數的生命週期是指時間,是指程式執行時變數的存在的期限。 變數的有效範圍是指空間,是指程式執行時變數的存在的空間範圍。區分為全域變數及區域變數。 函數的概念 函數的優點 分工合作 較好的可讀性 便於修改、除錯 提高撰寫程式的效率 可以無限次使用(呼叫) 函數可分成兩種型態 系統提供的標準函數 (e.g. toupper, rand, abs) 使用者設計的函數 (e.g. drawline, min, max) 函數的基本形式 函數定義的語法 傳回值型態 函數名稱(參數傳遞) 參數傳遞型態 { 函數主體 } 函數的範例 函數呼叫的語法 語法 函數名稱(參數); 說明 函數如果不需要呼叫參數, 則括號內的參數可以省略。 若參數包含一個以上時,需以逗號隔開。 呼叫與被呼叫的函數其參數是相對應的, 且型態要一致。 函數的傳回值 函數的傳回值,有以下幾種情況: 函數沒有傳回值 ,傳回值型態為void 函數傳回值為整數(int)時 ,可以省略 函數有傳回值時 ,可以在傳回值上做運算 函數的傳回值型態應該和return中的型態要一樣 使用return可以立即結束函數的執行 遞迴函數 Recursion 遞迴函數是指在程式中 直接或間接呼叫該程式本身。 程式中使用遞迴函數, 將可處理須重覆運算的問題。 費氏數列 Fibonacci Sequence 費氏數列的規則如下所示: 費氏數列的數學表示式: 0 if n= 0 Fib(n)= 1 if n= 1 fib(n – 1) + fib(n – 2) if n=2 遞迴函數求費氏數列 階乘函數 factorial 定義如下: 1 if n = 0 n * fact(n–1) if n = 1 說明: 階乘函數範例利用遞迴函數求n階乘 程式執行結果 常用的數學函數 在程式中使用下列數學函數時,需在開頭加上#includemath.h * * 1 #includestdio.h 2 int ab(int x,int y){ 3 int z; 4 z=a*a-b*b; 5 return z; 6 { 7 main(){ 8 int a=3, b=2, c; 9 c = ab(a,b); // 呼叫函數 10 printf(%i2?%i2 = %i\n, a,b,c); 11 } … 8 5 3 2 1 1 0 fib(n) … 6 5 4 3 2 1 0 n 1 #includestdio.h 2 int fib (int n){ 4 if(n==0) return(0); 5 else if(n==1) return(1); 6 else return (fib(n–1)+fib(n–2))

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档