|08 前置處理器與標準函數.

Slides:



Advertisements
Similar presentations
大綱 1. 三角函數的導函數. 2. 反三角函數的導函數. 3. 對數函數的導函數. 4. 指數函數的導函數.
Advertisements

◎ 標準函數 標準函數庫中,提供了許多不同功能的函數,而這些函數 的原型宣告以及使用函數相關的定義,依照相關函數的分 類,分別定義在不同的標頭檔之中。 標準函數庫中,提供了許多不同功能的函數,而這些函數 的原型宣告以及使用函數相關的定義,依照相關函數的分 類,分別定義在不同的標頭檔之中。 本來呼叫使用標準函數庫裡的函數,也就是使用模組裡的.
第一單元 建立java 程式.
MATLAB 程式設計 時間量測 清大資工系 多媒體資訊檢索實驗室.
Introduction to C Programming
計算機程式語言實習課.
10-1 字串與字元處理函數 10-2 時間及日期函數 10-3 數學函數 10-4 亂數函數 10-5 本章綜合練習
計算機概論實習課- 程式設計使用C++ 教 授:童曉儒 教授 助 教:吳政鴻.
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
Chapter 5 遞迴 資料結構導論 - C語言實作.
C语言程序设计 第八章 函数.
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
Visual C++ introduction
函數 授課:ANT 日期:2009/3/24.
第八章 利用SELECT查詢資料.
函數 授課:ANT 日期:2011/3/28.
Java程式概觀.
銳角三角函數的定義 授課老師:郭威廷.
C語言簡介 日期 : 2018/12/2.
第 6 章 函式.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
C 程式設計— 函式 台大資訊工程學系 資訊系統訓練班.
第7章 编译预处理 本章要求: 本章重点: 本章难点: 掌握用#define定义无参数宏和带有参数宏定义和调用方法;
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
Introduction to the C Programming Language
熱力實驗
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
3 數學運算 3.1 鍵盤輸入 輸入函數cin 多重輸入cin 輸出格式化 3-3
程式設計實習課(四) ----C 函數運用----
第一單元 建立java 程式.
分支宣告與程式設計 黃聰明 國立臺灣師範大學數學系
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
INDEX 資訊學科種子教師研習 課程說明 教學活動計畫.
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
1 在平面上畫出角度分別是-45°,210°,675°的角。 (1) (2) (3)
開始使用Visual C++.
數學 近似值 有效數值.
|07 函數.
JAVA 程式設計 資訊管理系 - 網路組.
第十章 指標.
Introduction to C Programming
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
挑戰C++程式語言 ──第8章 進一步談字元與字串
函式庫補充資料.
<编程达人入门课程> 本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C qsort.
第二章 类型、对象、运算符和表达式.
程式交易七堂課之五 時序,型態與邏輯函數.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
函數應用(二)與自定函數.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
程式設計--Quick Sort 通訊一甲 B 楊穎穆.
第一章 直角坐標系 1-3 函數及其圖形.
第三章 指數與對數 3-1 指數 3-2 指數函數及其圖形 3-3 對數 3-4 對數函數及其圖形 3-5 常用對數 回總目次.
第四章 陣列、指標與參考 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
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Array(陣列) Anny
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
熱力實驗
函式庫補充資料 1.
三角 三角 三角 函数 已知三角函数值求角.
隨機函數.
方法(Method) 函數.
InputStreamReader Console Scanner
Presentation transcript:

|08 前置處理器與標準函數

|前置處理器與相關指令 前置處理器是程式開始之前的一段區塊,指令 #include 指定含括的標頭檔被引用進來成為程式的一部份。 8.1 前置處理器 |前置處理器與相關指令 8.1.1 關於前置處理器 前置處理器是程式開始之前的一段區塊,指令 #include 指定含括的標頭檔被引用進來成為程式的一部份。 前置處理器指令除了 #inclde ,還有 #define 指令與條件式編譯 #ifdef 指令。 前置處理器可以讓我們避免重複開發,簡化程式的開發與提升程式碼的使用效率,降低程式維護的難度。 |   #define 指令 >>

