函數 博碩文化出版發行.

Slides:



Advertisements
Similar presentations
變數與函數 大綱 : 對應關係 函數 函數值 顧震宇 台灣數位學習科技股份有限公司. 對應關係 蛋餅飯糰土司漢堡咖啡奶茶 25 元 30 元 25 元 35 元 25 元 20 元 顧震宇 老師 台灣數位學習科技股份有限公司 變數與函數 下表是早餐店價格表的一部分: 蛋餅 飯糰 土司 漢堡 咖啡 奶茶.
Advertisements

第一單元 建立java 程式.
計算機程式語言實習課.
第 2 章 初探 C++.
File Access 井民全製作.
Chapter 5 遞迴 資料結構導論 - C語言實作.
Chapter 5 迴圈.
Chapter 7 Subroutine and Function
函數 Function ●什麼是函數?函數就是一段獨立程式,用來處理獨立的工作。
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
Visual C++ introduction
簡易C++除錯技巧 長庚大學機械系
程式設計(二) 參考書目: 1. 洪維恩,C++ 教學手冊 第三版,旗標出版圖書公司。 2
資料大樓 --談指標與陣列 綠園.
函數(一) 自訂函數、遞迴函數 綠園.
2 C++ 程式概論 2.1 C++ 程式結構 程式註解 // 插入標題檔 #include 2-3
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
Object-Oriented Programming in C++ 第一章 C++的初步知识
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
Methods 靜宜大學資工系 蔡奇偉副教授 ©2011.
Java 程式設計 講師:FrankLin.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
Introduction to the C Programming Language
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
程式設計實習課(四) ----C 函數運用----
第一單元 建立java 程式.
第一章 直角坐標系 1-3 函數圖形.
開始使用Visual C++.
|07 函數.
輸入&輸出 函數 P20~P21.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
1.2 C语言程序的结构与书写规则 一、 C语言程序的总体结构
撰寫MATLAB基礎財務程式 柯婷瑱.
挑戰C++程式語言 ──第8章 進一步談字元與字串
物件導向程式設計 CH2.
明解C++教學手冊 柴田望洋 博士 著 書號:PG20269
認識常數與變數 學習C++所提供的各種基本資料型態 瞭解溢位的發生 學習認識資料型態之間的轉換
引用檔案.
C qsort.
C++程式設計入門 變數與運算子 作者:黃建庭.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 14 章 自定函數.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
挑戰C++程式語言 ──第9章 函數.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
博碩書號:PG20266 變數 第3章 博碩文化出版發行.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
Chap 6 函數 故用兵之法,十則圍之,五則攻之,倍則分之, 敵則能戰之,少則能逃之,不若則能避之。 故小敵之堅,大敵之擒也。
第一章 直角坐標系 1-3 函數及其圖形.
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
作業系統實習課(二) -Scheduler-Related System Calls-
Introduction to the C Programming Language
Introduction to the C Programming Language
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Array(陣列) Anny
資料!你家住哪裏? --談指標 綠園.
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
方法(Method) 函數.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

函數 博碩文化出版發行

函數 函數(function) 可以整合某些特定的處理 整合好的處理可以隨時呼叫使用 C++的程式本身也是一個函數,也就是main()函數。 最新++程式設計實例入門 函數(function) 可以整合某些特定的處理 整合好的處理可以隨時呼叫使用 C++的程式本身也是一個函數,也就是main()函數。 使用函數可簡化程式。

7-2 函數的定義與呼叫 定義函數的語法: 範例: 傳回值的型態 函數名稱(參數列表) { 敘述; … return 運算式; } 最新C++程式設計實例入門 定義函數的語法: 傳回值的型態 函數名稱(參數列表) { 敘述; … return 運算式; } 範例:

呼叫函數的語法: 函數名稱(引數列表); 範例:

1.呼叫函數;2.執行函數中的處理;3.回到呼叫處。 使用函數的處理流程為: 1.呼叫函數;2.執行函數中的處理;3.回到呼叫處。 也可以多次呼叫函數,範例如下:

引數 使用引數傳遞資料 當要呼叫出函數時,可以進行以下的處理: 從呼叫處將某項資料(值)傳遞到函數內, 並依照該值來執行相對應之處理。 要傳遞給函數的資料稱為引數(argument)。

#include <iostream> using namespace std; //buy函數的定義 void buy(int x) { cout <<"買了"<<x <<"萬元的車子。\n"; } //buy函數的呼叫 int main() buy(20); buy(50); return 0; 傳遞引數給函數的範例如下: 買了20萬元的車子。 買了50萬元的車子。 在這個main()函數當中,會執行以下處理: 第一次呼叫出buy()函數時,傳遞「20」這個值之後呼叫 第二次呼叫出buy()函數時,傳遞「50」這個值之後呼叫

函數本身所定義的引數 (變數)稱為參數( parameter)。另一方 面,從函數的呼叫來源 所傳遞的引數(值)則 稱為引數(argument )。 所以前面範例的變數x是參數,「20」和「50」則是引數。

