计算机概论与c语言简介

上传人:wt****50 文档编号:50718602 上传时间:2018-08-10 格式:PPT 页数:77 大小:1.45MB
返回 下载 相关 举报
计算机概论与c语言简介_第1页
第1页 / 共77页
计算机概论与c语言简介_第2页
第2页 / 共77页
计算机概论与c语言简介_第3页
第3页 / 共77页
计算机概论与c语言简介_第4页
第4页 / 共77页
计算机概论与c语言简介_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《计算机概论与c语言简介》由会员分享,可在线阅读,更多相关《计算机概论与c语言简介(77页珍藏版)》请在金锄头文库上搜索。

1、第一章計算機概論與C語言簡介1在本章中,我們將回顧一些計算機概論的基本知識,藉 由這些基本知識,進而學習電腦的程式設計。除此之外 ,我們也將針對C語言的編譯器及執行環境做一些說明, 加強讀者在往後章節中練習範例時所需要的基本知識。2大綱 1.1 電腦硬體 1.1.1算數邏輯單元(Arithmetic and Logic Unit) 1.1.2控制單元(Control Unit) 1.1.3記憶體單元(Memory unit and Storage Unit) 1.1.4輸入單元(Input unit) 1.1.5輸出單元(Output unit) 1.2 電腦軟體 1.3 程式語言 1.3.1

2、機器語言 1.3.2低階語言 1.3.3高階語言 1.4 C語言簡介3大綱(續) 1.5 程式開發流程與編譯器 1.5.1C語言程式的開發流程 1.5.2編譯器(Compiler)【補充】 1.5.3整合開發環境(IDE;Integrated Development Environment) 1.6 編譯器與程式開發實例 1.6.1GCC編譯器 1.6.2Dev-C+整合開發環境 1.6.3Borland C+ Builder 1.7 本章回顧及下章預覽41.1 電腦硬體電腦硬體就是您可以看到的電腦設備(拆開外殼),不過若光是這樣形容 電腦硬體未免過於簡單。實際上,若從功能面加以區分,可將電腦

3、硬體分 為5大單元(如下圖),5個單元分別負責不同的工作。 【註】: 算數邏輯單元與控制單元 合稱中央處理單元(就是 常聽到的CPU),中央處理 單元和主記憶體則為電腦 的核心部分,其餘的周邊 設備(輸入單元與輸出 單元)必須與之連結, 透過中央處理單元的控制 ,使周邊設備正常運作。5 算數邏輯單元(簡稱ALU)是執行程式中各類運算的實體單 位。這些運算則可以分為兩大類:算數運算與邏輯運算。算 數運算包含加、減、乘、除等等的數值運算,而邏輯運算則 包含AND、OR、NOT、移位等位元位元組的邏輯運算。1.1.1算數邏輯單元61.1.2控制單元 控制單元(簡稱CU)的功能為控制流程及協調輸入、輸

4、出、 記憶、算數邏輯等4大單元的運作。控制單元中包含(1)記錄 指令運作順序的微程式(microprogram)、(2)取得下一指令 的邏輯電路 (3)驅動元件的解碼器(decoder)及(4)眾多選擇 器(multiplexer)。 當指令進入CPU之後,控制元件會先進行指令解碼(Decode),並按照 指令種類執行對應的微程式,發出不同的訊號完成該指令所需要完成 的各項功能,最後執行邏輯電路以便取得下一個指令。71.1.3記憶體單元 記憶體單元分為主記憶體(main memory)與輔助記憶體 (secondary memory),主要功能是用來儲存資料(程式也是 一種資料),任何要被執行

5、的程式都必須放置於主記憶體中 ,CPU才能存取該程式,對於新型的作業系統而言,會將部 分的輔助記憶體當作是虛擬的主記憶體以便解決程式過多或 過大而無法完全載入主記憶體的問題。81.1.3記憶體單元 主記憶體(又稱為內部記憶體),目前以半導體元件制成,特性為存取速度 快、成本高。主記憶體依照存取特性又可以分為隨機存取記憶體(Random Access Memory;簡稱RAM)及唯讀記憶體(Read Only Memory;簡稱ROM) 。 RAM的成本較低,但是無法於電力消失時保存資料,故為揮發性記憶體的一 種。ROM成本較高,但卻可以在無電力的狀況下保存資料,傳統的ROM只能 寫入資料一次,

