1. 程式人生 > >第一章-緒論

第一章-緒論

本章主要內容

一、計算機系統

①計算機系統由硬體、軟體組成;

②指令系統是硬體、軟體的介面。

二、計算機語言和程式設計方法

1、計算機語言

①程式設計師與計算機溝通的語言;

②描述解決問題的方法和相關資料。

2、計算機語言的級別

①二進位制程式碼構成的機器語言;

②使用助記符的組合語言;

③使用類似英語單詞和語句的高階語言;

④C++是面向物件的高階語言。

3、C++支援的程式設計方法

①面向過程的程式設計方法;

②面向物件的程式設計方法;

③泛型程式設計方法。

三、C++程式設計的開發過程

①演算法設計

②源程式編輯

③編譯

④連線

⑤執行除錯

四、資訊在計算機中的表示與儲存

①計算機中的資料用二進位制表示;

②邏輯資料、字元資料用二進位制編碼表示。


計算機系統基本概念

1、計算機硬體

2、計算程式語言

①計算機解決問題是程式控制的;

②程式就是操作步驟;

③程式要使用語言來表達。

3、機器語言

①計算機能識別的是機器語言;

②機器語言指令是又0和1編碼的;

③列如:加法指令可能是“0001”。

4、計算機指令系統

①機器硬體能夠是別的語言(機器語言)的集合;

②它是軟體和硬體的主要介面。

5、計算機軟體

①是一系列按照特定順序組織的計算機資料和指令的集合。一般來講軟體被劃分為系統軟體、應用軟體和介於這兩者之間的中介軟體;

②軟體包括程式和文件。

6、計算機程式

①指令的序列;

②描述解決問題的方法和資料

計算機語言和程式設計方法

1、最初的計算機語言-機器語言 ①由二進位制程式碼構成; ②計算機硬體可以識別; ③可以表示簡單的操作; ④例如:加法、減法、資料移動等等。 2、組合語言 ①將機器指令對映為助記符,如ADD、SUB、MOV等; ②抽象層次低,需要考慮機器細節。 3、高階語言 ①關鍵字、語句容易理解; ②有含義的資料命名和算式; ③抽象層次高;例如,算式:a+b+c/d
④遮蔽了機器細節;例如,這樣顯示計算結果:cout << a+b+c/d 4、C++語言 ①是高階語言 ②支援面向物件的觀點和方法
  • 將客觀事物看作物件
  • 物件間通過訊息傳送進行溝通
  • 支援分類和抽象
5、面向過程的程式設計方法 ①機器語言、組合語言、高階語言都支援; ②最初的目的:用於數學計算; ③主要工作:設計求解問題的過程; ④大型複雜的軟體難以用面向過程的方式編寫。 6、面向物件的程式設計方法 ①由面向物件的高階語言支援;、 ②一個系統由物件構成; ③物件之間通過訊息進行通訊。

面向物件的基本概念

1、物件 ①一般意義上的物件:現實世界中實際存在的事物。 ②面向物件方法中的物件:程式中用來描述客觀事物的實體。 2、抽象與分類 ①分類依據的原則——抽象; ②抽象出同一類物件的共同屬性和行為形成類; ③類與物件是型別與例項的關係。 3、封裝
  • ①隱藏物件的內部細節;
②對外形成一個邊界; ③只保留有限的對外介面; ④使用方便、安全性好。 4、繼承 ①意義在於軟體複用; ②改造、擴充套件已有類形成新的類。 5、多型 ①同樣的訊息作用在不同的物件上,可以引起不同的行為。

程式的開發過程

1、程式 ①源程式: 用源語言寫的,有待翻譯的程式 ②目標程式: 源程式通過翻譯程式加工以後生成的機器語言程式 ③可執行程式: 連線目標程式以及庫中的某些檔案,生成的一個可執行檔案; 例如:Windows系統屁股擡上的EXE檔案。 2、三種不同型別的翻譯程式 ①彙編程式:將組合語言源程式翻譯成目標程式; ②編譯程式:將高階語言程式翻譯成目標程式; ③解釋程式:將高階語言源程式翻譯成機器指令,邊翻譯邊執行。 3、C++程式的開發過程 ①演算法與資料結構設計; ②源程式編輯; ③編譯; ④連線; ⑤測試; ⑥除錯。