|#define 指令 #define 是一種巨集指令,提供替代指令的功能,在標頭檔預先定義各種程式元素,並以特定識別名稱命名。 8.1 前置處理器 |#define 指令 8.1.2 #define #define 是一種巨集指令,提供替代指令的功能,在標頭檔預先定義各種程式元素,並以特定識別名稱命名。 當程式中要使用到包含常數、字串,甚至一段程式碼的特定內容,可以直接透過定義的名稱進行引用替代原有的內容,簡化程式碼的撰寫工作。 #define dname 程式元素 dname 是用來取代程式元素的識別名稱。 例子:以 PI 的名稱定義以取代難讀的數值 3.14 。 2 1 << 前置處理器與相關指令    範例:定義 PI >>

|範例:定義 PI 半徑 10 的圓形面積等於 314.00 10 *10*3.14 3.14 8.1 前置處理器 8.1.2 #define 3.14 10 *10*3.14 半徑 10 的圓形面積等於 314.00 2 1 << #define 指令    範例:定義函數內容 >>

|範例:定義函數內容 Hello, Tim 歡迎學習 C 語言 Tim 8.1 前置處理器 8.1.2 #define 3 2 1 << 範例:定義 PI    範例:定義內建符號 >>

|範例:定義內建符號 8.1 前置處理器 8.1.2 #define 2 1 << 範例:定義函數內容 << 範例:定義函數內容    範例:#define 指令的定義衝突 >>

|範例:#define 指令的定義衝突 8.1 前置處理器 8.1.3 #define 的問題 << 範例:定義內建符號 << 範例:定義內建符號    範例:#define 指令的錯誤 >>

|範例:#define 指令的錯誤 doma(a,b):5 domb(a,b):8 * =>1+2+2=>5 * 8.1 前置處理器 |範例:#define 指令的錯誤 8.1.3 #define 的問題 * =>1+2+2=>5 * =>2*4=>8 1+1 2+2 (1+1) (2+2) doma(a,b):5 domb(a,b):8 5 4 3 2 1 << 範例:#define 指令的定義衝突    標頭檔編譯行為 >>

|標頭檔編譯行為 8.1 前置處理器 8.1.4 #include << 範例:#define 指令的錯誤  stdio.h >>

|stdio.h C:\Dev-Cpp\include 8.1 前置處理器 8.1.4 #include << 標頭檔編譯行為 << 標頭檔編譯行為    範例:自訂標頭檔 >>

|範例:自訂標頭檔 8.1 前置處理器 8.1.4 #include << stdio.h  範例:含括自訂標頭檔 >>

|範例:含括自訂標頭檔 10*10*3.14 8.1 前置處理器 8.1.4 #include 4 3 2 1 << 範例:自訂標頭檔    #include 指令特性 >>

|#include 指令特性 適合自訂標頭檔 直接至系統資料夾裏面尋找 將 headerh.h 配置於 C 根目錄底 8.1 使用標準函數庫-數學函數 |#include 指令特性 8.2.1 數學函數與 math.h 適合自訂標頭檔 #include "headerh.h" 直接至系統資料夾裏面尋找 #include <stdio.h> 將 headerh.h 配置於 C 根目錄底 #include "C:\headerh.h" << 範例:含括自訂標頭檔    範例:使用 math.h >>

|範例:使用 math.h 20 請輸入要計算的角度: (3.14…/180)*20 呼叫 math.h 的函數 sin 30:0.50 3.1 使用標準函數庫-數學函數 |範例:使用 math.h 8.2.1 數學函數與 math.h 請輸入要計算的角度: 20 (3.14…/180)*20 呼叫 math.h 的函數 sin 30:0.50 cos 30:0.87 tan 30:0.58 5 4 3 2 1 << #include 指令特性    指數與對數函數 >>

