第一階段:基礎知識強化

計算機編程基礎2008-02-07 23:57

 

一.計算機中數據的表示方法
計算機是一種電子設備,由複雜的電子元器件組合而成,一個電子元器件有帶電和不帶電兩種狀態,通常我們將帶電狀態表示爲數值1,不帶電狀態表示爲數值0,多個這樣的元器件的組合可以表示更多狀態,也就是可以表示更多的數據,如000表示0,001表示1,010表示2,011表示3,依此類推,111表示7,一個元器件可表示一位(bit)數據,這種表示數據的方式就叫二進制。在實際的電子設備中,我們將8個這樣的元器件形成一個單元,這樣的單元叫一個字節(byte),一個字節能表示多少個數呢?表示數值的範圍是0-255。
二進制計數的缺點:書寫太長,容易出錯,一般計算機的數據位數都是4的整數倍,所以,在計算機裏通常採用16進制計數法。用數字可以表示各種信息,計算機裏只有數值,當你在內存中看到一個數值時,這個數值可能代表各種意義,生活中的數值也可以代表其他意義,如1234可以代表密碼,存款額,電報信息,根據上下線索,我們知道能夠知道這數值代表的意義。補碼的應用,計算機裏沒有真正的負數,利用溢出,我們可將加法變減法,負數就是基於這個原理而用補碼來表示。面試經常碰到的一道考題,實現100位計算器就是檢查對計算機數據表示及轉化是否清楚。什麼是ASCII碼,ASCII碼不用死記。重點分析Ascii和Unicode的區別。GB-->BIG5原理。我們通常說的1M數據的單位是什麼?1M網速的單位又是什麼呢?

二.計算機硬件的組成結構及各部件的功能介紹
基本的計算機系統由輸入/輸出,存儲器,cpu(包括運算器,寄存器,和控制器)等幾個部分。計算機系統結構圖(見附圖1)。計算機的幾個主要部件用系統總線連接起來,總線分爲地址,數據,控制等三類,控制信息被控制器譯碼成各種控制信號通過控制線輸出,用求解兩個數相加的過程講解各部件的作用。8位機,16位,32位,64位機的區分。RAM/ROM/EPROM/硬盤的區別。

三.計算機指令與程序,程序代碼的組織結構
CPU和內存都從軟件運行的角度進行講解,CPU能夠進行算術運算,接受外圍設備狀態的變化,向外圍設備發出命令。這些算術運算,外圍設備狀態檢測,向外圍設備發出命令就是計算機指令,有各種各樣的指令(包括輸入,輸出),爲了區分這些指令,指令也是用用二進制數值來表示的,打個比方,我們可以用111代表加,110代表減,001代表向外設輸出,這些指令的集合就組成了我們的程序,指令分爲操作碼和操作數兩部分,在1+1例字中,+就是指令,1就是操作數。程序可以編寫完後,可以保存起來,在以後需要時,取出來重新運行。由於指令都是以數值表示的,因此,程序也是以數據的形式保存在硬盤上的。
內存是存儲數據和指令的地方,程序是預先編好的指令集合,程序運行前,必須先裝入內存,程序通常是按順序存儲在內存中的,程序計數器(PC)用於跟蹤指令所在的地址。程序剛開始時,PC指向程序的第一條指令的地址,CPU從PC所指向的內存中取出指令,將PC的內容加1,以指向下一條指令的地址,並處理剛纔取得的指令。上一條指令運行完後,CPU又從PC所指向的內存(下一個存儲單元)中接着取新的指令運行。計算機軟件就是這樣運行的。通過程序演示。
一條指令,對應計算機所能執行的一個基本動作,在編程種我們經常要用到跳轉、循環,中斷,這些都有專門的指令。計算機所能執行的全部指令,就是計算機的指令系統,這是某種CPU所特有的。用二進制指令表示的程序也叫機器碼。程序結構可分爲順序,分支,循環,子程序等。 堆棧原理,函數的調用傳值與傳引用的區別。

