Microsoft Word - CH01

Similar documents
CC213

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

Microsoft PowerPoint - plan06.ppt

CH01.indd

Microsoft Word _2 課本1225_OK_0222修.doc

摘 要 在 這 忙 碌 的 社 會 中, 普 遍 人 們 運 動 時 間 其 實 並 不 充 裕, 體 力 越 來 越 差 的 情 況 下 還 隨 意 飲 食 導 致 身 體 健 康 越 來 越 差, 因 此 本 專 題 打 算 利 用 健 康 飲 食 的 方 式 改 善 這 些 人 的 體 質,

Microsoft Word - ACL chapter02-5ed.docx

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1


FY.DOC

Microsoft Word - 13院21号.doc

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操

epub83-1

封面.PDF

Microsoft Word _Java_術科 .doc

新版 明解C言語入門編

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式 软 件 工 程 专 业 课 程 类 型...7

01 用 ActionScript 3.0 開始認識 Flash CS3 Flash 是應用在網路上非常流行且高互動性的多媒體技術, 由於擁有向量圖像體積小的優點, 而且 Flash Player 也很小巧精緻, 很快的有趣的 Flash 動畫透過設計師的創意紅遍了整個網際網路 雖然很多人都對 Fl

投影片 1

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un

投影片 1

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD

Learning Java

<4D F736F F D DA5BFA6A1C476C1C92DBEC7ACECB8D5A8F728B57BB35D292E646F63>

現在人類獲取地球內部訊息的方法, 是從可能影響我們身家性命安全的地震, 用數學模型把地震資料轉換成地震波速度, 進而獲得地底物質密度與深度的關係 地下世界知多少 km/s g/cm 3 P Gpa km S P S 3,000 3,000 ak K 透視地底 Percy Bridgma

VB程序设计教程

Microsoft Word - 全華Ch4Ans.doc

APA Preliminaries Text Reference 1. Cover Page 2. Title Page 3. Signature Page 4. Advisor s recommendation letter 5. Approval page 6. Copyri

電機工程系認可證照清單 /7/1

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

運算子多載 Operator Overloading

sp_overview.pptx

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

x 前言 Python Python ETL extract transform load Python Python / Python Python Python

The golden pins of the PCI card can be oxidized after months or years

02 2 成立 Facebook 粉絲專頁 Facebook Facebook Facebook 1, Facebook Facebook 1 Facebook 2-21

Microsoft Word 電腦軟體設計.doc

CO 2 以鄰為壑的台灣建築產業

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

