TsinghuaX: 00740043X C++語言程序設計基礎 第一章提綱

第1章主要內容和教學要求程序員

1、計算機系統算法

  • 計算機系統由硬件、軟件組成;
  • 指令系統是硬件和軟件的界面。

2、計算機語言和程序設計方法編程

  • 計算機語言
    • 程序員與計算機溝通的語言;
    • 描述解決問題的方法和相關數據。
  • 計算機語言的級別
    • 二進制代碼構成的機器語言;
    • 使用助記符的彙編語言;
    • 使用相似英語單詞和語句的高級語言;
    • C++是面向對象的高級語言
  • C++支持的程序設計方法
    • 面向過程的程序設計方法;
    • 面向對象的程序設計方法;
    • 泛型程序設計方法。

3、C++程序的開發過程安全

  • 算法設計
  • 源程序編輯
  • 編譯
  • 鏈接
  • 運行調試

4、信息在計算機中的表示與存儲數據結構

  • 計算機中的數據用二進制表示;
  • 邏輯數據、字符數據用二進制編碼表示。

學習建議學習

  • 看教學視頻;
  • 作練習題;
  • 完成「實驗一」

 

 

 

計算機系統基本概念測試

計算機硬件編碼

 

計算程序語言spa

  • 計算機解決問題是程序控制的;
  • 程序就是操做步驟;
  • 程序要使用語言來表達。

機器語言翻譯

  • 計算機能識別的是機器語言;
  • 機器語言指令是由0和1編碼的;
  • 例如:

加法指令多是「0001」。

計算機指令系統

  • 機器硬件可以識別的語言(機器語言)的集合;
  • 它是軟件和硬件的主要界面。

計算軟件

  • 是一系列按照特定順序組織的計算機數據和指令的集合。通常來說軟件被劃分爲系統軟件、應用軟件和介於這二者之間的中間件;
  • 軟件包括程序和文檔。

計算機程序

  • 指令的序列;
  • 描述解決問題的方法和數據。

 

 

 

 

 

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

最初的計算機語言——機器語言

  • 由二進制代碼構成
  • 計算機硬件能夠識別
  • 能夠表示簡單的操做
  • 例如:加法、減法、數據移動等等

彙編語言

  • 將機器指令映射爲助記符
    • 如ADD、SUB、mov等;
  • 抽象層次低,須要考慮機器細節。

高級語言

  • 關鍵字、語句容易理解;
  • 有含義的數據命名和算式;
  • 抽象層次較高;
    • 例如,算式:a+b+c/d
  • 屏蔽了機器的細節;

例如,這樣顯示計算結果: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。

 

 

 

計算機的數字系統

計算機的數字系統

  • 二進制系統;
  • 基本符號:0、1。

程序中經常使用的數制:

 

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 進制整數:

  • 「除以R取餘」法。

 因此 6810=10001002

十進制小數→ R 進制小數:

  • 「乘 以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 信息技術 中文編碼字符集》是中國國家標準。
相關文章
相關標籤/搜索