第1章主要內容和教學要求程序員
1、計算機系統算法
- 計算機系統由硬件、軟件組成;
- 指令系統是硬件和軟件的界面。
2、計算機語言和程序設計方法編程
- 計算機語言
- 程序員與計算機溝通的語言;
- 描述解決問題的方法和相關數據。
- 計算機語言的級別
- 二進制代碼構成的機器語言;
- 使用助記符的彙編語言;
- 使用相似英語單詞和語句的高級語言;
- C++是面向對象的高級語言
- C++支持的程序設計方法
- 面向過程的程序設計方法;
- 面向對象的程序設計方法;
- 泛型程序設計方法。
3、C++程序的開發過程安全
4、信息在計算機中的表示與存儲數據結構
- 計算機中的數據用二進制表示;
- 邏輯數據、字符數據用二進制編碼表示。
學習建議學習
計算機系統基本概念測試
計算機硬件編碼
計算程序語言spa
- 計算機解決問題是程序控制的;
- 程序就是操做步驟;
- 程序要使用語言來表達。
機器語言翻譯
- 計算機能識別的是機器語言;
- 機器語言指令是由0和1編碼的;
- 例如:
加法指令多是「0001」。
計算機指令系統
- 機器硬件可以識別的語言(機器語言)的集合;
- 它是軟件和硬件的主要界面。
計算軟件
- 是一系列按照特定順序組織的計算機數據和指令的集合。通常來說軟件被劃分爲系統軟件、應用軟件和介於這二者之間的中間件;
- 軟件包括程序和文檔。
計算機程序
計算機語言和程序設計方法
最初的計算機語言——機器語言
- 由二進制代碼構成
- 計算機硬件能夠識別
- 能夠表示簡單的操做
- 例如:加法、減法、數據移動等等
彙編語言
- 將機器指令映射爲助記符
- 抽象層次低,須要考慮機器細節。
高級語言
- 關鍵字、語句容易理解;
- 有含義的數據命名和算式;
- 抽象層次較高;
- 屏蔽了機器的細節;
例如,這樣顯示計算結果:cout<<a+b+c/d
C++語言
- 是高級語言
- 支持面向對象的觀點和方法
- 將客觀事物看作對象
- 對象間經過消息傳送進行溝通
- 支持分類和抽象
面向過程的程序設計方法:
- 機器語言、彙編語言、高級語言都支持;
- 最初的目的:用於數學計算;
- 主要工做:設計求解問題的過程。
- 大型複雜的軟件難以用面向過程的方式編寫
面向對象的程序設計方法:
- 由面向對象的高級語言支持;
- 一個系統由對象構成;
- 對象之間經過消息進行通訊。
面向對象的基本概念
對象
- 通常意義上的對象:現實世界中實際存在的事物。
- 面向對象方法中的對象:程序中用來描述客觀事物的實體。
抽象與分類
- 分類依據的原則——抽象;
- 抽象出同一類對象的共同屬性和行爲造成類;
- 類與對象是類型與實例的關係。
封裝
- 隱蔽對象的內部細節;
- 對外造成一個邊界;
- 只保留有限的對外接口;
- 使用方便、安全性好。
繼承
多態
- 一樣的消息做用在不一樣對象上,能夠引發不一樣的行爲。
程序的開發過程
程序
- 源程序:
- 目標程序:
- 可執行程序:
- 鏈接目標程序以及庫中的某些文件,生成的一個可執行文件;
- 例如:Windows系統平臺上的.EXE文件。
三種不一樣類型的翻譯程序
C++程序的開發過程
- 算法與數據結構設計;
- 源程序編輯;
- 編譯;
- 鏈接;
- 測試;
- 調試。
計算機中的信息與存儲單位
計算機的基本功能
計算機中信息:
- 控制信息——指揮計算機操做;
- 數據信息——計算機程序加工的對象。
信息的存儲單位
- 位(bit,b):數據的最小單位,表示一位二進制信息;
- 字節(byte,B):八位二進制數字組成(1 byte = 8 bit);
- 千字節 1 KB = 1024 B;
- 兆字節 1 MB = 1024 K;
- 吉字節 1 GB = 1024 M。
計算機的數字系統
計算機的數字系統
程序中經常使用的數制:
R 進制轉換爲十進制:
(11111111.11)2=1×27+1×26+1×25+1×24+1×23+1×22+1×21+1×20+1×2-1+1×2-2 =(255.75)10
十進制整數轉換爲R 進制整數:
因此 6810=10001002
十進制小數→ R 進制小數:
因此 0.312510 = 0.01012
2、8、十六進制的相互轉換
- 1位八進制數至關於3位二進制數;
- 1位十六進制數至關於4位二進制數,例如:
(1011010.10)2=(001 011 010 .100)2=(132.4)8
(1011010.10)2=(0101 1010 .1000)2=(5A.8)16
(F7)16=(1111 0111)2=(11110111)2
數據在計算機中的編碼表示
二進制數的編碼表示
- 須要解決的問題:負數如何表示?
- 最容易想到的方案:
0:表示「+」號;
1:表示「-」號。
例如:
[+0]原 =000...0
[-0]原 =100...0
- 補碼
- 符號位可做爲數值參加運算;
- 減法運算可轉換爲加法運算;
- 0的表示惟一。
- 補碼的原理
n位二進制整數的模數爲 2n ;
n位二進制小數的模數爲 2。
- 補數:
- 一個數減去另外一個數(加一個負數),等於第一個數加第二個數的補數,例(時鐘指針): 8+(-2)=8+10 ( mod 12 )=6;
- 一個二進制負數可用其模數與真值作加法 (模減去該數的絕對值) 求得其補碼,例(時鐘指針):-2+12=10。
- 補碼的計算
- 藉助於「反碼」做爲中間碼;
- 負數的反碼與原碼有以下關係:
符號位不變(仍用1表示),其他各位取反(0變1,1變0),例如:
X=-1100110 [X]原 =1 1100110 [X]反 =1 0011001
- 正數的反碼與原碼錶示相同,正數的補碼與原碼相同;
- 反碼只是求補碼時的中間碼;
- 負數的補碼由該數反碼的末位加 1 求得。
- 對補碼再求補即獲得原碼。
- 補碼的優勢:
- 0的表示惟一;
- 符號位可做爲數值參加運算;
- 補碼運算的結果仍爲補碼。
實數的浮點表示
- 計算機中一般採用浮點方式表示小數;
- 實數 N 用浮點形式可表示爲: N=M×2E
E:2的冪,N:階碼;
M:N的尾數。
字符在計算機中的表示
ASCII碼是一種經常使用的西文字符編碼:用7位二進制數表示一個字符,最多能夠表示27=128個字符;
- 《GB 18030-2005 信息技術 中文編碼字符集》是中國國家標準。