|指數與對數函數 double exp(double x) double log(double x) 8.2 使用標準函數庫-數學函數 |指數與對數函數 8.2.2 指數與對數函數 double exp(double x) double log(double x) double log10(double x) exp() 計算指數值,將所要計算的值 x 傳入,取得 ex 的計算結果。 log() 計算自然對數,將所要計算的值 x 傳入,取得 log(x) 的計算結果。 log10() 計算以 10 為底的對數值,將所要計算的值 x 傳入,取得 log10(x)的計算結果。 << 範例:使用 math.h     範例:指數對數 >>

|範例:指數對數 10 指定計算指數對數的值: exp(10.00):22026.47 log(10.00):2.30 8.2 使用標準函數庫-數學函數 |範例:指數對數 8.2.2 指數與對數函數 指定計算指數對數的值: exp(10.00):22026.47 log(10.00):2.30 log10(10.00):1.00 10 8 7 6 5 4 3 2 1 << 指數與對數函數    次方運算函數 >>

|次方運算函數 計算 x 的 y 次方值 計算 x 的平方根 double pow(double x,double y) 8.2 使用標準函數庫-數學函數 |次方運算函數 8.2.3 次方與開根號 計算 x 的 y 次方值 double pow(double x,double y) 計算 x 的平方根 double sqrt(double x) << 範例:指數對數    範例:次方運算 >>

|範例:次方運算 輸入次方運算的值(x,y): 4 的 3 次方: 64 4,3 4 的 3 次方運算 8.2 使用標準函數庫-數學函數 8.2 使用標準函數庫-數學函數 |範例:次方運算 8.2.3 次方與開根號 4 的 3 次方運算 4 輸入次方運算的值(x,y): 4 的 3 次方: 64  4,3 3 2 1 << 次方運算函數    範例:平方根運算 >>

|範例:平方根運算 100 輸入平方根運算的值: 100.00 的平方根:10.00 8.2 使用標準函數庫-數學函數 8.2 使用標準函數庫-數學函數 |範例:平方根運算 8.2.3 次方與開根號 4 輸入平方根運算的值: 100 3 100.00 的平方根:10.00  2 1 << 次方運算    近似值函數 >>

|近似值函數 double floor(double x) double ceil(double x) 8.2 使用標準函數庫-數學函數 |近似值函數 8.2.4 取得近似整數 double floor(double x) double ceil(double x) floor() 或是 ceil() 取得參數近似值然後回傳。 floor() 回傳小於或等於 x 的最大整數。 ceil() 回傳大於或等於 x 的最小整數。 << 範例:半方根運算    取近似值 >>

|範例:取近似值 100.234 輸入欲取近似值的數值: floor(100.23):100.00 ceil(100.23):101.00 8.2 使用標準函數庫-數學函數 |範例:取近似值 8.2.4 取得近似整數 6 5 4 輸入欲取近似值的數值: floor(100.23):100.00  ceil(100.23):101.00 100.234 3 2 1 << 近似值函數    亂數函數 >>

|亂數函數 int rand() void srand(unsigned int seed) 8.2 使用標準函數庫-數學函數 |亂數函數 8.2.5 亂數 int rand() 會回傳一個整數亂數,這個亂數介於 0 ~ 32767 。 RAND_MAX 可以取得最大可能的亂數值。 產生可預期的虛擬亂數 void srand(unsigned int seed) seed 為亂數種子,這是一個無號整數。 rand() 就會根據此亂數種子產生不同的亂數值出來。 2 1 << 範例:取近似值    範例:取亂數 >>

8.2 使用標準函數庫-數學函數 |範例:取亂數 8.2.5 亂數 4 輸出 6 個 0 ~ 32767 的亂數值: 41, 3 18467, 6334, 26500, 19169, 15724, 2 1 << 亂數函數    範例:取亂數 >>

|範例:取亂數 指定亂數種子: 652 2167 8.2 使用標準函數庫-數學函數 8.2.5 亂數 5 4 3 2 1 8.2 使用標準函數庫-數學函數 |範例:取亂數 8.2.5 亂數 指定亂數種子: 2167 652 5 4 3 2 1 << 範例:取亂數    範例:取得特定範圍的亂數 >>