6、因此通常只會把啟動電腦所需要的小程式儲存在ROM裡面, 例如BIOS就是使用ROM做為記憶體。 【註】:目前ROM已經發開成可以重複寫入資料,例如:EPROM、 EEPROM等。其中的P為Programmable的縮寫,稱為可程式化的 ROM,清除原本資料的方式則與RAM有所不同,例如使用紫外線清除資 料以及較高電壓清除資料。但成本仍比一般的RAM高出許多。 輔助記憶體(又稱為外部記憶體),目前以磁性物體或光學材料組成,例如 :硬碟機、軟碟片、光碟片。輔助記憶體的存取速度相對於主記憶體慢了數 十倍以上,但製作成本則比主記憶體低了數十倍以上,因此適合儲存大量的 資料。91.1.4輸入單元 輸入單

7、元是具有輸入功能的週邊設備,例如鍵盤、滑鼠 、搖桿等等。使用者可以藉由這些輸入裝置與電腦取得溝通 的管道。10輸出單元恰與輸入單元相反,所有具有輸出功能的設備皆屬輸出單元 的元件,主要功能是將程式執行的結果(文字、聲音、影像)輸出或顯示 。常見的輸出裝置有螢幕、印表機等等。某些週邊設備同時具有輸入與輸 出的功能,例如:觸控式螢幕、會震動的搖桿等等。 【註】:對於Linux/Unix作業系統而言,任何除了CPU與主記憶體之外的設備 都可將之視為週邊輸出入設備,因此,硬碟機也被視為輸出入的裝置(device ),如果您對Linux指令熟悉的話,可以很簡單的把原本應該輸出到螢幕的文 字,轉換為輸出到

8、檔案。1.1.5輸出單元11電腦軟體分為資料與程式兩大類,事實上不論是哪一類,都是以0、1的二 位元表示法儲存在電腦設備中(例如:儲存於硬碟機中)。而程式又可以 分為系統程式(System Program)與應用程式(Application Program) 。系統程式一般為較接近硬體底層的低階程式,例如:作業系統 (Operating System)、編譯程式(Compiler)、組譯程式(Assembler),連結 程式(Linker)等都屬於系統程式。應用程式則是架構在系統程式之上,依 據某種特殊需求而開發出來的軟體,例如:Office、帳務系統、電腦遊戲 等等。1.2 電腦軟體系統程式

9、與應用程式關係圖系統程式與應用程式階層圖121.3 程式語言 語言的用途是做為人與人溝通的橋樑,例如:和美國人交談 就要用英文溝通。同樣地,人若要和電腦溝通的話,就必須 使用電腦懂的語言,這種語言稱為程式語言( Programming Language)。而一般我們用來與人溝通的語言 則稱為自然語言(Natural Language)。 程式語言依據與自然語言的相似度又可以分為3種:機器語言、低階 語言及高階語言。其中高階語言與人類所使用的自然語言最為相近, 而機器語言則和人類所使用的語言南轅北轍。131.3 程式語言圖1-6 程式語言分類14 機器語言(Machine Language)是電

10、腦硬體唯一看得懂的語 言,換句話說,機器語言就是一連串的0、1二進位數字組合 ,因此又稱為機器碼。一般人通常看不懂這些0、1所代表的 特殊涵義,其實對於電腦而言,這些0、1 的組合數字,可能 代表某種資料,也可能代表某個指令。由於大多數的人無法 了解或記憶這一連串0、1數字所代表的涵義,因而發展了低 階語言與高階語言。 【註】:資料或程式確實是用二進位表示,但有的時候為了縮短這一 連串的二進位數字表示,某些書籍或軟體會將機器語言使用16進制來 加以表達。例如:0100100149H。1.3.1機器語言151.3.2低階語言 低階語言(Low-level Language)是一種接近於機器語言的

11、 表示方法,不過卻使用人類比較容易記憶的單字形式來對應 一連串的0、1組合。最典型的低階語言就是組合語言( Assembly Language)。在組合語言中,使用運算子與運算 元來表示一連串的0、1組合,而這些運算子則使用類似英文 的縮寫以利人類的記憶與理解,例如:使用INC來代表 Increment(累加指令)。161.3.2低階語言 在上表中,很明顯的可以看出,組合語言的指令與機器語言的指令是 一對一的對應關係,但是卻比機器語言容易記憶,除此之外,其他組 合語言的設計都與機器語言的設計相同,我們可以從下表中更明確地 看出兩者的相同與相異處:x86機器語言x86組合語言意義00000011

