• Like
C 1 c
Upcoming SlideShare
Loading in...5
×
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
122
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 第 1 章 C 語言簡介 C 的發展史 C 程式初體驗 C 程式設計基本注意事項 上機實習課程
  • 2. C 的起源
    • 1972 年貝爾實驗室的 Dennis Ritchie 以 B 語言為基礎,並持續改善它。
    • 除了保留 BCLP 及 B 語言中的許多觀念外,更加入了資料型態的觀念及其它功能,並且將它發表為「 C 語言」。
    • Dennis Ritchie 發展出來的 C 語言乃是架構在 DEC PDP-11 電腦上,最初的目的主要是做為開發 Unix 作業系統的工具。
    • 由於 C 語言這樣實用的工具使得 Unix 作業系統開發難度降低且進行順利,所以也開始應用在其它的程式設計領域,因此也使得 C 語言迅速受到眾人的矚目。
    1-1 C 的發展史
  • 3. C 的特色與優點 (1)
    • 程式可攜性高,具有跨平台能力
      • 只要是使用 ANSI C 定義的標準函數庫來開發,而其中不包含一些中斷處理或廠商單獨提供的函數庫,那麼所開發出來的程式將具有相當高的可攜性( Portable )。
      • 如果將開發出來的 C 語言程式碼拿到不同的作業平台上重新編譯,隨即能夠產生一個功能相同的可執行程式,而程式開發者不再需要重新編撰程式碼內容。
    1-1 C 的發展史
  • 4. C 的特色與優點 (2)
    • 體積小,執行效率高
      • 相較於 Java 、 Visual Basic 、 Pascal 等程式語言來說, C 語言的執行效率相當高,執行時也相當穩定。
    • 具低階處理能力
      • 雖然這些較低階的操作技巧在學習上並不容易,不過卻是其它高階程式語言難以達成的工作項目。這也是 C 功能較其它語言強大的地方。
    • 作為學習其它語言的基礎
      • C 語言堪稱是「程式語言之父」,例如 C++ 、 Java 、 PHP 與 C# 等程式語言,它們的基本語法及某些程式觀念都與 C 十分類似。
    1-1 C 的發展史
  • 5. C 程式執行過程簡介
    • 過程通常可區分為「編輯」、「編譯」、「連結」、「載入」與「執行」五個階段。
    • 目前多半是使用所謂的整合開發環境 (IDE , Integrated Development Environment) 來作為 C 的開發環境。
    • 編寫完的程式碼 , 電腦是看不懂的,必需翻譯成電腦能懂的機器語言模式。
    • 由於 C 是一種編譯式語言,也就是必須使用編譯器將原始程式翻譯成「目的碼」,副檔名為「 *.obj 」。
    1-1 C 的發展史
  • 6.
    • 由於使用者編譯的 C 程式中可能會使用到函數庫(副檔名為 *.lib )中的函數,或者一個程式可能分為數個檔案來開發,這些檔案在編輯為目的檔後,必須透過連結器 (linker) ,最後才會產生可執行檔 ( 副檔名為 *.exe) 。
    • 最後載入過程將可執行檔與相關的函數庫元件,從磁碟中載入到記憶體中,就可準備執行了。
    1-1 C 的發展史
  • 7. C 程式初體驗 1-2 C 程式初體驗 編寫程式區 功能表 工具列 專案瀏覽區 狀態列 編譯器輸出紀錄區 程式輸入游標  
  • 8. 程式碼的編寫與儲存
    • 輸入完以上程式碼後,請執行「檔案 / 儲存」指令或是工具列上的「儲存」 鈕,並以「 Ch01_01 」為檔名,「 .c 」為副檔名進行檔案儲存。
    1-2 C 程式初體驗 01 #include <stdio.h> 02 #include <stdlib.h> 03 04 int main(void) 05 { 06 printf(&quot;C 程式初體驗 n&quot;);/* 呼叫 printf() 函數 */ 07 08 system(&quot;pause&quot;); 09 return 0; 10 }
  • 9. 程式碼的編譯與執行
    • 按下工具列中的編譯按鈕 或執行「執行 / 編譯」指令,然後會出現以下視窗,代表檔案正在編譯中,如果編譯成功,原本的 Compiling 會出現 Done 字樣:
    1-2 C 程式初體驗 編譯進行中,這還包括連結與載入過程
  • 10.
    • 請執行「執行 / 執行」指令或按下執行鈕 。將會看到本程式的執行結果:
    1-2 C 程式初體驗
  • 11. 程式碼快速解析
    • 程式範例:第一個程式碼範例: CH01_01.c
    1-2 C 程式初體驗
  • 12. 1-2 C 程式初體驗 第 1~2 行: 利用 #include 指令是前置處理指令的一種,在編譯時可將 <stdio.h> 標頭檔與 <stdlib.h> 標頭檔含括進來。 第 4 行: C 中的 main() 函數是程式的進入點,而程式的內容則包含在 main() 下的大括弧 {} 內,而「 void 」表示此函數不需要任何的引數, int 是宣告函數回傳值是整數資料型態。 第 5~10 行: 表示此函數的所有指令內容。當然在這兩個大括弧間也可以完全沒有任何指令。 第 6 行: printf() 是 C 語言的輸出函數指令,會將括號中引號「 &quot; 」內的字串輸出到螢幕上,而「 /n 」則是跳脫字元的一種,有換行的功用,這些輸出功能會在第三章中為您深入說明。至於「 /* 」與「 */ 」符號所包括的部份稱為「註解」。
  • 13. 1-2 C 程式初體驗 第 8 行: 由於 Windows 系統正常結束後,都會直接關掉執行視窗,執行畫面會一閃即逝,根本看不出執行結果。這時可利用 system() 函數呼叫系統參數 pause 會讓程式執行到此先暫停,並且在執行視窗中會印出 &quot; 請按任意鍵繼續… &quot; 等字,當您敲下任意鍵後,程式便會往下執行。 第 9 行: 因為主程式被宣告為 int 資料型態,必須回傳 (return) 一個值,在習慣上是傳回 0 作為程式執行完畢,在 ANSI C 語法中,如果這行指令省略,也會自動視為是「 return 0; 」指令。
  • 14. 妥善利用函數
    • 當程式開始執行時,一定會先執行 main() 這個函數,而不管它在程式中的任何位置,編譯器都會找到它才開始編譯程式內,因此 main() 又稱為「主函數」,架構如下所示:
    1-3 C 程式設計基本注意事項 01 int main( ) 02 { 03 指令 1; 04 指令 2; 05 . 06 . 07 } C 語言程式的開頭 C 語言程式的內容
  • 15.
    • 其中第 02 行的左大括弧 { 表示 main() 函式開始,第 07 行的右大括弧 } 則表示 main() 函式的結束。
    • 另外在這兩個大括弧間也可以完全沒有任何內容,因此一個最簡單的 C 程式可以如下:
    1-3 C 程式設計基本注意事項 01 int main( ) 02 { 03 } 完全無任何的陳述
  • 16.
    • 底下列出常見的 C 內建標頭檔供做參考:
    1-3 C 程式設計基本注意事項   標頭檔 說明 <math.h> 包含數學運算函數 <stdio.h> 包含標準輸出入函數 <stdlib.h> 標準函數庫,包含各類基本函數。 <string.h> 包含字串處理函數 <time.h> 包含時間、日期的處理函數
  • 17. 適當加以縮排
    • 在同一行指令中,對於完整不可分割的單元稱為字符 (token) ,兩個字符間必須以空白鍵、 tab 鍵或輸入鍵區隔。請看以下指令範例:
    1-3 C 程式設計基本注意事項 Return0; /* 不合法的指令 */ printf ( &quot;C 程式初體驗 n&quot;) ; /* 合法的指令 */ printf(&quot;C 程式初體驗 !!n&quot;); system(&quot;pause&quot;); return 0; /* 合法的指令 */ print f(&quot;C 程式初體驗 !!n&quot;); /* 不合法的指令 */
  • 18.
    • 像是在主程式中包含子區段,或者子區段中又包含其它子區段時,這時就可以透過縮排來區分程式碼的層級。
    • 簡單來說,遇到大括號時就要考慮縮排。
    • 如以下巢狀 if else 指令,透過縮排的效果讓,讓區塊層次更分明:
    1-3 C 程式設計基本注意事項
  • 19. 1-3 C 程式設計基本注意事項
  • 20. 盡量加上註解
    • 註解不僅可以幫助其他的程式設計師了解程式內容,在日後進行程式維護時,詳盡的註解也能夠省下不少維護時間與成本。
    • 在 C 中「 /* 」與「 */ 」間的文字都屬於註解內容。另外註解也能夠跨行使用。如下所示:
    1-3 C 程式設計基本注意事項 /* 這是我的第一個 C 程式  它會顯示一小段簡單的文字 */ 中間的內容編譯器全部不予理會
  • 21. 上機實習課程
    • 上機實習範例: CH01_02.c
    1-4 上機實習課程
  • 22.
    • 執行結果
    1-4 上機實習課程