將從鍵盤輸入的值傳到函數中: #include <iostream> using namespace std; //buy函數的定義 void buy(int x) { cout << "買了"<<x <<"萬元的車子。\"; } //buy函數的呼叫 int main() int num; cout << "第1台要買多少錢的車子? \"; cin >> num; buy(num); cout << "第2台要買多少錢的車子? \"; return 0; 在C++中,傳遞到函數的並不是引數本身,而是儲存在其中的「值」。這種引數的傳遞方法有時候稱之為傳值(pass by value)。 這裡使用main()函數當中所準備的變數num(的值),作為由呼叫來源傳遞到函數的引數。所以會將由鍵盤讀取到num的值傳遞到函數中。

函數可以帶有多個引數,但在呼叫時要用逗號(,)來區 隔所指定的多個引數,這些引數又叫做「引數列表」, 它們會依指定的順序傳遞給參數。 範例:

定義沒有引數的函數時,可以省略引數型態的指定,或 指定為void型態。 範例:

傳回值 理解傳回值的機制 在定義函數時會先指定傳回值的型態,而return 敘述後之運算式的值將會傳回呼叫處。 從函數本身傳回特定資訊到函數的呼叫處 從函數所傳回的資訊稱為傳回值(return value)。它與可以多重指派的引數不同,傳回值只能有一個。 在定義函數時會先指定傳回值的型態,而return 敘述後之運算式的值將會傳回呼叫處。

可以在呼叫來源處使用傳回值來進行處理。 範例:

在不帶傳回值的函數中,要先將傳回值的型態設定為void。 也可利用以下這個單純的return敘述來結束函數: 沒有傳回值的函數 範例: /* buy函數的定義 */ void buy() { cout << "買了車子。\n"; } 在不帶傳回值的函數中,要先將傳回值的型態設定為void。 也可利用以下這個單純的return敘述來結束函數: return;

函數的利用 求合計值的函數: 讓函數自己呼叫自己的處理機制,就叫做遞迴(recursion)。 接收兩個數值 進行傳回合計值的處理 呼叫函數 #include <iostrem> ; //sum函數的定義 int sum(int x, int y) { return x+y; } int main() int num1, num2, ans; cout << "請輸入第1個整數:\"; cin >> num1; cout << "請輸入第2個整數:\"; cin >> num2; ans = sum(num1, num2); cout << "合計為" << ans << "。\"; return 0; 讓函數自己呼叫自己的處理機制,就叫做遞迴(recursion)。 接收兩個數值 進行傳回合計值的處理 呼叫函數 輸出傳回值

求最大值的函數: 接收兩個數值 當x大於y的時候 傳回x的值 如果不是的時候,則傳回y的值 呼叫函數 輸出傳回值 #include <iostream> using namespace std; //max函數的定義 int max(int x, int y) { if (x > y) return x; else return y; } int main() int num1, num2, ans; cout << "請輸入第1個整數:\"; cin >> num1; cout << "請輸入第2個整數:\"; cin >> num2; ans = max(num1, num2); cout << "最大值為" << ans << "。\"; return 0; 接收兩個數值 當x大於y的時候 傳回x的值 如果不是的時候,則傳回y的值 呼叫函數 輸出傳回值

函數的宣告 通常在呼叫函數前,都必須先定義函數才不會出錯,若想將 函數的定義放在呼叫之後的話,就必須進行函數原型宣告。 函數原型宣告之語法: 傳回值的型態 函數名稱(引數列表);

使用預設引數 如果在函數中事先指派好預設引數,當不指定引數時,就會自動使用預設值。 預設引數必須由右開始依序設定。

範例: //buy函數的宣告 void buy(int x=10); //buy函數的呼叫 int main() { cout <<"第1次以100萬元買入。\n"; buy(100); cout <<"第2次以預設價格買入。\n"; buy(); return 0; } //buy函數的定義 void buy(int x) cout << "買了"<< x <<"萬元的車子。\n"; 指派引數後呼叫 不指派引數呼叫

7-8 函數範本 理解函數範本(template)的機制 1.宣告、定義函數範本 2.呼叫函數(自動產生函數) C++中有一項方便的功能,就是可以準備函數的「原型」,而這裡說的原型稱為函數範本(template)。 函數範本可快速建立只有型態不同,但處理相同的函數。 函數範本必須依照下列步驟來使用: 1.宣告、定義函數範本 2.呼叫函數(自動產生函數)

範本引數通常是使用T這種假的型態名稱,來取代具 體的型態名稱。 函數範本的宣告與定義: template <class範本引數的列表> 函數的宣告或定義 範本引數通常是使用T這種假的型態名稱,來取代具 體的型態名稱。 只要設定了函數範本,在編譯時就會依放入函數中的 值的型態,來呼叫該型態的函數。 使用函數範本便能將處理的型態 不同,但其他部份完全相同的函 數,整合在一段程式碼中。

利用函數範本:

綜合整理 本章學習過的內容與重點 可以將一連串的處理整合成為函數,然後呼叫出來使用。 可以將引數傳遞到函數本身,然後進行處理。 可以從函數本身接收傳回值。 執行簡單處理的函數,可以設為inline函數。 利用函數原型宣告,可以告知編譯器,函數的規格。 引數可以指定預設值。