SlideShare une entreprise Scribd logo
1  sur  14
CH6 自訂函式
程教 文月
什麼?函式也可以自己做?
★普通用慣了 cin 、 cout…… 是不是也會手
癢想要「自訂函式」 ?呢
★自訂函式主要的意義在於避免同一個程式
中使用到同一種技巧( EX: 求質數、排
序),會有重複的程式碼的出現。
來看個函式的範例 ~
Ex:
int sum(int a,int b);
{
return a+b;
}
輸出函式
的值
函式名稱
輸入函式的值
回傳值
完整版是這樣:
#include<iostream>
using namespace std;
int sum(int a,int b)
{
return a+b;
}
int main()
{
int m,n;
cin>>m>>n;
cout<<sum(m,n)<<endl;
}
另類寫法:
#include<iostream>
using namespace std;
int sum(int,int);
int main(){
int m,n;
cin>>m>>n;
cout<<sum(m,n)<<endl;
}
int sum(int a,int b){
return a+b;
}
參數預設值
★ 範例 - 自由落體:
#include<iostream>
using namespace std;
float freefall(int t,float g=9.8){
return g*t;
}
int main(){
int x1=10;
cout<<freefall(1)<<endl;
cout<<freefall(2,x1)<<endl;
}
預設參數
使用預
設參數
執行結果
注意 !!
預設的參數要集中在
右方宣告喔
範例:不回傳 的函式值
★ 範例 - 輸出相同文字:
#include<iostream>
using namespace std;
void x(void){
cout<<"Hello!"<<endl;
}
int main(){
x();
x();
x();
}
執行結果
void 為「空」
之意
局部變數
★ 範例
#include<iostream>
using namespace std;
int add(void){
int number=100; // 初始值
cout<<number++<<endl;
}
int main(){
add();
add();
add();
}
執行結果
Q:
要怎麼做才可以使 number 改變呢
?
靜態局部變數
#include<iostream>
using namespace std;
int add(void){
static int number=100; // 初始值
cout<<number++<<endl;
}
int main(){
add();
add();
add();
}
執行結果
全域變數
#include<iostream>
using namespace std;
int number=100; // 初始值
int add(void){
cout<<number++<<endl;
}
int main(){
add();
add();
add();
}
執行結果
遞迴
• 相信大家都學過最多平面區域數的公式:
x=1 時 f(x)=2
x>1 時 f(x)=x+f(x-1)
遞迴
int area(int x){
if(x==1){
return 2;
}
else
{
return x+f(x-1);
}
}
寫成程式碼就變成這樣了 :
函式中帶入函
式 !!
CH6 到此結束 謝謝大家 ~
現在快來開創屬於你的函式吧 !!
( 歡迎使用遞迴 >w<)

Contenu connexe

Tendances

從 C 語言的角度入門 php
從 C 語言的角度入門 php從 C 語言的角度入門 php
從 C 語言的角度入門 php
Dylandy Chang
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
shademoon
 

Tendances (20)

C語言結構與串列
C語言結構與串列 C語言結構與串列
C語言結構與串列
 
Ch1 c++總複習
Ch1 c++總複習Ch1 c++總複習
Ch1 c++總複習
 
C++基礎程式設計 ch3 條件判斷
C++基礎程式設計 ch3 條件判斷C++基礎程式設計 ch3 條件判斷
C++基礎程式設計 ch3 條件判斷
 
C python 原始碼解析 投影片
C python 原始碼解析 投影片C python 原始碼解析 投影片
C python 原始碼解析 投影片
 
從 C 語言的角度入門 php
從 C 語言的角度入門 php從 C 語言的角度入門 php
從 C 語言的角度入門 php
 
Python 迴圈作業
Python 迴圈作業Python 迴圈作業
Python 迴圈作業
 
Chapter 3 basic syntax and operator
Chapter 3  basic syntax and operatorChapter 3  basic syntax and operator
Chapter 3 basic syntax and operator
 
Python變數與資料運算
Python變數與資料運算Python變數與資料運算
Python變數與資料運算
 
C語言列舉與聯合
C語言列舉與聯合C語言列舉與聯合
C語言列舉與聯合
 
Processing 03
Processing 03Processing 03
Processing 03
 
C語言分支流程
C語言分支流程C語言分支流程
C語言分支流程
 
Processing 04
Processing 04Processing 04
Processing 04
 
Python分支作業
Python分支作業Python分支作業
Python分支作業
 
C語言應用前置處理
C語言應用前置處理C語言應用前置處理
C語言應用前置處理
 
第六章 函數與巨集
第六章 函數與巨集第六章 函數與巨集
第六章 函數與巨集
 
Python程式設計 - 串列資料應用
Python程式設計 - 串列資料應用 Python程式設計 - 串列資料應用
Python程式設計 - 串列資料應用
 
Vim
VimVim
Vim
 
Python程式設計 - 迴圈作業
Python程式設計 - 迴圈作業Python程式設計 - 迴圈作業
Python程式設計 - 迴圈作業
 