|範例:取得特定範圍的亂數 輸入所要產生的最大亂數 : 66 41,53,64,34,29,16,60,54,34,44 8.2 使用標準函數庫-數學函數 |範例:取得特定範圍的亂數 8.2.5 亂數 12 11 10 9 8 7 6 5 4 3 輸入所要產生的最大亂數 : 41,53,64,34,29,16,60,54,34,44 66 2 1 << 範例:取亂數    time() 的定義 >>

time_t time(time_t *timer) 8.3 使用標準函數庫-時間與日期函數 |time() 的定義 8.3.1 取得目前的系統時間 time_t time(time_t *timer) 回傳目前的系統時間 。 time_t 型態是 long 型態的整數,表示格林威治時間 1970 年 1 月 1 日 00:00:00 到目前系統時間所經過的時間差,以秒為單位。 << 範例:取得特定範圍的亂數    範例:取得目前時間 >>

|範例:取得目前時間 目前時間:1264053485 8.3 使用標準函數庫-時間與日期函數 8.3.1 取得目前的系統時間 8.3 使用標準函數庫-時間與日期函數 |範例:取得目前時間 8.3.1 取得目前的系統時間 目前時間:1264053485 << time() 的定義    轉換時間函數 – ctime() >>

char *ctime(const time_t *timer) time_t 型態的常數指標參數轉換成為字串 8.3 使用標準函數庫-時間與日期函數 |轉換時間函數- ctime() 8.3.1 取得目前的系統時間 char *ctime(const time_t *timer) time_t 型態的常數指標參數轉換成為字串 << 範例:取得目前時間    範例:取得目前時間表示字串 >>

|範例:取得目前時間表示字串 目前時間:Thu Jan 21 14:46:26 2010 8.3 使用標準函數庫-時間與日期函數 8.3 使用標準函數庫-時間與日期函數 |範例:取得目前時間表示字串 8.3.1 取得目前的系統時間 目前時間:Thu Jan 21 14:46:26 2010 2 1 << 轉換時間函數 – ctime()     clock() 函數 >>

|clock() 函數 clock_t clock(void) clock_t 值以 CLK_TCK 為單位。 8.3 使用標準函數庫-時間與日期函數 |clock() 函數 8.3.2 取得程式執行時間 clock_t clock(void) clock_t 值以 CLK_TCK 為單位。 常值表示經過一秒鐘長度時間需要的值。 將 clock_t 除以 CLK_TCK 可以得到經過的時間秒數。 << 範例:取得目前時間表示字串    範例:取得程式執行時間 >>

|範例:取得程式執行時間 請輸入名稱: Hello,Tim Tim 等待使用者輸入的時間:5.00 秒 8.3 使用標準函數庫-時間與日期函數 |範例:取得程式執行時間 8.3.2 取得程式執行時間 請輸入名稱: Hello,Tim Tim 6 5 4 3 等待使用者輸入的時間:5.00 秒 2 1 << clock() 函數    計算時間差函數 – difftime() >>

|計算時間差函數-difftime() double difftime( time_t time1, time_t time0); 8.3 使用標準函數庫-時間與日期函數 |計算時間差函數-difftime() 8.3.2 取得程式執行時間 double difftime( time_t time1, time_t time0); time0 為開始的時間。 time1 為結束的時間。 回傳值以秒數為單位的 double 型態。 << 範例:取得程式執行時間    範例:計算時間差 >>

|範例:計算時間差 1 2 3 4 5 6 7 8 9 10 經過 10 秒 8.3 使用標準函數庫-時間與日期函數 8.3 使用標準函數庫-時間與日期函數 |範例:計算時間差 8.3.2 取得程式執行時間 1 2 3 4 5 6 7 8 9 10 經過 10 秒 << 計算時間差函數 – difftime()    範例:計算時間差 >>