Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "|08 前置處理器與標準函數."— Presentation transcript:

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

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

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

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

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

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

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

8 |範例:#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 指令的定義衝突    標頭檔編譯行為 >>

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

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

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

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

13 |#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 >>

14 |範例:使用 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 指令特性    指數與對數函數 >>

15 |指數與對數函數 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     範例:指數對數 >>

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

17 |次方運算函數 計算 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) << 範例:指數對數    範例:次方運算 >>

18 |範例:次方運算 輸入次方運算的值(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 << 次方運算函數    範例:平方根運算 >>

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

20 |近似值函數 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 的最小整數。 << 範例:半方根運算    取近似值 >>

21 |範例:取近似值 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 3 2 1 << 近似值函數    亂數函數 >>

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

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

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

25 |範例:取得特定範圍的亂數 輸入所要產生的最大亂數 : 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() 的定義 >>

26 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 到目前系統時間所經過的時間差,以秒為單位。 << 範例:取得特定範圍的亂數    範例:取得目前時間 >>

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

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

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

30 |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 可以得到經過的時間秒數。 << 範例:取得目前時間表示字串    範例:取得程式執行時間 >>

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

32 |計算時間差函數-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 型態。 << 範例:取得程式執行時間    範例:計算時間差 >>

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


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

Similar presentations


Ads by Google