挑戰C++程式語言 ──第9章 函數.

Slides:



Advertisements
Similar presentations
C++语言程序设计教程 第5章 构造数据类型 第6章 C++程序的结构.
Advertisements

第1单元 操作系统概论 第一节 绪论 操作系统定义.
行程(process).
第一章 C语言概述 计算机公共教学部.
请将手机调整到静音状态 实验网站:program3.ccshu.net 资源网站:class.ccshu.org/ /
崇拜即將開始,請大家安靜片刻, 預備心靈敬拜上帝。
新世代計算機概論 第14章 程式語言.
第8章 字元與字串處理 8-1 C語言的字元檢查函數 8-2 C語言的字串 8-3 字串的輸入與輸出 8-4 指標與字串
高级语言程序设计 主讲人:陈玉华.
第5章 函数与预处理 《 C语言程序设计》 (Visual C++ 6.0环境) 本章导读
第一章 C语言概述.
函數 授課:ANT 日期:2009/3/24.
資料大樓 --談指標與陣列 綠園.
函數(一) 自訂函數、遞迴函數 綠園.
第4章 函数与预处理 4.1 概述 4.2 定义函数的一般形式 4.3 函数参数和函数的值 4.4 函数的调用 *4.5 内置函数
C 程式設計— 指標.
函數 授課:ANT 日期:2011/3/28.
C 程式設計— 指標 台大資訊工程學系 資訊系統訓練班.
C++ with Managed Extensions
STRUCTURE 授課:ANT 日期:2010/5/12.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
Function.
Object-Oriented Programming in C++ 第一章 C++的初步知识
程序设计期末复习 黎金宁
第三章 C++中的C 面向对象程序设计(C++).
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
第 6 章 函式.
程式撰寫流程.
第一章 C++编程简介 丘志杰 电子科技大学 计算机学院 软件学院.
程式語言Visual Basic 傳址與傳值
6 使用者函數 6.1 函數定義 宣告函數 呼叫函數 呼叫多個函數 6-6
第二章 C++对C 在非面向对象方面的改进 更简洁,更安全.
第四章 小技巧.
C语言 程序设计基础与试验 刘新国、2012年秋.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
第十章 指针.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第4讲 C++程序控制结构(二) 4.1 循环结构 4.2 转向控制 4.3 综合案例分析.
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
鄧姚文 資料結構 第五章:遞迴 鄧姚文
第五章 递归与广义表 递归的概念 递归过程与递归工作栈 递归与回溯 广义表.
C语言大学实用教程 第5章 函数与程序结构 西南财经大学经济信息工程学院 刘家芬
程式結構&語法.
Chap7 Recursive.
第三章 C++的语句和简单的程序设计 主要内容:
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
C语言程序示例: 1.输入10个数,按从小到大的顺序排序。 2.汉诺塔问题。.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
Oop8 function函式.
第三章 数据抽象.
C程序设计.
第5章 函 数.
第一章 C语言概述 教师:周芸.
Object-Oriented Programming in C++ 第二章 类和对象
第二章 类型、对象、运算符和表达式.
▲重合的概念 ▲對應頂點、對應邊、對應角 ▲全等的記法 ▲全等性質 ▲三角形全等性質
第九章 物件導向-進階.
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
#include <iostream.h>
第四章 函数 丘志杰 电子科技大学 计算机学院 软件学院.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
第三章 高级函数特性.
基本資料型態 變數與常數 運算子 基本的資料處理 授課:ANT 日期:2014/03/03.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
第9章 C++程序设计初步 9.1 C++的特点 9.2 最简单的C++程序 9.3 C++的输入输出 9.4 函数的重载
變數與資料型態  綠園.
Presentation transcript:

挑戰C++程式語言 ──第9章 函數

本章主題 函數的定義與宣告 變數的能見度 參數的傳遞 內嵌(inline)函數 遞迴函數(Recursive Function) 主程式的引數 函數的應用