四.彙編語言與高級語言
用二進制表示的指令也叫機器碼指令,用機器碼編寫的指令不好理解和記憶,容易出錯,人們便很容易想到通過一些助記符(通常是英文單詞的縮寫)來代替操作碼。這樣寫出來的程序就是彙編程序。注意,最終交給計算機運行的還是機器碼,因此,要有相應的工具(本身也是程序)將彙編程序翻譯成機器碼。利用VC查看程序的彙編和機器碼。對於彙編只須簡單瞭解,一般我們不直接涉及彙編。簡要介紹8086的各彙編指令(LD,ADD,JNC,JP,SUB,OR,DEC,INC)。
用彙編語言編程,處理一件通用的事情,如屏幕輸出,需編寫大量的代碼。而且對每個程序員都要重複編寫和維護這些代碼,而且彙編程序還不能在不同的機器上運行。爲了解決上述問題,且讓用戶的程序集中在解決不同的實際問題上,而不是重複那些與計算機硬件地層相關的工作。人們有創造了高級語言,如C,BASIC,PASCAL等。人們編寫了能夠處理計算機操作中的日常事務的各種程序,並把他們結合在一起,這樣就形成了操作系統。什麼是系統函數調用,什麼是API。
在操作系統基礎上編寫的解決用戶各種實際問題的程序,就是我們的應用軟件,這也是我們這些程序員所要做的事情了。

五.程序的編譯與連接,C語言的程序結構組成,工程化管理,vc開發工具介紹
編譯過程,一個程序可以包含多個源文件,每個源文件是被獨立編譯,編譯的過程是逐行解釋的過程,只要碰到起不認識的符號就報錯,所以又將常用的符號的說明放在一個.h文件中,在原程序中把這個.h文件包含進來。增量編譯技術,修改頭文件不會引起自動編譯。
連接過程,每個源文件都會被編譯成各自的obj(機器碼),這些obj與系統提供的obj一起連接成exe。要調用別人提供的函數,只需對其進行聲明的頭文件和函數的機器碼所在的obj即可。
VC是編程語言,也是集成化(IDE)開發工具,提供了編輯器,編譯器,庫函數。用工程的方式管理多個源文件,爲我們的應用提供了方便,就象我們用文件夾管理文件一樣。
變量的定義,變量的作用,變量在內存中的生命週期。

六.計算機軟件的運行過程及計算機啓動原理。
bios,操作系統,應用軟件。引導操作系統時的常見故障,如果從A引導,A中的軟盤非操作系統,bios中硬盤信息設置錯誤。
硬盤分區的各項信息都在硬盤的0磁道1扇區的主引導記錄中保存。計算機通過讀取該主引導記錄來獲取系統引導信息,從而轉向相應的引導程序。分區共有三種:主引導分區,擴展分區和邏輯分區。一個主引導記錄中最多可以包括四個主引導分區項,分別啓動不同的操作系統。擴展分區中只能定義邏輯分區,邏輯分區只能出現在擴展分區中。


七.編程中的幾個簡單的小算法
-1可以當作0xffffffff使用。
乘除移位原理,2的n次方的表示。
每間房能住5人,x個人需多少房間。
x在0到3之間循環的算法。
八.演示程序代碼
/****1.cpp**********/
#include "stdio.h"
#include "2.h"
void main()
{
char ch1=getchar();
char ch2;
ch2=ch1+1;
putchar(ch2);
int z=add(1,2);
printf("%d\n",z);
}
/****2.cpp********/
int add(int x,int y)
{
return x+y;
}
/*****2.h********/
int add(int x,int y);
作業:
1.算出十六進制數3,7,a,b,c,d,e,f在計算機中的二進制表示,算出二進制數00001100,00001111,01011010的十六進制。必須做到隨便從中出去任一個數,一眼就能看出結果。
2.-3,-7,-53在內存中的存儲格式。
3.如何將一個1位整數用putchar函數在屏幕上輸出(考是否理解了ascii)。
4.在VC中調試運行演示程序,觀察各寄存器,內存,變量,彙編代碼。
5.編程實驗課堂上講的各種小算法。
6.體驗VC工具的工程化管理和編譯、連接過程。
1.)編寫一個能夠打印出“hello it315”的源文件。
2.)在一個新的源文件中編寫一個add函數,並在中調用。
3.)將的聲明用頭文件實現。
4.)實驗將函數所在的源文件從工程中去掉,改用連接obj的方式實現。
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章