計算機中的資訊與儲存單位

1、計算機的基本功能 ①算術運算; ②邏輯運算。 2、計算機中的資訊 ①控制資訊——指揮計算機操作; ②資料資訊——計算機程式加工的物件。 3、資訊的儲存單位 ①位(bit,b):資料的最小的單位,表示一位二進位制資訊; ②位元組(byte,B):八位二進位制數字組成(1 byte = 8 bit); ③千位元組 1KB = 1024B; ④兆位元組 1MB = 1024K; ⑤吉位元組 1GB = 1024M;

計算機的數字系統

1、計算機的數字系統 ①二進位制系統; ②基本符號:0、1. 2、程式中常用的數制 3、R進位制轉換為十進位制 各位數字與它的權相乘,其積相加,例如: (11111111.11) 2 =1 × 2 7 +1 × 2 6 +1 × 2 5 +1 × 2 4 +1 × 2 3 +1 × 2 2 +1 × 2 1 +1 × 2 0 +1 × 2 -1 +1 × 2 -2  =(255.75) 10
4、十進位制整數轉換為R進位制整數 除以R取餘法 5、十進位制小數→R進位制小數 乘以R取整法 6、八、十六進位制的相互轉換 ①1位八進位制數相當於3位二進位制數; ②1位十六進位制數相當於4位二進位制數,例如:

(1011010.10)2=(001011 010 .100)2=(132.4)8

(1011010.10)2=(01011010 .1000)2=(5A.8)16

(F7) 16 (11110111) 2 (11110111

資料在計算機中的編碼表示

1、二進位制數的編碼表示 ①需要解決的問題:負數如何表示? ②最容易想到的方案:      0:表示“+”號;      1:表示“-”號。 ③原碼 “符號——絕對值”表示的編碼,例如: 原碼的缺點: 1)零的表示不唯一 [+0]原 = 000...0 [-0]原 = 100...0 2)進行四則運算時,符號位必須單獨處理,運算規則複雜。
④補碼 符號位可作為數值參加運算; 減法運算可轉換為加法運算; 0的表示唯一。 ⑤補碼的原理 模數:n位二進位制整數的模數為2^n;n位二進位制小數的模數為2. 補數: 一個數減去另一個數(加一個負數),等於第一個數加第二個數的補數,例(時鐘指標):8+(-2)=8+10(mod 12)=6; 一個二進位制負數可用其模數與真值做加法(模減去該數的絕對值)求得其補碼。例(時鐘指標):-2+12=10. ⑥補碼的計算 1)藉助於“反碼”作為中間碼; 2)負數的反碼與原碼有如下關係: 符號位不變(仍用1表示),其餘各位取反(0變1,1變0),例如:X = -1100110  [X]原 = 11100110  [X]反=10011001 3)正數的反碼與原碼錶示相同,正數的補碼與原碼相同; 4)反碼只是求補碼時的中間碼; 5)負數的補碼由該數的反碼的末位加1求得; 6)對補碼再求補即得到原碼。 ⑦補碼的優點 0的表示唯一; 符號位可作為數值參加計算; 補碼運算的結果仍為補碼。
2、實數的浮點表示 ①計算機中通常採用浮點方式表示小數 ②實數N用浮點形式可表示為N = Mx2^E E:2的冪,N:階碼; M:N的尾數
3、字元在計算機中的表示 ①字元在計算機中是通過編碼表示的; ②例如:ASCII碼是一種常用的西文字元編碼:用7位二進位制數表示一個字元,最多可以表示2^7 = 128個字元; ③《GB 18030-2005 資訊科技 中文編碼字符集》是中國國家標準。