|07 函數.

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

危害辨識、分析講解及實作演練.
組員:簡年佑組員:xxx 組員:xxx組員:xxx
初中《思想品德》课程改革 回顾·现状·展望
程式設計 博碩文化出版發行.
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
C語言中可變参數的用法——va_list、va_start、va_arg、va_end参數定義
Chapter 5 遞迴 資料結構導論 - C語言實作.
Chapter 7 Subroutine and Function
10.2 直方图.
函數 Function ●什麼是函數?函數就是一段獨立程式,用來處理獨立的工作。
第十一章 結構.
Visual C++ introduction
Do.For.While.正三角.倒正三角.倒九九乘法表
簡易C++除錯技巧 長庚大學機械系
程式設計(二) 參考書目: 1. 洪維恩,C++ 教學手冊 第三版,旗標出版圖書公司。 2
Chen Yi Fen The C Language Chen Yi Fen
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
列舉(enum).
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
C語言簡介 日期 : 2018/12/2.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
C 程式設計— 函式 台大資訊工程學系 資訊系統訓練班.
Chapter 7 指標.
第6章 函數與巨集 6-1 由上而下的設計方法 6-2 建立函數 6-3 函數的參數呼叫方式 6-4 變數的有效範圍 6-5 遞迴函數
Methods 靜宜大學資工系 蔡奇偉副教授 ©2011.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
Java 程式設計 講師:FrankLin.
Introduction to the C Programming Language
Introduction to the C Programming Language
|12 結構與列舉型態.
程式設計實習課(四) ----C 函數運用----
第一單元 建立java 程式.
複習 int a[5]; int i; //a[0], a[1], a[2], a[3], a[4]
INDEX 資訊學科種子教師研習 課程說明 教學活動計畫.
CH1 我的第一個App與變數宣告.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
第7章 指標 7-1 指標的基礎 7-2 指標變數的使用 7-3 指標運算 7-4 指標與陣列 7-5 指向函數的指標.
挑戰C++程式語言 ──第8章 進一步談字元與字串
VS.NET 2003 IDE.
函數 博碩文化出版發行.
引用檔案.
C qsort.
第二章 类型、对象、运算符和表达式.
Pthread.
Introduction to the C Programming Language
函數應用(二)與自定函數.
PROGRAM 7 SQUARE E. Angel.
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
程式語言.
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
第十二章 位运算.
程式設計--Quick Sort 通訊一甲 B 楊穎穆.
Chap 6 函數 故用兵之法,十則圍之,五則攻之,倍則分之, 敵則能戰之,少則能逃之,不若則能避之。 故小敵之堅,大敵之擒也。
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
適用於多選一 可減少if 與 else配對混淆的錯誤.
張智星 台大資工系 多媒體檢索實驗室 第十三章 函數與程式碼的重複使用 張智星 台大資工系 多媒體檢索實驗室.
作業系統實習課(二) -Scheduler-Related System Calls-
Programming & Language Telling the computer what to do
Introduction to the C Programming Language
Chapter 6 函數.
Introduction to the C Programming Language
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
張智星 台大資工系 MIR實驗室 第23章 程式碼的重複使用 張智星 台大資工系 MIR實驗室.
隨機函數.
方法(Method) 函數.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

|07 函數