函數的定義與宣告 【定義函數的語法】 函數型態 函數名稱 參數列 函數主體 函數型態 函數名稱(資料型態 參數1,資料型態 參數2, …) 函數型態 函數名稱(資料型態 參數1,資料型態 參數2, …) { // 函數主體 [return expression ;] }   函數型態 函數名稱 參數列 函數主體

函數的定義與宣告 【呼叫函數的語法】 函數的宣告--函數原型 函數名稱(引數1,引數2, …);  【呼叫函數的語法】 函數名稱(引數1,引數2, …);   函數的宣告--函數原型 函數型態 函數名稱(資料型態 參數1,資料型態 參數2, …);

函數範例

C++的程式架構 #include < > #define 資料型態 函數1(參數列); // 函數原型,即函數的宣告 資料型態 函數1(參數列); // 函數原型,即函數的宣告 資料型態 函數2(參數列); // 函數原型,即函數的宣告 ... 全域變數的宣告; 資料型態 main(參數列) // 定義main函數 { 私有變數的宣告; 函數主體; return 運算式或值; }  資料型態 函數1(參數列) // 定義函數1  資料型態 函數2(參數列) // 定義函數2

變數的能見度 全域(Global)變數 私有(Private)變數 範疇運算子(::)

參數的傳遞 以值傳遞(Call By Value) 以址傳遞(Call By Address) 以參考值傳遞(Call By Reference)

以值傳遞(Call By Value) int add(int x, int y) { x += y; return x; } int i = 789, j = 876 ,r; r = add(80, 90); cout << "add(80,90) = " << r << endl; cout << "add(" << i << "," << j << ") = " << add(i, j) << endl; 【執行結果】 add(80,90) = 170 add(789,876) = 1665 int add(int x, int y) { x += y; return x; }  

以址傳遞(Call By Address) int add(int *x, int *y) { *x += *y; *y = -(*y); int i = 789, j = 876; cout << "i = " << i << endl; cout << "j = " << j << endl; cout << "i + j = " << add(&i, &j) << endl; cout << "j = " << j << endl << endl; int add(int *x, int *y) { *x += *y; *y = -(*y); return *x; } 【執行結果】 i = 789 j = 876 i + j = 1665 i = 1665 j = -876

以參考值傳遞(Call By Reference) int i = 789, j = 876; cout << "i = " << i << endl; cout << "j = " << j << endl; cout << "i + j = " << add(i, j) << endl; cout << "j = " << j << endl << endl; int add(int &x, int &y) { x += y; y = -(y); return x; } 【執行結果】 i = 789 j = 876 i + j = 1665 i = 1665 j = -876

內嵌(inline)函數 #include <iostream.h> inline int max(int x, int y); // 將max宣告為inline function void main(void) { int i = 789, j = 876; cout << "max(" << i << "," << j << ") = " << max(i, j) << endl; return; } inline int max(int x, int y) // 將max定義為inline function if (x > y){ return x; else{ return y;

遞迴函數(Recursive Function) cout << "5! = " << factorial(5) << endl; long factorial(int n) { if (n == 1){ return 1; // 當n等於1時同址呼叫 } else{ return n * factorial(n-1); // 當n大於1時呼叫factorial(n-1);

主程式的引數 // 程式名稱: 9_func10.cpp // 程式功能: 測試argc, argv #include <iostream.h> void main(int argc, char *argv[]) { int i; string s[5]; cout << "argc = " << argc << endl; for(i = 0; i < argc; i++){ s[i] = argv[i]; cout << "argv[" << i << "] = " << argv[i] << endl; cout << "s[" << i << "] = " << s[i] << endl; }   return; 【執行結果】 D:\PROGRAM>9_FUNC7.EXE abc def argc = 3 argv[0] = D:\PROGRAM\9_FUNC7.EXE s[0] = D:\PROGRAM\9_FUNC7.EXE argv[1] = abc s[1] = abc argv[2] = def s[2] = def

函數的應用 內建函數:亂數產生器rand( ) 與 random(n) 內建函數:日期與時間getdate( ) 與gettime( ) 內建函數: ceil(x) 與floor(x) 內建函數: 平方根 sqrt(x) 內建函數: 次方 pow(x, y) 列印空白與列印空白列 布林函數 氣泡浮昇排序法 堆疊的實作(使用陣列) 堆疊的實作(使用鏈結串列結構)

結論 函數的定義與宣告 變數的能見度 參數的傳遞 內嵌(inline)函數 遞迴函數(Recursive Function) 主程式的引數 函數的應用