PHP 初階課程 Part. 3 - Functions and brief intro to Object-Oriented PHP
PHP 初階課程 Part. 3 - Functions and brief intro to Object-Oriented PHPPHP 初階課程 Part. 3 - Functions and brief intro to Object-Oriented PHP
PHP 初階課程 Part. 3 - Functions and brief intro to Object-Oriented PHP
 
系統程式 -- 第 3 章
系統程式 -- 第 3 章系統程式 -- 第 3 章
系統程式 -- 第 3 章
 

Similaire à Ch6 函式

Metro Style Apps from C++ Developers' View
Metro Style Apps from C++ Developers' ViewMetro Style Apps from C++ Developers' View
Metro Style Apps from C++ Developers' View
Eric ShangKuan
 
1 C入門教學
1  C入門教學1  C入門教學
1 C入門教學
Sita Liu
 
第3章算法与控制语句
第3章算法与控制语句第3章算法与控制语句
第3章算法与控制语句
summerfeng
 
C语言学习100例实例程序
C语言学习100例实例程序C语言学习100例实例程序
C语言学习100例实例程序
yiditushe
 

Similaire à Ch6 函式 (20)

竞赛中C++语言拾遗
竞赛中C++语言拾遗竞赛中C++语言拾遗
竞赛中C++语言拾遗
 
Metro Style Apps from C++ Developers' View
Metro Style Apps from C++ Developers' ViewMetro Style Apps from C++ Developers' View
Metro Style Apps from C++ Developers' View
 
1 C入門教學
1  C入門教學1  C入門教學
1 C入門教學
 
第4章函数
第4章函数第4章函数
第4章函数
 
認識 C++11 新標準及使用 AMP 函式庫作平行運算
認識 C++11 新標準及使用 AMP 函式庫作平行運算認識 C++11 新標準及使用 AMP 函式庫作平行運算
認識 C++11 新標準及使用 AMP 函式庫作平行運算
 
C++模板与泛型编程
C++模板与泛型编程C++模板与泛型编程
C++模板与泛型编程
 
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
 
xwz 2010-10-31
xwz 2010-10-31xwz 2010-10-31
xwz 2010-10-31
 
Ch9 教學
Ch9 教學Ch9 教學
Ch9 教學
 
Ch9
Ch9Ch9
Ch9
 
第3章算法与控制语句
第3章算法与控制语句第3章算法与控制语句
第3章算法与控制语句
 
Ch10
Ch10Ch10
Ch10
 
Ch10 教學
Ch10 教學Ch10 教學
Ch10 教學
 
C语言学习100例实例程序
C语言学习100例实例程序C语言学习100例实例程序
C语言学习100例实例程序
 
第1章概述
第1章概述第1章概述
第1章概述
 
Ppt 120-126
Ppt 120-126Ppt 120-126
Ppt 120-126
 
Ppt 120-126
Ppt 120-126Ppt 120-126
Ppt 120-126
 
第5章数组
第5章数组第5章数组
第5章数组
 
Intro to C++ Basic
Intro to C++ BasicIntro to C++ Basic
Intro to C++ Basic
 
C程式-函式與巨集
C程式-函式與巨集C程式-函式與巨集
C程式-函式與巨集
 

Plus de requiemformemories (15)

人文及社會科學班 介紹
人文及社會科學班 介紹人文及社會科學班 介紹
人文及社會科學班 介紹
 
地理報告-環境與疾病
地理報告-環境與疾病地理報告-環境與疾病
地理報告-環境與疾病
 
地理報告-能源組
地理報告-能源組地理報告-能源組
地理報告-能源組
 
地理報告-地景保育(澎湖國家公園)
地理報告-地景保育(澎湖國家公園)地理報告-地景保育(澎湖國家公園)
地理報告-地景保育(澎湖國家公園)
 
地理報告-全球暖化
地理報告-全球暖化地理報告-全球暖化
地理報告-全球暖化
 
地理報告-水患組
地理報告-水患組地理報告-水患組
地理報告-水患組
 
地理報告-糧食組
地理報告-糧食組地理報告-糧食組
地理報告-糧食組
 
地理報告-水資源
地理報告-水資源地理報告-水資源
地理報告-水資源
 
Ch5 堆疊與佇列
Ch5 堆疊與佇列Ch5 堆疊與佇列
Ch5 堆疊與佇列
 
Ch3 陣列
Ch3 陣列Ch3 陣列
Ch3 陣列
 
Ch2 重複結構(迴圈)
Ch2 重複結構(迴圈)Ch2 重複結構(迴圈)
Ch2 重複結構(迴圈)
 
Ch4 字元陣列
Ch4 字元陣列Ch4 字元陣列
Ch4 字元陣列
 
C++基礎程式設計 ch1 進入c++的世界
C++基礎程式設計 ch1 進入c++的世界C++基礎程式設計 ch1 進入c++的世界
C++基礎程式設計 ch1 進入c++的世界
 
C++基礎程式設計 Zero judge介紹
C++基礎程式設計 Zero judge介紹C++基礎程式設計 Zero judge介紹
C++基礎程式設計 Zero judge介紹
 
C++基礎程式設計 ch4 重複結構
C++基礎程式設計 ch4 重複結構C++基礎程式設計 ch4 重複結構
C++基礎程式設計 ch4 重複結構
 

Ch6 函式