7.1 關於函數 |main() int main(void) { //程式內容 } |    標準函數 >>

|標準函數 #include <stdio.h> #include <stdlib.h> 7.1 關於函數 << main()    函數使用步驟 >>

7.2 使用函數 |函數使用步驟 7.2.1 宣告定義與呼叫 原型宣告:如同變數宣告,在定義函數之前,必須預先宣告函數的原型,所謂的原型,是函數的名稱、引數以及回傳值的型態等相關特性,它的目的是告知編譯器檔案中存在此函數。 2. 內容定義:根據原型,定義函數的內容程式碼,建構所需的功能。 3. 呼叫:需要執行函數功能時,直接透過名稱的引用,對其進行呼叫。 << 標準函數    函數原型宣告 >>

|函數原型宣告 void dosome(void); 7.2 使用函數 |函數原型宣告 7.2.1 宣告定義與呼叫 void dosome(void); dosome 是函式的名稱,根據所要實作的功能為其命名,方便理解函數的功能以及往後程式的呼叫。 void 是一個關鍵字,第一個 void 表示這個函數執行完畢將不回傳任何值。若是想要回傳整數,就必須以 int 取代 void ,其它型態的回傳值類推。 小括弧是必要的,用來承接特定型態的引數, void表示沒有傳入任何引數。 「;」 表示結束宣告。 4 3 2 1 << 函數使用步驟    函數定義與呼叫 >>

|函數定義與呼叫 void dosome(void) { … /*函數功能程式碼*/ } 7.2 使用函數 |函數定義與呼叫 7.2.1 宣告定義與呼叫 void dosome(void) { … /*函數功能程式碼*/ } 函數的程式區塊範圍,其中包含定義函數功能所需的程式敘述。 dosome();  dosome() 是函式的名稱,名稱後方必須加上一個小括弧,然後補上一個 「;」 構成完整的程式敘述。完成函數呼叫 2 1 << 函數原型宣告    範例:簡單函數示範 >>

|範例:簡單函數示範 Hello,歡迎學習 C 語言 7.2 使用函數 7.2.1 宣告定義與呼叫 3 2 1 7.2 使用函數 |範例:簡單函數示範 7.2.1 宣告定義與呼叫 Hello,歡迎學習 C 語言 3 2 1 << 函數定義與呼叫    範例:簡單函數示範 >>

|範例:簡單函數示範 7.2 使用函數 7.2.1 宣告定義與呼叫 << 範例:簡單函數示範 7.2 使用函數 |範例:簡單函數示範 7.2.1 宣告定義與呼叫 << 範例:簡單函數示範    範例:簡單函數示範 >>

|範例:簡單函數示範 Hello,歡迎學習 C 語言 Hello,歡迎學習 C 語言 7.2 使用函數 7.2.1 宣告定義與呼叫 6 5 7.2 使用函數 |範例:簡單函數示範 7.2.1 宣告定義與呼叫 6 5 4 Hello,歡迎學習 C 語言 Hello,歡迎學習 C 語言 3 2 1 << 範例:簡單函數示範    函數參數 >>

小括弧定義承接外部傳入參數的引數型態名稱。 7.2 使用函數 |函數參數 7.2.2 函數的參數 void dosome(type1,type2,…) ; 小括弧定義承接外部傳入參數的引數型態名稱。 void dosome(type1 arg1,type2 arg2, …){ 函式 dosome 區塊程式碼 } 定義函數必須指定每一個引數的變數名稱。 呼叫此種函數的程式碼,須根據定義傳入對應型態的參數,在函數中直接透過引數名稱便能將其取出。 2 1 << 範例:簡單函數示範    函數的參數語法格式 >>

7.2 使用函數 |函數的參數語法格式 7.2.2 函數的參數 << 函數參數    範例:函數的引數傳遞示範 >>

|範例:函數的引數傳遞示範 輸入小時數: 6 小時等於 360 分鐘 6 6 7.2 使用函數 7.2.2 函數的參數 6 5 4 3 2 7.2 使用函數 |範例:函數的引數傳遞示範 7.2.2 函數的參數 輸入小時數: 6 小時等於 360 分鐘 6 6 6 5 4 3 2 1 << 函數的參數語法格式    範例:函數的引數傳遞示範 >>

|範例:函數的引數傳遞示範 7.2 使用函數 7.2.2 函數的參數 << 範例:函數的引數傳遞示範 7.2 使用函數 |範例:函數的引數傳遞示範 7.2.2 函數的參數 << 範例:函數的引數傳遞示範    範例:多引數函數示範 >>

|範例:多引數函數示範 長 6 cm,寬 15 cm 的矩形面積等於 90 平方公分 請輸入長與寬 6 15 6 15 7.2 使用函數 7.2 使用函數 |範例:多引數函數示範 7.2.2 函數的參數 12 請輸入長與寬 6 15 11 10 9 8 6 15 7 6 5 4 3 長 6 cm,寬 15 cm 的矩形面積等於 90 平方公分 2 1 << 範例:函數的引數傳遞示範    函數回傳值語法定義 >>

|函數回傳值語法定義 value x= dosome(arg , …) ; int dosome(type1,type2,…) ; 7.2 使用函數 |函數回傳值語法定義 7.2.3 函數回傳值 int dosome(type1,type2,…) ; int dosome(type1 arg1,type2 arg2, …){ … return value ; //回傳 value } x= dosome(arg , …) ; value 2 1 << 範例:多引數函數示範    範例:函數回傳值示範 >>

|範例:函數回傳值示範 長 6 cm,寬 15 cm 的矩形面積等於 90 平方公分 請輸入長與寬 6 15 6 15 6 15 90 7.2 使用函數 |範例:函數回傳值示範 7.2.3 函數回傳值 請輸入長與寬 6 15 8 6 15 7 6 6 15 5 90 4 3 2 長 6 cm,寬 15 cm 的矩形面積等於 90 平方公分 1 << 函數回傳值語法定義    範例:函數回傳值示範 >>

|範例:函數回傳值示範 7.2 使用函數 7.2.3 函數回傳值 << 範例:函數回傳值示範 7.2 使用函數 |範例:函數回傳值示範 7.2.3 函數回傳值 << 範例:函數回傳值示範    函數區塊的有效區域 >>

|函數區塊的有效區域 7.3 函數與有效區域 7.3.1 變數與宣告範圍 << 範例:函數回傳值示範 << 範例:函數回傳值示範    範例:函數範圍 >>

|範例:函數範圍 100 100 7.3 函數與有效區域 7.3.1 變數與宣告範圍 3 2 1 << 函數區塊的有效區域 << 函數區塊的有效區域    範例:函數範圍 >>

7.3 函數與有效區域 |範例:函數範圍 7.3.1 變數與宣告範圍 << 範例:函數範圍    變數範圍錯誤 >>

7.3 函數與有效區域 |變數範圍錯誤 7.3.1 變數與宣告範圍 << 範例:函數範圍    範例:函數引數範圍 >>

|範例:函數引數範圍 7.3 函數與有效區域 7.3.1 變數與宣告範圍 3 2 1 << 變數範圍錯誤 << 變數範圍錯誤    範例:全域變數 >>

|範例:全域變數 a+b=300 a-b=100 200+100 300 200-100 300 7.3 函數與有效區域 7.3.2 全域變數 a+b=300 a-b=100  10 9 8 7 6 200+100 5 300 4 3 200-100 2 300 1 << 範例:函數引數範圍    範例:全域變數與區域變數 >>

|範例:全域變數與區域變數 6000 8000 123 6000 8000 123 7.3 函數與有效區域 7.3.2 全域變數 3 2 1 << 範例:全域變數    範例:靜態變數 >>

|範例:靜態變數 dox(): a=100 , doy(): a=100 100 100+100 => 200 100 7.3 函數與有效區域 |範例:靜態變數 7.3.3 靜態變數 100 100+100 => 200 100 100+100 => 200 dox(): a=100 , doy(): a=100 5 4 3 2 1 << 範例:全域變數與區域變數    範例:靜態變數 >>

|範例:靜態變數 dox(): a=100 , dox(): a=200 , doy(): a=100 200 7.3 函數與有效區域 |範例:靜態變數 7.3.3 靜態變數 200 200+100 => 300 100 100+100 => 200 dox(): a=100 , dox(): a=200 , doy(): a=100 5 4 3 2 1 << 範例:靜態變數    範例:靜態變數 >>

|範例:靜態變數 dox(): a=100 , dox(): a=200 , dox(): a=300 , doy(): a=100 300 7.3 函數與有效區域 |範例:靜態變數 7.3.3 靜態變數 300 300+100 => 400 100 100+100 => 200 dox(): a=100 , dox(): a=200 , dox(): a=300 , doy(): a=100 5 4 3 2 1 << 範例:靜態變數    範例:傳值引數 >>

|範例:傳值引數 100 100 傳入 doadd() 之前:100 doadd() 的運算結果:101 傳入 doadd() 之後:100 7.4 函數的參數傳遞方式 |範例:傳值引數 100 100 6 傳入 doadd() 之前:100 doadd() 的運算結果:101 傳入 doadd() 之後:100 5 100+1 => 101 4 3 2 1 << 範例:靜態變數    範例:傳值引數 >>

7.4 函數的參數傳遞方式 |範例:傳值引數 << 範例:傳值引數    範例:簡單的遞迴運算 >>

|範例:簡單的遞迴運算 recursion(1) ... recursion(2) ... recursion(3) ... 7.5 遞迴 |範例:簡單的遞迴運算 recursion(1) ... recursion(2) ... recursion(3) ... recursion(4) ... recursion(5) ... recursion(6) ... recursion(7) ... recursion(8) ... recursion(9) ... recursion(10) ... << 範例:傳值引數    範例:簡單的遞迴運算 >>

7.5 遞迴 |範例:簡單的遞迴運算 << 範例:簡單的遞迴運算    範例:簡單的遞迴運算 >>

|範例:簡單的遞迴運算 recursion(1) ... ... recursion(10) ... 完成第 10 次的函數執行 7.5 遞迴 |範例:簡單的遞迴運算 recursion(1) ... ... recursion(10) ... 完成第 10 次的函數執行 完成第 9 次的函數執行 完成第 8 次的函數執行 完成第 7 次的函數執行 完成第 6 次的函數執行 完成第 5 次的函數執行 完成第 4 次的函數執行 完成第 3 次的函數執行 完成第 2 次的函數執行 完成第 1 次的函數執行 << 範例:簡單的遞迴運算    範例:簡單的遞迴運算 >>

7.5 遞迴 |範例:簡單的遞迴運算 << 範例:簡單的遞迴運算    範例:階層運算 >>

|範例:階層運算 請輸入大於 3 的整數:8 1x2x3x...8 = 40320 7.5 遞迴 << 範例:簡單的遞迴運算 << 範例:簡單的遞迴運算    範例:階層運算 >>

7.5 遞迴 |範例:階層運算 << 範例:階層運算    |