Download presentation
Presentation is loading. Please wait.
1
Introduction to the C Programming Language
2
程式碼的編譯 一般來說,程式碼編輯完成後,必須轉換成機器所能理解的語言(即機器碼,machine code)後,才能正確的執行。
所有的程式語言中,都附有這種轉換的程式,而轉換程式可概分成兩種,即直譯器(interpreter)與編譯器(compiler)。 C語言是屬於編譯器的一種。
3
C語言的編譯及連結過程 撰寫程式 編譯器 (Compiler) 連結程式 (Linker) 原始程式 (xxx.c) 函數庫
(Library) 連結程式 (Linker) 目的檔 (xxx.obj) [ 參閱 : C語言教學手冊 1-15 ~ 1-17 , 洪維恩著 ] 利用文字編輯程式(text editor) 撰寫一原始檔案(.c), 所有的原始檔都要有.c的擴充檔名,否則將不會正確 地被編譯程式認出來. 此原始檔案經由編譯程式(complier)產生目的檔(.obj), 1. 編譯程式除了要檢查原始程式的語法,定義的變數名稱 等等是否正確之外,還要將標頭檔讀進來,根據這個標頭檔 的內容所記載之函數的定義,檢查程式中所使用的函數用法 是否合乎規則. ] 2. 目的檔即代表一個已經編譯過且沒有錯誤的程式. 可是雖然 目的檔的內容是正確的,但它不代表執行結果會完全正確, 因為它無法替您檢查出邏輯上的錯誤. 連結程式(linker)會將其他的目的檔及所呼叫的函數庫(library) 連結在一起後,產生一可執行檔(.exe). 函數庫 : C語言已經將許多常用的函數寫好,並將這些函數分門別類 (如數學函數,標準輸出輸入函數等),當你想要使用這些函數時, 只要在程式中載入它所屬的標頭檔就可以使用它們.這些不同 的函數集合在一起,就把他們統稱為函數庫. 執行檔 (xxx.exe)
4
簡 單 的 C 程 式 範 例 #include<stdio.h> #include<stdlib.h>
/* prog1_1 , 第一個C程式碼 */ #include<stdio.h> #include<stdlib.h> void main(void) { printf("First C program!\n"); /*在螢幕上印出 ””內的字串*/ printf("享受C的樂趣\n!"); system("pause"); /*暫停程式的執行*/ } 原始的程式碼 說明: 1. #include<stdio.h> : 將stdio.h這個檔案含括進來,並置於#include這行敘述的地方. 2. main() : 程式執行的起點,所執行的是{ }內的內容. 3. 空格,跳格,換行,對編譯程式來說是看不到的,故可利用“縮排” 來增加 “可讀性”
5
程式碼的編輯、撰寫 下面視窗為鍵入程式碼之後的情形: 說明:
1. #include<stdio.h> : 將stdio.h這個檔案含括進來,並置於#include這行敘述的地方. 2. main() : 程式執行的起點,所執行的是{ }內的內容. 3. 空格,跳格,換行,對編譯程式來說是看不到的,故可利用“縮排” 來增加 “可讀性”
6
程式碼的編輯、撰寫 選擇『檔案』功能表裡的『儲存』即可儲存檔案。 存檔類型需存成 .c 檔 說明:
1. #include<stdio.h> : 將stdio.h這個檔案含括進來,並置於#include這行敘述的地方. 2. main() : 程式執行的起點,所執行的是{ }內的內容. 3. 空格,跳格,換行,對編譯程式來說是看不到的,故可利用“縮排” 來增加 “可讀性”
7
程式碼的編譯、執行 程式碼寫完後,接下來就是要將原始程式碼變成可執行的程式碼。 以Dev C++為例,有下列幾種方式進行編譯與執行:
選擇『執行』功能表中的『編譯』來編譯程式, 然後選擇『執行』功能表裡的『執行』來執行它。 選擇『執行』功能表裡的『編譯並執行』,此時 Dev C++在編譯完程式之後,會自動執行程式。 說明: 1. #include<stdio.h> : 將stdio.h這個檔案含括進來,並置於#include這行敘述的地方. 2. main() : 程式執行的起點,所執行的是{ }內的內容. 3. 空格,跳格,換行,對編譯程式來說是看不到的,故可利用“縮排” 來增加 “可讀性”
8
簡 單 的 C 程 式 範 例 #include<stdio.h> /* 將stdio.h這個檔案含括(include)進來*/
#include<stdlib.h> void main(void) { int num; /* 宣告一個名為num的整數型態變數 */ num=2; /* 把num的值設為2 */ printf("I have %d dogs\n",num); /* 呼叫printf()函數 */ printf("You have %d dogs,too\n",num); system("pause"); } /* 將stdio.h這個檔案含括(include)進來*/ /*將stdlib.h這個檔案含括(include)進來*/ 定義了main函數,{}內為main的主體 C語言的註解。 C是以 " /* "及 " */ “ 記號來包圍註解文字. 說明: 1.stdio是standard input/output(標準輸入/輸出)的縮寫。C語言裡只要有關輸入與輸出的格式均是 定義在這個檔案裡。 2.因為system()函數是定義在stdlib.h裡,所以要include進來。 2. main() : 所有的C程式都是由main()開始執行,所執行的是{ }內的內容. 3. { }: 代表程式的開始與結束 4. /* */ : C程式的註解,以“/*”及“*/”記號來包圍註解的文字. 5. 分號(;) : 代表敘述(statement)的結束符號. printf函數會先把『%d』這個符號以num的值來取代。 再將雙引號內的文字輸出到螢幕上。
9
解 析 C 語 言 include指令與標頭檔: main()函數: 大括號、本體 在C語言裡,性質相近的格式定義會放在同一個標頭檔裡。
每ㄧ個C程式都必有一個main()函數,而且只能有一個。 所有C程式都是由main()函數開始執行,所執行的是{ }內的內容。 大括號、本體 以main()函數而言,左大括號({)與右大括號(})之間的程式碼就是main()函數的本體(body)。 本體內的每個指令敘述需以分號『;』做結尾。 1.stdio.h 與 stdlib.h 都稱為標頭檔(header file)。 2.例如:stdio.h 提供了輸入/輸出的函數 math.h提供了數學函數(如平方、立方、開根號)。
10
變數與常數 變數(variables): 是一個記憶體空間,主要用途是讓程式設計者,暫時存放一個數值,並於需要時可以隨時取用它或改變它.
變數一定要宣告過才能使用,否則將產生錯誤. 當我們宣告一個變數(variable)時,compiler會在記憶體內配置一個空間給此變數。 常數(constant)不同於變數,它的值是固定的。 例如:整數常數12400、浮點常數5.1
11
變數與常數 變數可用來存放資料。不同類型的資料需要不同型態的 變數來儲存。 使用變數前必須先宣告此變數所欲儲存的資料型態。
例如:班級的人數ㄧ定是整數,因此可利用整數型態的 變數來儲存班級的人數。 例如: int num; num=54; 宣告ㄧ個變數num為整數資料型態 num的值設為54
12
基本資料型態 C語言常用的四種資料型態: 例如: char name; /*宣告一個變數name為字元資料型態*/
char(字元) character int(整數) integer float(浮點數) single-precision floating point double(倍精度浮點數) double-precision floating point 例如: char name; /*宣告一個變數name為字元資料型態*/ int num; /*宣告一個變數num為整數資料型態*/ float grade; /*宣告一個變數grade為浮點資料型態*/
13
基本資料型態 C語言練習題: 請將第4、8頁程式整合為一個程式。 (將第4頁程式加入第8頁所顯示變數宣告的應用)
Similar presentations