1 C++ 2 Bjarne Stroustrup C++ (system programming) 6 (infrastructure) C++ 7 Herb Sutter 8 C++ (efficiency) (flexibility) 9 (abstraction) (productivity

附 件 : 2009 年 度 国 家 精 品 课 程 名 单 一 本 科 国 家 精 品 课 程 ( 以 学 科 为 序, 共 400 门 ) 序 号 一 级 学 科 二 级 学 科 课 程 名 称 学 校 名 称 负 责 人 1 哲 学 哲 学 类 马 克 思 主 义 伦 理 学 安 徽 师 范

Microsoft Word - DOC3.doc

ii Vue Bootstrap 4 ES 6 Vue Vue Bootstrap 4 ES 6 Vue 2 vue html vue html vue Vue HTML 5 CSS ES 6 HTML 5 CSS Visual Studio Code h

導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式

untitled

投影片 1

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

Microsoft PowerPoint - C_Structure.ppt

C/C++ - 文件IO


C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

01

[改訂新版]C言語による標準アルゴリズム事典

多層次傳銷與獎金系統

為什麼要做佛事 一 前言

untitled

0SQL SQL SQL SQL SQL 3 SQL DBMS Oracle DBMS DBMS DBMS DBMS RDBMS R DBMS 2 DBMS RDBMS R SQL SQL SQL SQL SELECT au_fname,au_ lname FROM authors ORDER BY

ebook8-30

Microsoft PowerPoint - STU_C_Lang_CH01.ppt

財金資訊-82期.indd

序 言 本 专 业 人 才 培 养 方 案 以 适 应 市 场 需 求 为 目 标, 根 据 学 校 校 企 双 主 体 人 才 培 养 的 要 求 和 移 动 应 用 开 发 专 业 的 特 点 设 置 课 程 体 系, 体 现 了 课 程 为 市 场 服 务 的 特 点 本 专 业 要 求 学

Microsoft Word - compilation.docx

Microsoft Word htm

計算機概論總複習完全攻略 9-1 程式語言簡介 程式語言的分類 1. 程式語言是人類與電腦溝通的工具 可用來命令電腦執行各項作業 2. 程式語言的分類 3. 低階語言 比較接近電腦硬體層次的語言 執行速度快 但不易編寫與閱讀 低階語言 機器語言 (1) 機器語言是唯一可以直接在電腦上執行的語言 由

_汪_文前新ok[3.1].doc

Oracle Database 10g: SQL (OCE) 的第一堂課


C++ 程式設計

Microsoft PowerPoint - plan08.ppt

2017政府共同供應契約採購指南V3.xls

Microsoft Word C-A卷.docx

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C Project 30 C Project 3 60 Project 40

全國各級農會第 2 次聘任職員統一考試試題 科目 : 程式設計類別 : 九職等以下新進人員作答注意事項 : 1 全部答案請寫在答案卷內, 如寫在試題紙上, 則不予計分 2 請以黑色或藍色鋼筆或原子筆書寫, 並以橫式書寫 ( 由左至右, 由上而下 ) 一 選擇題 ( 每題 4 分, 共 40 分 )


基于UML建模的管理管理信息系统项目案例导航——VB篇

Microsoft Word - 11.doc

Microsoft Word - _m30.doc

untitled

C/C++语言 - 运算符、表达式和语句

攜手拼出圓滿的幸福 2

C/C++ - 函数

理性真的普遍嗎 注意力的爭奪戰 科學發展 2012 年 12 月,480 期 13

Microsoft PowerPoint - OPVB1基本VB.ppt

A9RF716.tmp

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

106 學年第二學期選修扶助課程優先名單 班級 座號 學號 科目 國文 國文 國文 國文 國文 國文 國

Transcription:

1 淺談 C 程式語言 本章大綱 1-1 何謂程式語言 1-2 C 語言的興起 1-3 如何學好程式設計 1-4 如何編譯程式 1-5 關鍵字 1-6 上機實習 1-7 參考文獻

1-1 何謂程式語言 程式設計師 (programmer) 利用程式語言 (programming language) 撰寫程式 (program), 以完成某一項任務, 如圖 1-1 所示 如利用 C 程式語言撰寫 C 程式, 以完成 10000 筆資料由小到大的排序工作或是以 C 撰寫一您親朋好友的通訊錄, 等等 圖 1-1: 小明利用 C 程式將一堆雜亂無章的資料, 由小至大排序之 您撰寫的 C 程式, 電腦是看不懂的, 這之間需要 C 的編譯程式 (compiler), 將 C 程式編譯為電腦看得懂的 0 與 1 所組成的機器語言 (machine language), 讓電腦知道要做什麼 編譯程式可比喻是一位翻譯者 (translators), 例如, 有一位日本人到德國幕尼黑大學拜訪某一位教授, 由於他不會講德文, 所以請了一位會講德文的日本人當作翻譯者, 做為與這一位教授溝通的橋樑, 讓彼此了解對方的意思 如圖 1-2 所示 2

第 1 章淺談 C 程式語言 圖 1-2: 中間的翻譯人員, 有如編譯程式 (compiler) 程式語言有上百, 上千種, 如 :FORTRAN,COBOL,Pascal,C,C++, Java,C#,Visual Basic,Ada,Objective C,Delphi, 等等不勝枚舉, 試問是不是每一種都要加以學習呢? 其實大可不必, 因為程式語言的架構幾乎大同小異, 如每一種程式語言都有選擇敘述, 迴圈敘述, 只是以不同的關鍵字來表示罷了 了解大架構後, 再去探討每一種語言都有其獨有的特性及功能 如 :FORTRAN( 發表於 1957 年 ) 它的計算精確度高, 適合於工程 COBOL( 發表於 1960 年 ) 適用於資料量大, 但計算少的情況, 而且製造美觀的報表, 如目前的自來水公司, 台電所印出的繳費單都是以 COBOL 程式語言寫的 這兩種我在大學時都有學過 後來 Pascal 興起, 因為它有指標 (pointer), 可以用來實作資料結構 (data structures) 的一些主題, 如 : 鏈結串列 (linked list), 二元搜尋樹 (binary search tree) 等等 目前的 FORTRAN 已有 FORTRAN 2003( 發表於 2003 年 ), 但慢慢的被 C( 發表於 1970 年 ) 取代了, 只有少數如數學系, 物理系還有在使用, 因為他們有些特殊的應用軟體是以 FORTRAN 撰寫的, 所以不得不要學它 COBOL 沒有新的版本, 也逐漸的被另一種程式語言取而代之 3

1-2 C 語言的興起 Pascal 發表於 1971, 紅於 1980 年代, 但卻好景不常, 因為 C 語言也在這時候來湊熱鬧, 由於 C 有威力更強的指標, 而且又是 UNIX 或 Linux 作業系統所使用的程式語言, 所以取而代之的流行程式語言就是 C C 是從 B 語言所延伸過來的程式語言, 而 B 語言的前身是 BCPL 語言, 同時多多少少也受 ALGOL 68( 發表於 1968 年 ) 的影響 從圖 1-3 可看出一些常用高階程式語言的發展史 目前大家使用的 C 語言是 1989 年的美國國家標準局所公佈標準的 C 語言, 簡稱 ANSI C (American National Standard Institute, ANSI C) 圖 1-3 是程式語言的發展史 [1] 此圖顯示這麼多的程式語言, 是不是都要老師教後, 您才會呢? 不對, 以我來說, 大學時只學過 FORTRAN 和 COBOL, 上研究所自己讀 Pascal, 用它來實作程式, 將執行的結果用來證明論文所闡述的理論, 到行政院工作時, 因為要使用 C 和 C++ 來實作系統, 所以也自己 K, 這樣一路走來, 還是走得很不錯, 這要歸於大學時, 將 FORTRAN 和 COBOL 這兩種程式語言弄得很熟的關係, 所以再去看其它的程式語言是很容易的 因為程式語言的架構大都是相同的, 只要再花一些時間了解此程式語言特有的功能即可 以目前這麼多的程式語言來說, 建議大家以 C 為出發點, 因為它淺顯易懂, 可以很容易地使用它來撰寫程式, 從而了解程式設計到底是什麼 C 語言除了淺顯易懂外, 同時也是 UNIX 與 Linux 作業系統的核心語言, 更是受大家歡迎的程式語言, 請參閱表 1-1 4

第 1 章淺談 C 程式語言 圖 1-3: 程式語言的發展史 [1] 根據 TIOBE programming community index for December 2008[2],C 和 C++ 是 2008 很受歡迎的程式語言, 而且其使用率僅次於 Java, 請參閱表 1-1 當您熟悉 C 程式語言後, 再學 C++ 就可以很容易進入其核心, 即所謂的物件導向程式設計的特性 5

表 1-1: 目前常用的程式語言使用率排行榜,C 是很受歡迎的程式語言 2008 年 12 月 2007 年 12 月 程式語言 2008 年 12 月 排行榜 排行榜 使用百分比 1 1 Java 19.367% 2 2 C 16.163% 3 5 C++ 10.893% 4 4 PHP 9.479% 5 3 (Visual) Basic 9.478% 6 8 C# 4.643% 7 6 Python 4.567% 8 7 Perl 3.603% 9 10 JavaScript 3.062% 10 11 Delphi 3.055% 11 9 Ruby 2.308% 12 12 D 1.185% 13 13 PL/SQL 1.140% 14 14 SAS 0.843% 15 19 Pascal 0.689% 16 15 COBOL 0.631% 17 16 ABAP 0.603% 如果您精通 C 語言之後, 相信您可以很容易看懂其它的程式語言 這也正是筆者寫這一系列有關 C 語言書籍的最大原因 透過這一系列的書, 希望您可以深入了解 C 語言, 而不是一知半解, 往後要看懂其它的程式語言就很簡單了, 各位加油 6

第 1 章淺談 C 程式語言 1-3 如何學好程式設計 已在這領域打滾 20 幾年的我, 告訴您學習程式語言的不二法門是, 多做, 多看, 多親自除錯 ( debug), 所謂的三多 多做一些題目, 多看一些相關的書籍, 並且能夠做中學, 有錯誤 (bugs) 能親自除錯, 不要有 bugs 就找人替您 debug, 這是不好的習慣, 因為久而久之, 他的功力愈來愈好, 而您的功力愈來愈差 千萬要記住自己去 debug 記住這些, 您才有辦法 有朝一日, 出人頭地 1-4 如何編譯程式 利用 C 程式語言的語法寫出的程式, 稱之為 C 原始程式 (C source code), 它的延伸檔名是.c 如何撰寫 C 程式, 之後將它變為可執行檔, 請看以下的步驟 : 步驟一 : 選擇一個適當的編譯程式, 開始編輯 (edit) C 程式, 並取原始碼的延伸檔名為.c 步驟二 : 利用此編譯程式將此原始碼, 編譯成目的程式 (object code), 其延伸檔名是.obj 步驟三 : 利用連結程式 (linker), 將程式用到庫存函數之目的程式, 加以連結為可執行程式 (execution code), 其延伸檔名為.exe 如我們撰寫了一支用來排序 10000 筆資料的 C 程式, 名為 myfirst.c, 經過編譯程式將它編譯成 myfirst.obj 的目的程式, 再經由連結程式加以連結程式中所需的函數庫程式碼, 最後成為 myfirst.exe 的可執行程式碼 其編譯的過程, 如圖 1-4 所示 7

圖 1-4: 原始程式碼 (myfirst.c), 經由編譯程式編譯成目的碼 (myfirst.obj), 再由連結程式變成可執行程式碼 (myfirst.exe) 目前 C 的編譯程式有許多, 其中有一免費而且好用的 C 編譯程式, 那就是 Dev-C++, 它除了可以編譯 C 程式 ( 延伸檔名為.c) 以外, 也可以編譯 C++ 程式 ( 延伸檔名為.cpp) 除此 Dev-C++ 之外, 還有其它的編譯程式, 如 Microsoft Visual Studio 2008 在這一系列叢書中, 有一書名為 精彩的指標 : 燦爛的星星 (wonderful pointer: beautiful star), 可能有些程式需要使用它來編譯 這些編譯程式使用的都是整合性的界面環境, 熟悉一種之後, 另一種很快就可以上手了 有關 Dev-C++ 編譯程式使用手冊, 請參閱附錄 A 8

第 1 章淺談 C 程式語言 1-5 關鍵字 程式設計師 (programmer) 程式語言 (programming language) 程式 (program) 機器語言 (machine language) 編譯程式 (compiler) 翻譯者 (translator) 錯誤 (bugs) 除錯 (debug) 原始程式 (source code) 目的程式 (object code) 連結程式 (linker) 指標 (pointer) 資料結構 (data structures) 二元搜尋樹 (binary search tree) 1-6 上機實習 請選擇一種編譯程式, 將下列的程式逐字鍵入, 不必管程式內部的細節, 看看此程式的輸出結果為何? 此處旨在讓大家熟悉一下, 往後要用的編譯程式之操作 /* first.c */ #include <stdio.h> #include <stdlib.h> int main() { printf(" 大家一起來學 C 程式語言 "); 9

} printf("\n"); system("pause"); return 0; 1-7 參考文獻 1. Concept of programming language, 8 edition, Robert W. Sebesta, Addison Wesley. 2. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 10