12、11001000ADD CX,AX執行暫存器加法101110010011010000010010MOV CX,1234H將CX暫存器的值指定為1234H8051機器語言指令8051組合語言指令意義00000100INC執行累加110000100DIV執行除法8051組合語言指令與機器語言指令的對應x86組合語言與機器語言的對應17 由上述的兩個表格中,我們可以得知幾件事,(1)組合語言比機器語言 更接近人類所使用的自然語言。(2)不同的CPU所使用的組合語言也不 相同。(3)任何一個完整的組合語言指令恰好對應一組機器語言的0、1 串列。 組合語言與機器語言一對一的特性,使得組合語言可以完全 掌

13、控電腦的硬體結構,如此一來,在執行效率上自然也就完 全交由程式設計師決定。不過,由於不同的CPU必須使用不 同的組合語言並且必須對於該CPU的組織結構有充分認知, 因此,這種低階語言仍舊無法被絕大多數的人所接受,因而 發展了更接近於人類自然語言的高階語言。 【註】:組譯程式(Assembler)是一種用來將組合語言轉換為機器 語言的一套程式,相較於其他系統程式而言,組譯程式屬於一種 比較容易開發的系統程式。1.3.2低階語言18組合語言雖然比機器語言更接近於自然語言,但組合語言的程式設計師必 須對於執行程式的處理器有更多的了解,並且每個處理器的組合語言並不 相同,因此,一種比組合語言更接近自然

14、語言且不因更換機器而改變語法 的程式語言也被發展出來,此種語言就是高階語言。 高階語言(High-level Language)使用更接近人類思維的方式來設計程 式,當程式設計完成之後,必須通過另外一些翻譯程式的翻譯後才能夠被 電腦執行。高階語言的運算子通常具有比較強大的功能,因此,單一行的 高階語言程式可能被翻譯成許多的機器碼以便完成複雜的工作。 依據手續的不同,我們可以將高階語言區分成編譯式語言與直譯式語言。編 譯式語言的翻譯程式稱為編譯器(compiler),而直譯語言的翻譯程式稱為直 譯器(interpreter)。由於編譯器與直譯器比起組譯器的功能更為強大及複雜 ,因此,高階語言通常

15、具有較高的硬體獨立性(machine independent),也就 是具有可攜性(portable)。換句話說,當您在A機器上所撰寫的高階語言程 式,如果想要拿到B機器上執行時,通常不需要修改程式或只需要小幅度的修 改,因為您只需要更換另外一套在B機器上執行的編譯器或直譯器就可以將程 式重新翻譯並在B機器上正確執行。1.3.3高階語言19 編譯式語言 編譯器採用整批作業(Batch)方式來處理程式翻譯的工作,換句話 說,當我們將程式設計完畢並交由編譯器翻譯之後,編譯器會將翻譯 結果存成一個目的檔(object file),而這個目的檔可經由連結其他目 的檔及程式庫之後形成可執行檔(execu

16、te file),並由電腦直接執行 。常見的編譯式語言有C、C+(編譯器為gcc、g+、VC+、BCB) 、Pascal、Object Pascal(編譯器為Delphi、Kylix)等等。 編譯式語言使用模組化技巧,也就是把某些具有特殊功能的片段程式 獨立成一個個的函式,並將之集合成一個函式庫檔案,如此一來,就 可以讓需要使用該功能的程式透過連結的方式加以結合,縮短撰寫程 式的時間。例如:ANSI-C的math函式庫中就包含許多求三角函數的 函式,所以我們並不需要自行撰寫求三角函數的詳細步驟,只要在需 要求三角函數值時,引用Math函式庫即可。一個基本編譯式語言的程 式處理流程如下圖。1.3.3高階語言201.3.3高階語言編譯式語言的程式處理流程211.3.3高階語言直譯式語言 直譯器與編譯器處理程式的步驟不同,當我們使用直譯式語言撰寫程式完畢 並使用直譯器來翻譯程式時,並不會產生目的檔或

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号