程序設計-1(基礎知識)-2012_第1頁
程序設計-1(基礎知識)-2012_第2頁
程序設計-1(基礎知識)-2012_第3頁
程序設計-1(基礎知識)-2012_第4頁
程序設計-1(基礎知識)-2012_第5頁
已閱讀5頁,還剩107頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機程序設計理論吳文濤wt@

方昕lg@

董齊興 dqx@

沈傳魁/p>

sck@

課程章節(jié)一、計算機及程序設計基礎二、C程序結構和設計方法三、數(shù)據(jù)類型、運算符和表達式四、程序的控制結構與基本算法五、數(shù)組六、函數(shù)七、預處理八、指針九、結構體與共用體十、位運算十一、流與文件操作十二、面向對象程序設計語言C++簡介教材與參考書《C語言程序設計》《計算機程序設計學習指導與練習》《TheCProgrammingLanguage》 (C程序設計語言)(K&R)

第一章計算機及程序設計

基礎知識1.1計算機的發(fā)展史1.2計算機系統(tǒng)的組成及工作原理1.3微型計算機的系統(tǒng)結構

1.4信息的表示及存儲形式1.5計算機程序及算法本章主要內容

KeyQuestions§1.1

計算機發(fā)展史在電子計算機之前,人類用于計算的輔助工具有:算盤,手搖計算機(機械式,主要由機械齒輪組成),大型微分分析儀等。最早研制電子計算機,是為了解決科技進步特別是軍事應用方面運算量越來越大的問題。

世界上第一臺電子計算機誕生于1946年2月的世界上第一臺電子計算機,是為美國陸軍計算槍炮火力表而研制。每張火力表需要計算數(shù)百條彈道,一條飛行時間為60秒的彈道,手搖計算機20小時,大型微分分析儀15分鐘。軍方要求每天計算機6張火力表。ENIAC(埃尼亞克)這臺名為ENIAC(電子數(shù)字積分計算機的縮寫)的機器,使用18800個電子管,1500多個繼電器,耗電150千瓦,占地170平方米,重達30噸,可謂“龐然大物”也。電子計算機時代的到來ENIAC由美國賓夕法尼亞州立大學莫爾學院設計研制,價值40多萬美元,運算速度5000次/秒。今天看來,其運算速度低得可憐,而在當時,計算一條彈道時間縮短為30秒。它運算兩小時,相當于一個物理學家100年的手工計算,不能不說是一個劃時代的事件——表明了電子計算機時代的到來。

計算機史從1946年到今天,計算機技術已經(jīng)經(jīng)歷了四次革命性的變化(四代),一代比一代體積縮小,功能增強,價格下降。第一代(1946-1958)

電子技術,核心元件電子管,幾千次/秒,用于軍事與科學研究。第二代(1959-1963)

半導體技術,核心元件晶體管,幾十萬次/秒,用于科學計算、數(shù)據(jù)和事務處理。1954年,美國貝爾實驗室研制成功第一臺使用晶體管線路的計算機,取名“催迪克”(TRADIC),裝有800個晶體管。第三代(1964-1970)

固體物理技術,核心元件中小規(guī)模集成電路,在幾平方毫米單晶硅片上集成十幾個至上百個電子元件;幾十萬至幾百萬次/秒;用于各個科學領域。體積變小,功耗更低價格降低運算速度提高應用領域進一步擴大第四代(1971至今)

核心元件大規(guī)模和超大規(guī)模集成電路(如“奔騰4處理器”包含4200萬個晶體管);上千萬次至上億次/秒;進入現(xiàn)代社會各個領域。超大規(guī)模集成電路應用的直接結果是微型計算機的誕生。今天之計算機迄今為止的四代計算機都是按美籍匈牙利數(shù)學家馮·諾依曼提出的工作原理設計制造的,所以也稱為“馮·諾依曼型計算機”。隨著技術的發(fā)展,今天的計算機已不再是一種單純的計算工具。今天的計算機,除了高速運算(數(shù)十億次/秒),還有邏輯處理功能,是一種具有強大信息處理能力的“智能化機器”。換言之,計算機應用已從單純的數(shù)值計算轉入信息處理領域。正因為如此,才使計算機走出科研院所的“象牙之塔”,進入現(xiàn)代社會的各個領域。今天的電子計算機,不僅會高速進行各種各樣的科學計算,而且象人腦一樣,會“判斷”,會“思考”,會迅速果斷地處理各種問題。所以,越來越多的人開始把計算機叫做“電腦”。計算機發(fā)展史上的重要人物查爾斯·巴比奇(CharlesBabbage)。這一位十九世紀的英國數(shù)學家,發(fā)明了世界上第一臺機械計算機器——差分機。在19世紀20、30年代,巴比奇就設計了差分機和分析機,他把機器設計成三個部分,一是用來儲存數(shù)據(jù)信息的“倉庫(TheStore)”,二是進行數(shù)據(jù)運算處理的“工場(Themill)”。而巴比奇一生的后四十年都致力于發(fā)展一部“會分析的機器”,這位高速數(shù)字電腦之父希望這部機器只要輸入資料后就可不須人類直接指示,進行各種數(shù)學運算。那臺怎么也算不上美觀的機械,卻和現(xiàn)代電腦一樣,擁有記憶體、運算部門、控制中心和輸出輸入中心這四部分,可謂歷史性的創(chuàng)造。計算機發(fā)展史上的重要人物英國數(shù)學家圖靈(Turing):創(chuàng)建了自動機理論,發(fā)展了可計算機性理論,奠定了人工智能的基礎。美籍匈牙利數(shù)學家馮.諾依曼(VonNeumann):確立了現(xiàn)代計算機的基本結構,即馮.諾依曼體系結構。其要點是計算機由運算器、控制器、存儲器、輸入設備和輸出設備五大部分組成數(shù)據(jù)和指令(程序)以二進制代碼形式不加區(qū)別地在執(zhí)行前存放在存儲器中存儲程序和數(shù)據(jù)的概念計算機科學之父:阿倫·圖靈AlanMathisonTuring,1912~1954,英國數(shù)學家右圖:圖靈紀念館阿蘭·麥席森·圖靈,1912年生于英國倫敦,1954年死于英國的曼徹斯特,他是計算機邏輯的奠基者,許多人工智能的重要方法也源自于這位偉大的科學家。他對計算機的重要貢獻在于他提出的有限狀態(tài)自動機也就是圖靈機的概念,對于人工智能,它提出了重要的衡量標準“圖靈測試”,如果有機器能夠通過圖靈測試,那他就是一個完全意義上的智能機,和人沒有區(qū)別了。圖靈獎:計算機界的諾貝爾獎ACM是美國計算機學會的縮寫。最初這是美國的一個學術性組織,現(xiàn)在是美國乃至全世界最重要、影響最大的一個計算機學術團體。1966年,ACM創(chuàng)建圖靈獎,有"計算機界的諾貝爾獎"之稱。這個獎以英國數(shù)學家圖靈命名,圖靈在計算機出現(xiàn)之前就提出了計算機的模型,設想了它由哪些部件組成,以何種方式和順序工作,被稱為圖靈機,奠定了計算機科學理論的基礎。但圖靈的結局是個悲劇,他在42歲正當年富力強,創(chuàng)造力最旺盛的時候用自殺結束了自己的生命,令世人惋惜,用他的名字命名這個獎項就是為了紀念這位偉人。

計算機之父—馮·諾依曼著名美籍匈牙利數(shù)學家。1903年12月3日生于匈牙利布達佩斯的一個猶太人家庭。馮·諾伊曼自童年起在吸收知識和解題方面就具有驚人的速度。六歲時他能心算做八位數(shù)乘除法,八歲時掌握微積分,十二歲就讀懂領會了波萊爾的大作《函數(shù)論》要義。一生掌握了七種語言。馮·諾依曼對人類的最大貢獻是對計算機科學、計算機技術和數(shù)值分析的開拓性工作。ENIAC機證明電子真空技術可以大大地提高計算技術,不過,ENIAC機本身存在兩大缺點:(1)沒有存儲器;(2)它用布線接板進行控制,甚至要搭接見天,計算速度也就被這一工作抵消了。馮·諾依曼由ENIAC機研制組的戈爾德斯廷中尉介紹參加ENIAC機研制小組后,便帶領這批富有創(chuàng)新精神的年輕科技人員,向著更高的目標進軍。1945年,他們在共同討論的基礎上,發(fā)表了一個全新的“存儲程序通用電子計算機方案”

(EDVAC)。EDVAC方案明確奠定了新機器由五個部分組成,包括:運算器、邏輯控制裝置、存儲器、輸入和輸出設備,并描述了這五部分的職能和相互關系。EDVAC機還有兩個非常重大的改進,即:采用了二進制,不但數(shù)據(jù)采用二進制,指令也采用二進制;建立了存儲程序,指令和數(shù)據(jù)便可一起放在存儲器里,并作同樣處理。這些改進簡化了計算機的結構,大大提高了計算機的速度。1946年7,8月間,馮·諾依曼和戈爾德斯廷、勃克斯在EDVAC方案的基礎上,為普林斯頓大學高級研究所研制IAS計算機時,又提出了一個更加完善的設計報告《電子計算機邏輯設計初探》。以上兩份既有理論又有具體設計的文件,首次在全世界掀起了一股“計算機熱”,它們的綜合設計思想,便是著名的“馮·諾依曼機”,其中心思想就是存儲程序原則:指令和數(shù)據(jù)一起存儲。這個概念被譽為”計算機發(fā)展史上的一個里程碑"。它標志著電子計算機時代的真正開始,指導著以后的計算機設計。§1.2計算機系統(tǒng)的組成和工作原理計算機系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)組成計算機的硬件系統(tǒng)及工作原理1、硬件系統(tǒng)的基本組成:1)硬件:計算機系統(tǒng)中由電子、機械和光電元件等組成的各種計算機部件和計算機設備。

裸機:未配置任何軟件的計算機。

2)硬件基本組成:(1)運算器(ALU)(2)控制器(指揮中心)

(3)存儲器(主存和輔存)

(4)輸入設備:鍵盤,鼠標,數(shù)字化儀,掃描儀等.(5)輸出設備:打印機,繪圖儀,顯示器等.說明:衡量存儲器容量的單位是字節(jié)(B),千字節(jié)(KB)、兆字節(jié)(MB)、吉字節(jié)(GB)、TBCPU主機外設運算器功能:算術運算和邏輯運算控制器功能:使計算機能自動地執(zhí)行程序,并使各部分協(xié)調工作存儲器功能:用于保存程序和數(shù)據(jù)

主存儲器(內部存儲器)

存放當前所執(zhí)行程序的指令和數(shù)據(jù)

輔助存儲器(外部存儲器)

存放暫不參加運算的程序的指令和數(shù)據(jù)輸入設備用于程序和數(shù)據(jù)輸入(標準設備:鍵盤)輸出設備用于程序和數(shù)據(jù)輸出(標準設備:顯示器)2、其他有關概念:1)中央處理器(CPU):包括運算器和控制器兩大部分,CPU是計算機硬件的核心。2)主機:在硬件系統(tǒng)中,內存、CPU和連接輸入輸出設備的接口統(tǒng)稱為主機。3)外部設備:也稱為外設,輸入設備和輸出設備都是計算機的外部設備。3、基本工作原理

馮?諾依曼的“埃得伐克”理論:二進制、存儲程序工作原理、五大構成部件。

(1)二進制:以二元邏輯為基礎,用0和1二進制碼組成各種信息進行運算。

(2)“存儲程序”工作原理:在計算機中設置存儲器,將二進制編碼表示的計算步驟與數(shù)據(jù)存放在存儲器中,機器一啟動就能按照程序指定的邏輯順序依次取出存儲內容進行譯碼和處理,自動完成由程序所描述的處理工作。它被譽為計算機史上的里程碑。計算機工作原理示意圖運算結果輸入設備主存儲器輔助存儲器輸出設備運算器控制器輸入輸出程序原始數(shù)據(jù)指令數(shù)據(jù)線控制信號線常用術語在計算機五大部分中,運算器和控制器是最核心的部分,通常做在一個器件上,稱作CPU。

【術語】CPU=控制器+運算器(+寄存器組)只有主存(內存)可直接與CPU交換信息,它與CPU組合可實現(xiàn)計算機的基本功能。

【術語】主機=CPU+主存儲器輸入/輸出(Input/Output)設備和外存合稱“外圍設備”。

【術語】外設=I/O+輔助存儲器運算器輸入設備主存儲器輔助存儲器輸出設備控制器輸入輸出程序原始數(shù)據(jù)運算結果馮·諾依曼型計算機上述計算機的基本結構是由美藉匈牙利科學家馮·

諾依曼于1946年提出的。迄今為止所有進入實用的電子計算機都是按馮·諾依曼的提出的結構體系和工作原理設計制造的,故又統(tǒng)稱為“馮·諾依曼型計算機”。新一代計算機將努力突破馮氏的結構體系和工作原理,將是“非馮·諾依曼型計算機”。馮·諾依曼型計算機的兩大特征程序存儲(計算機自動連續(xù)工作的基礎)采用二進制(機內一切信息均需為二進制編碼形式存在)馮·諾依曼型計算機的工作原理存儲程序(將欲執(zhí)行的任務事先編成程序存入主存中)程序控制(執(zhí)行時由CPU調用主存中的程序進行運算)指令和指令系統(tǒng)一臺計算機所能執(zhí)行的各種不同類型指令的總和。即一臺計算機所能執(zhí)行的全部操作。不同計算機的指令系統(tǒng)包含的指令種類和數(shù)目也不同。指令系統(tǒng)的組成:操作碼和操作數(shù)一般均包含算術運算型、邏輯運算型、數(shù)據(jù)傳送型、判定和控制型、輸入和輸出型等指令。指令系統(tǒng)是表征一臺計算機性能的重要因素,它的格式與功能不僅直接影響到機器的硬件結構,而且也直接影響到系統(tǒng)軟件,影響到機器的適用范圍。

完備性:指用匯編語言編寫各種程序時,指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實現(xiàn)。完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。有效性:是指利用該指令系統(tǒng)所編寫的程序能夠高效率地運行。高效率主要表現(xiàn)在程序占據(jù)存儲空間小、執(zhí)行速度快。規(guī)整性:包括指令系統(tǒng)的對稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。兼容性:至少要能做到“向上兼容”,即低檔機上運行的軟件可以在高檔機上運行。

說明:(1)操作系統(tǒng):大致包括五大管理功能:處理器管理、存儲管理、設備管理、文件管理和作業(yè)管理。分類:P2、DOS、WINDOWS、UNIX(2)計算機語言:1)機器語言:計算機能直接識別和執(zhí)行的語言;面向機器2)匯編語言:是符號化的機器語言;面向機器;匯編3)高級語言:面向過程,面向對象(解釋、編譯)(3)應用軟件:為某一應用目的而用系統(tǒng)軟件編制的軟件。包括應用程序、函數(shù)庫、子程序庫。常見的有字處理軟件、電子表格軟件、多媒體制作軟件二、軟件系統(tǒng)的分類及組成計算機軟件:計算機運行時所需的程序、數(shù)據(jù)和有關文檔。系統(tǒng)軟件應用軟件操作系統(tǒng)語言處理程序診斷程序維護程序數(shù)據(jù)庫管理系統(tǒng)軟件系統(tǒng)兩類軟件軟件通常可以分為兩類:

SystemSoftware(系統(tǒng)軟件)ApplicationSoftware(應用軟件)應用軟件:我用的系統(tǒng)軟件:它用的你可以認為應用軟件是你用的,而系統(tǒng)軟件是計算機用的。SystemSoftware:

TheComputer’sBoss功能用于使計算機能夠管理其本身的內部資源,控制硬件的運行,執(zhí)行各種基本操作,如使CPU與鍵盤、顯示器、打印機和磁盤驅動器通信等。系統(tǒng)軟件不用于解決各種業(yè)務性或專業(yè)性的具體問題。最重要的一種系統(tǒng)軟件是“操作系統(tǒng)”。目前個人計算機最常用的系統(tǒng)軟件即美國Microsoft(微軟)公司的Windows(視窗)系列操作系統(tǒng)。ApplicationSoftware:

YourServant功能用于提高計算機用戶的工作效率和創(chuàng)造力。目前個人計算機最常用的應用軟件是美國Microsoft(微軟)公司的Office系列辦公軟件和InternetExplorerBrowser(IE瀏覽器)。前者用于編寫文檔、處理電子表格、制作網(wǎng)頁和多媒體演示軟件等,后者用于在因特網(wǎng)上“上網(wǎng)沖浪”——訪問遠程網(wǎng)站、下載軟件、收發(fā)電子郵件、網(wǎng)上交友…機器語言(指令系統(tǒng))其指令為二進制代碼(0、1),如用00110011……表示相加。用機器語言編寫的程序計算機可直接識別,執(zhí)行速度最快,但可讀性、可移植性差匯編語言用“助記符”代替二進制代碼,如用ADDA,B表示兩數(shù)相加。其程序必須通過翻譯程序(匯編程序)翻譯成二進制代碼后才能執(zhí)行。

機器語言和匯編語言都是“面向機器”的低級語言。程序設計語言高級語言(面向過程)用英文單詞和代數(shù)表達式編寫程序,最接近人類的自然語言(英語)。如用LETC=A+B表示兩數(shù)相加。用高級語言編寫的程序稱為“源程序”。源程序必須經(jīng)過翻譯程序翻譯后計算機才能處理。高級語言的翻譯程序有兩種:解釋程序:翻譯一句,計算機執(zhí)行一句。(相當于“口譯”)編譯程序:將源程序整個翻譯成目標程序,再通過“鏈接程序”生成“可執(zhí)行程序”,然后交計算機執(zhí)行。(相當于“筆譯”)程序設計語言小結:①低級語言(面向機器語言)機器語言——其程序無需翻譯即可被識別,執(zhí)行速度最快匯編語言——其程序需通過翻譯程序(匯編程序)處理常見高級語言種類:

BASIC語言——簡單易學

C語言——編程通用

Fortran語言——科學計算

Pascal語言——程序設計教學【術語】指令=操作碼+操作數(shù)(地址碼)(操作碼不可缺少)②高級語言(面向過程語言)其程序需通過翻譯程序(解釋程序/編譯程序)處理名詞:

【源程序】用匯編語言或高級語言編寫的程序(需經(jīng)“翻譯”處理)

【翻譯程序】將源程序譯成目標程序或可執(zhí)行指令的程序

【目標程序】經(jīng)翻譯程序翻譯生成的程序

【可執(zhí)行程序】經(jīng)連接程序處理過的程序互相關系MOVA,3ADDA,6A=5,B=4C=B+A*2/B01100100011011目標程序高級語言源程序匯編語言源程序匯編程序編譯程序解釋程序可執(zhí)行程序連接程序翻譯一句執(zhí)行一句注意——生成目標程序的條件!支持數(shù)據(jù)庫的編程語言VB:全稱VisualBasic,它是以Basic語言作為其基本語言的一種可視化編程工具PB:全稱PowerBuilder,是開發(fā)MIS系統(tǒng)和各類數(shù)據(jù)庫跨平臺的首選,使用簡單,容易學習,容易掌握,在代碼執(zhí)行效率上也有相當出色的表現(xiàn)C++Builder/Delphi:它們都是基于VCL庫的可視化開發(fā)工具,它們在組件技術的支持、數(shù)據(jù)庫支持、系統(tǒng)底層開發(fā)支持、網(wǎng)絡開發(fā)支持、面向對象特性等各方面都有相當不錯的表現(xiàn),并且學習使用較為容易,充分提現(xiàn)了所見即所得的可視化開發(fā)方法,開發(fā)效率高VisualC++:是基于MFC庫的可視化的開發(fā)工具,從總體上說它是一個功能強大但是不便使用的一種工具。Java:面向對象特性高,支持的組件技術也非常多,跨平臺的特性也使得它在現(xiàn)在和未來的網(wǎng)絡開發(fā)中占據(jù)越來越重要的地位。

三、計算機系統(tǒng)的層次結構

內核:硬件系統(tǒng)橋梁:系統(tǒng)軟件最外層:應用軟件硬件系統(tǒng)系統(tǒng)軟件用戶應用軟件計算機系統(tǒng)的分類:根據(jù)其體積大小和處理能力,通常可分為Supercomputers(超級計算機)Mainframecomputers

(大型計算機)Workstations(工作站)Microcomputers

(微型計算機)Microcontrollers

(微控制器)1.3微型計算機的系統(tǒng)結構世界超級計算機

全球TOP500排行榜

世界超級計算機TOP500排名,是由國際專業(yè)評價超級計算機性能的組織——“TOP500”倡導發(fā)起的。該組織于1993年成立,每年6月和11月各發(fā)布一次全世界已安裝并在使用的運算速度最快的前500臺超級計算機的排名,截至到2003年6月27日為止,已經(jīng)進行了21屆。到2003年6月排名第一的是NEC公司的Earth-Simulator/5120超級計算機,運算速度達到35.86萬億次。日本的K超級計算機的運算能力為每秒8.16千萬億次,超過中國的天號-1A成為全球運算能力最強的超級計算機系統(tǒng)。K配置68544個SPARC64

VIIIfx

CPU(中央處理器),每個CPU集成有8個內核,內核總數(shù)為548352個,幾乎相當于排行榜上其他系統(tǒng)的2倍。

飛速發(fā)展的計算機技術摩爾定律:

Intel的創(chuàng)始人之一GordonMoore在1965年提出了這個著名的定律,預言單位平方英寸芯片的晶體管數(shù)目每過18到24個月就將增加一倍。過去四十年的芯片產業(yè)一直遵循摩爾定律每18個月速度增長一倍的規(guī)律運行。事實上,Intel的CPU芯片上的晶體管數(shù)目已經(jīng)由1971年的2300增長到今天Pentium4處理器的5500萬,即增長了兩萬四千倍。索尼公司展示新型掌上電腦CPUCPU的英文全稱是CentralProcessingUnit,即中央處理器。CPU從雛形出現(xiàn)到發(fā)展壯大的今天,由于制造技術的越來越先進,其集成度越來越高,內部的晶體管數(shù)達到幾百萬個。雖然從最初的CPU發(fā)展到現(xiàn)在其晶體管數(shù)增加了幾十倍,但是CPU的內部結構仍然可分為控制單元,邏輯單元和存儲單元三大部分。CPU的性能大致上反映出了它所配置的那部微機的性能,因此CPU的性能指標十分重要。主頻,也就是CPU的時鐘頻率,簡單地說也就是CPU的工作頻率。內存總線速度或者叫系統(tǒng)總路線速度,一般等同于CPU的外頻。工作電壓,工作電壓指的也就是CPU正常工作所需的電壓。制造工藝,PentiumCPU的制造工藝是0.35微米,PII和賽揚可以達到0.25微米,最新的CPU制造工藝可以達到0.18微米,并且將采用銅配線技術,可以極大地提高CPU的集成度和工作頻率。CPU發(fā)展史1971年。世界上第一塊微處理器4004在Intel公司誕生了。它出現(xiàn)的意義是劃時代的,比起現(xiàn)在的CPU,4004顯得很可憐,它只有2300個晶體管,功能相當有限,而且速度還很慢。1978年,Intel公司首次生產出16位的微處理器命名為i8086,由于這些指令集應用于i8086和i8087,所以人們也這些指令集統(tǒng)一稱之為X86指令集。這就是X86指令集的來歷。1979年,Intel公司推出了8088芯片,它是第一塊成功用于個人電腦的CPU。它仍舊是屬于16位微處理器,內含29000個晶體管,時鐘頻率為4.77MHz,地址總線為20位,尋址范圍僅僅是1MB內存。8088內部數(shù)據(jù)總線都是16位,外部數(shù)據(jù)總線是8位,而它的兄弟8086是16位,這樣做只是為了方便計算機制造商設計主板。1981年8088芯片首次用于IBMPC機中,開創(chuàng)了全新的微機時代。1982年,Intel推出80286芯片,它比8086和8088都有了飛躍的發(fā)展1985年Intel推出了80386芯片,它X86系列中的第一種32位微處理器,而且制造工藝也有了很大的進步1989年,Intel推出80486芯片,它的特殊意義在于這塊芯片首次突破了100萬個晶體管的界限,集成了120萬個晶體管?,F(xiàn)今的CPUPentium:就是大名鼎鼎的“奔騰”處理器,它是Intel在1993年推出的全新一代的高性能處理器PentiumPro:Intel在1996年推出的第六代X86CPU。PentiumMMX:與1996年底又推出了Pentium系列的改進版本PntiumⅡ:1997年5月,Intel又推出了和PentiumPro同一個級別的產品。Celeron:賽揚是Intel針對PentiumII提出的廉價版本,其核心技術與PentiumII相同,企圖攻占低價位個人電腦市場,可以說是Intel為搶占低端市場而專門推出的Xeon:至強處理器,主要是用于高端的NT服務器的。IntelPentiumIII:其受矚目的原因是其在多媒體方面性能的增強,能加速需要密集處理運行的程序。2000年3月6日:AMD發(fā)布Athlon1GHzIntel的PentiumIV和AMDAthlon64。雖然按照發(fā)布時間來說,Athlon64要比PentiumIV遲一個時代(PentiumIV發(fā)布時間是2000年11月,而Athlon64則是2003年9月),但PentiumIV經(jīng)過了幾年的的換芯,性能也獲得了顯著提升。2006年Intel宣布了酷睿雙核處理器。這是第一款面向便攜式電腦設計的雙核處理器,擁有極佳的性能,至少比P4快多了。這也是第一款真雙核X86處理器,共享緩存設計。今天的中流砥柱:酷睿2計算機主板主板是電腦系統(tǒng)中最大的一塊電路板,它的英文名字叫做“Mainboard”或“Motherboard”,簡稱M/B。主板上布滿了各種電子元件、插槽、接口等。它為CPU、內存和各種功能(聲、圖、通信、網(wǎng)絡、TV、SCSI等)卡提供安裝插座(槽);為各種磁、光存儲設備、打印和掃描等I/O設備以及數(shù)碼相機、攝像頭、“貓”(Modem)等多媒體和通訊設備提供接口,實際上電腦通過主板將CPU等各種器件和外部設備有機地結合起來形成一套完整的系統(tǒng)。電腦在正常運行時對系統(tǒng)內存、存儲設備和其它I/O設備的操控都必須通過主板來完成,因此電腦的整體運行速度和穩(wěn)定性在相當程度上取決于主板的性能。計算機主板認識內存在了解內存的發(fā)展之前,我們應該先解釋一下幾個常用詞匯,這將有助于我們加強對內存的理解。RAM就是RandomAccessMemory(隨機存貯器)的縮寫。它又分成兩種StaticRAM(靜態(tài)隨機存貯器)和DynamicRAM(動態(tài)隨機存貯器)。DRAM,顧名思義即動態(tài)RAM。DRAM的結構比起SRAM來說要簡單的多,基本結構是一只MOS管和一個電容構成。具有結構簡單、集成度高、功耗低、生產成本低等優(yōu)點,適合制造大容量存儲器,所以現(xiàn)在我們用的內存大多是由DRAM構成的。FPDRAM:又叫快頁內存,在386時代很流行。EDODRAM:EDORAM――ExtendedDateOutRAM——外擴充數(shù)據(jù)模式存儲器,流行在486以及早期的奔騰電腦上。SDRAM是一種改善了結構的增強型DRAM。計算機的制造工藝發(fā)展到已經(jīng)可以把微處理器(CPU)的時鐘頻率提高的一千兆的邊緣。相應的內存也必須跟得上處理器的速度才行?,F(xiàn)在有兩個新的標準,DDRSDRAM內存和Rambus內存。顯示器從早期的黑白世界到現(xiàn)在的色彩世界,顯示器走過了漫長而艱辛的歷程,隨著顯示器技術的不斷發(fā)展,顯示器的分類也越來越明細。CRT顯示器按大小分類調控方式不同顯像管種類的不同LCD液晶顯示器

聲卡和音箱Microcontrollers:微控制器亦稱為“嵌入式”、“專用型”或“隱藏式”計算機。微控制器實際上是安裝在各種智能設備(如電腦控制的微波爐、袖珍計算器等)中的微型計算機芯片(通常稱為“單片機”)。價格一般在幾~幾十美元。單片機芯片:SST89C58單片機正面背面§1.4信息的表示與存儲一、數(shù)制1.進位記數(shù)制概念:用進位的方法進行記數(shù)的數(shù)制稱為進位記數(shù)制。三要素:111=1*102+1*101+1*100123.456=1*102+2*101+3*100+4*10-1+5*10-2+6*10-3例如10進制:0~9、基數(shù)10,每一位上數(shù)字的權重10n在計算機中,用的是二進制,其他還常用八進制、十六進制,其三要素如下表:(按權展開式)數(shù)據(jù)元素、基數(shù)、權重。記數(shù)制數(shù)據(jù)元素基數(shù)權重舉例十進制0~91010n(123)10456.321D二進制0、122n(1010)21001.101B八進制0~788n(567)8745.217O十六進制0~9、A~F1616n(2A2B)16123.321H練習101.1B=(17)8=(1A.8)16=1*22+0*21+1*20+1*2-1=5.5D1*81+7*80=15D1*161+10*160+8*16-1=26.5D2、二進制、八進制、十進制、十六進制轉換二進制、八進制、十六進制轉換為十進制方法:按權展開式十進制轉換為二進制、八進制、十六進制方法:整數(shù)除基取余,直至商0,余數(shù)倒序排(短除)小數(shù)乘基取整,直至足精,整數(shù)正序排(短乘)例1將43D轉換成二進制、八進制、十六進制432211210125022121020143D=101011B4385380543D=(53)84316211160243D=(2b)16例2.將0.875D轉換成二進制、八進制、十六進制0.875X21.7510.75X21.5010.50X21.0100.875D=0.111B0.875X87.0700.875D=(0.7)80.875X1614.0E00.875D=(0.E)16實數(shù)是整數(shù)、小數(shù)分別轉化后合在一起:(43.875)10=(101011.111)2=(53.7)8=(2B.E)16二進制、八進制、十六進制的相互轉換二進制到八進制:整數(shù)從右向左,三位一段,分別轉化小數(shù)從左向右,三位一段,分別轉化例(1010101.11011)2(001,010,101.110,110)2125.66二進制到十六進制:整數(shù)從右向左,四位一段,分別轉化小數(shù)從左向右,四位一段,分別轉化例101,0101.1101,155.D80000八進制到二進制、十六進制到二進制將八進制的每一個位變成三位二進制數(shù);十六進制的每一個數(shù)位變成四位二進制數(shù)。例:(543.21)8=(101100011.010001)2例:(5A3.21)16=(010110100011.00100001)2八進制和十六進制之間轉換必須以二進制作為中間橋梁(5A3.21)16=(10,110,100,011.001,000,01)2

=(2643.102)83.二進制、八進制、十六進制、十進制對應關系:二.計算機中數(shù)據(jù)的表示:1.符號位的表示:通常規(guī)定一個數(shù)的最高位作為符號位,例:“0”表示正,“1”表示負。

2.原碼、反碼、補碼:

(1)數(shù)的原碼指最高位為數(shù)符位,“0”表示正,“1”表示負。數(shù)值部分是原碼的絕對值.(2)數(shù)的反碼表示法規(guī)定:正數(shù)的反碼和原碼相同,負數(shù)的反碼是對其原碼除符號位外各位求反(0變1,1變0).(3)補碼表表示法規(guī)定:正數(shù)的補碼和原碼相同,負數(shù)的補碼是在其反碼的最后一位上加1.(4)補碼運算具有3個優(yōu)點:減法變加法;符號位參與運算;補碼之和等于和的補碼。

3.定點數(shù)與浮點數(shù):在計算機中表示小數(shù)時,根據(jù)其小數(shù)點位置是否固定,分為定點表示法和浮點表示法.

字節(jié)和位內存以字節(jié)為單元組成每個字節(jié)有一個地址一個字節(jié)一般由8個二進制位組成每個二進位的值是0或101234567012345678910……...數(shù)值的表示方法——原碼、反碼和補碼原碼:最高位為符號位,其余各位為數(shù)值本身的絕對值反碼:正數(shù):反碼與原碼相同負數(shù):符號位為1,其余位對原碼取反補碼:正數(shù):原碼、反碼、補碼相同負數(shù):最高位為1,其余位為原碼取反,再對整個數(shù)加13126912457810119-5=49+7=16=(14)12原碼反碼補碼+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000數(shù)的范圍01111111~11111111(-127~+127)01111111~10000000(-127~+127)01111111~10000000(-128~+127)(用一字節(jié)表示數(shù))負數(shù)補碼轉換成十進制數(shù):最高位不動,其余位取反加1例補碼:11111001

取反:10000110

加1:10000111=-74.計算機中的數(shù)據(jù)單位:(1)比特(bit):位,即一個二進制位。

(2)字節(jié)(byte,B)1B=8bit

一個英文字符占用1個字節(jié),一個漢字占兩個字節(jié)。(3)字(Word):是計算機進行數(shù)據(jù)處理時一次存取、加工和傳遞的一組二進制代碼的位數(shù)位,其長度叫字長,是衡量計算機性能的一個重要指標。(4)其它容量單位:

1K=210B=1024B≈1000B1M=210KB=220B1GB=210MB=230B1TB=210GB=240B三、計算機中字符的編碼信息指令信息:程序指令代碼數(shù)據(jù)信息數(shù)值信息:定點數(shù)浮點數(shù)非數(shù)值信息:字母、運算符、漢字、多媒體信息等1.英文字符編碼:

字符數(shù)據(jù)包括:運算符號、貨幣符號、控制符號、字母和數(shù)字等。計算機中使用最廣泛的字符編碼是美國信息交換標準碼(ASCII).采用7位二進制編碼,可表示128個字符。其中95個可打印字符,33個不可打印和顯示字符。擴充的ASCII表:8位碼,共256個編碼,增加了128個圖形符號。2.漢字編碼:輸入碼(外碼):輸入漢字所使用的由字母和數(shù)字構成的編碼。有流水碼、音碼、形碼、音形碼。漢字交換碼(國標碼):用于不同漢字信息處理系統(tǒng)之間或者漢字處理系統(tǒng)與通信系統(tǒng)之間進行信息交換的漢字碼,要求必須采用統(tǒng)一的形式。

(1)1981年國家頒布GB2312—80《通訊用漢字字符集(基本集)及其交換標準碼》統(tǒng)稱標準碼、交換碼。收錄了7445個漢字及符號,其中6762個漢字,分為兩級:一級3755個,二級3008個。(區(qū)位碼)

(2)1995.12,發(fā)布漢字擴展內碼規(guī)范——GBK編碼方案。

(3)2000.3,發(fā)布GB18030-2000,收錄27000多漢字。

漢字內碼(機內碼):是計算機內部對漢字進行采集、傳輸、存儲、加工運算的各個處理過程中使用的漢字編碼。漢字字形碼(字模碼):漢字字形點陣信息的數(shù)字代碼,存放在漢字字庫中。點陣漢字字形中的每一個點陣都由一個二進制位來表示。

(1).目前點陣的字模標準:16*16、24*24、32*32、48*48

其中24*24的字形點陣每個字節(jié)需72個字節(jié)。

(2).點陣數(shù)越多,字形質量越好,但字庫文件占用存儲空間越大,操作速度越慢。

(3).目前還常用矢量字庫(字形用直線描繪,可以任意縮放)和輪廓字庫(由直線和曲線命令生成字形,邊界可以按比例縮放和旋轉)。漢字四種編碼的關系:輸入碼鍵盤交換碼內

碼字形碼顯示打印輸入法完成轉換換漢字操作系統(tǒng)完成轉字庫驅動程序或字模生成器通用編碼字符集UCS與Unicode國際標準ISO10646

定義了通用字符集(UniversalCharacterSet,UCS).UCS是所有其他字符集標準的一個超集.它保證與其他字符集是雙向兼容的.就是說,如果你將任何文本字符串翻譯到UCS格式,然后再翻譯回原編碼,你不會丟失任何信息.歷史上,有兩個獨立的,創(chuàng)立單一字符集的嘗試.一個是國際標準化組織(ISO)的ISO10646項目,另一個是由(一開始大多是美國的)多語言軟件制造商組成的協(xié)會組織的Unicode項目.Unicode將取代所有這些編碼,主要通過UTF-8

的形式.UTF-8將應用在文本文件(源代碼,HTML文件,email消息,等等)文件名標準輸入與標準輸出,管道環(huán)境變量剪切與粘貼選擇緩沖區(qū)telnet,modem和到終端模擬器的串口連接以及其他地方以前用ASCII來表示的字節(jié)串§1.5計算機程序與算法一個程序應包括對數(shù)據(jù)的描述和對數(shù)據(jù)處理的描述。

1、對數(shù)據(jù)的描述,即數(shù)據(jù)結構。數(shù)據(jù)結構是計算機學科的核心課程之一,有許多專門著作論述,本課程就不再贅述。

2、在C語言中,系統(tǒng)提供的數(shù)據(jù)結構,是以數(shù)據(jù)類型的形式出現(xiàn)的。

3、對數(shù)據(jù)處理的描述,即計算機算法。算法是為解決一個問題而采取的方法和步驟,是程序的靈魂。為此,著名計算機科學家沃思(NikiklausWirth)提出一個公式:

數(shù)據(jù)結構+算法=程序

實際上,一個程序除了數(shù)據(jù)結構和算法外,還必須使用一種計算機語言,并采用結構化方法來表示。1.5.1算法的概念算法(Algorithm)

:是指解決一個具體問題的意義明確的步驟的集合,是有限的。算法代表著用系統(tǒng)的方法描述解決問題的策略機制。也就是說,能夠對一定規(guī)范的輸入,在有限時間內獲得所要求的輸出。如果一個算法有缺陷,或不適合于某個問題,執(zhí)行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優(yōu)劣可以用空間復雜度與時間復雜度來衡量。例:歐幾里德算法歐幾里德算法又稱輾轉相除法,用于計算兩個正整數(shù)a,b的最大公約數(shù)。其計算原理依賴于下面的定理:定理:

gcd(a,b)=gcd(b,amodb)(a>b且amodb不為0)

有窮性:一個算法應當包含有限的步驟,而不能是無限的步驟;同時一個算法應當在執(zhí)行一定數(shù)量的步驟后,算法結束,不能死循環(huán)。事實上“有窮性”往往指“在合理的范圍之內”的有限步驟。如果讓計算機執(zhí)行一個歷時1000年才結束的算法,算法盡管有窮,但超過了合理的限度,人們也不認為此算法是有用的。確定性:算法中的每一個步驟都應當是確定的,而不是含糊的、摸棱兩可的。也就是說不應當產生歧義。特別是算法用自然語言描述時應當注意這點。例如:“將成績優(yōu)秀的同學名單打印輸出”就是有歧義的?!俺煽儍?yōu)秀”是要求每門課程都90分以上,還是平均成績在90分以上?不明確,有歧義,不適合描述算法步驟。算法的特性有0個或多個輸入(即:可以沒有輸入,也可以有輸入)所謂輸入是指算法執(zhí)行時從外界獲取必要信息。(外界是相對算法本身的,輸入可以是人工鍵盤輸入的數(shù)據(jù),也可以是程序其它部分傳遞給算法的數(shù)據(jù))例如:不需要輸入任何信息,就可以計算出5?。唬?個輸入)例如:如果要計算兩個整數(shù)的最大公約數(shù),則需要輸入2個整數(shù)m,n。(2個輸入)

有1個或多個輸出(即算法必須得到結果)算法的輸出:算法得到的結果。算法必須有結果,沒有結果的算法沒有意義。(結果可以是顯示在屏幕上的,也可以是將結果數(shù)據(jù)傳遞給程序的其它部分)有效性算法的每個步驟都應當能有效執(zhí)行,并能得到確定的結果。例如:b=0,則執(zhí)行a/b是不能有效執(zhí)行的。1.5.2怎樣表示一個算法為了表示一個算法,可以用不同的方法。常用的算法表示方法:自然語言,傳統(tǒng)流程圖,結構化流程圖(N-S流程圖),偽代碼、計算機語言等。(重點:傳統(tǒng)流程圖,N-S流程圖)

2、用自然語言表示算法自然語言就是人們常用的語言,可以是漢語、英語或其他語言。用自然語言表示通俗易懂;但文字冗長,容易出現(xiàn)“歧義”性;而且,用自然語言描述包含分支和循環(huán)的算法,不很方便。一般不使用自然語言描述算法。例如:描述計算并輸出z=y/x的流程,可以用自然語言描述如下:(1)輸入x,y。(2)判斷x是否為0:若X=0,則輸出錯誤信息;否則計算y/xz,且輸出z。自然語言描述舉例例:判斷2000年---2500年中的每一年是否閏年,將結果輸出。解:閏年的條件是:

(1)能被4整除,但不能被100整除的年份是閏年;如1996,2004年。

(2)能被100整除,又能被400整除的年份是閏年。如1600,2000年。不符合這兩個條件的年份不是閏年。算法如下:設y為被檢測的年份,可采取以下步驟:S1:2000y;S2:若y不能被4整除,則輸出y“不是閏年”。然后轉到s6.S3:若y能被4整除,不能被100整除,輸出y“是閏年”,然后轉到s6。S4:若y能被100整除,又能被400整除,輸出y“是閏年”,然后轉到s6。S5:輸出y“不是閏年”。S6:y+1y;S7:當y2500時,轉s2繼續(xù)執(zhí)行,如y>2500,算法停止。(1)使S=0(S作為累加變量);(2)使N=1(N代表分母);(3)S+1/NS(執(zhí)行迭代,S為迭代變量);(4)N+1N;(5)若N≤100,轉去執(zhí)行(3)以及其后的各步驟;否則執(zhí)行(6);(6)打印S的值(即所求之總和)。例:求下列級數(shù)的值可以寫出下面的算法◆算法描述語言:是為了說明程序的流程而專門規(guī)定的某種語言。它一般介于自然語言與程序設計語言之間,它具有自然語言靈活的特點,同時又接近于程序設計語言的描述?!糇⒁猓核惴枋稣Z言所描述的流程,一般不能直接作為程序來使用,最后還需轉換成用某種程序設計語言所描述的程序?!襞c程序設計語言的區(qū)別:

前者比較自由,不象后者那樣受語法的約束,只要描述得人們能理解就行,而不必考慮計算機處理時所要遵循的規(guī)定或其它一些細節(jié)。算法描述語言流程的描述:在程序設計過程中,一般不可能在一開始就用某種程序設計語言編制計算機程序,而是先用某種簡單、直觀、靈活的描述工具來描述處理問題的流程。當方案確定以后,再將這樣的流程轉換成計算機程序,這種轉換往往是機械的,已經(jīng)不涉及功能的重新設計或控制流程的變化,而只需考慮程序設計語言所規(guī)定的語法要求以及一細節(jié)問題。2、用流程圖表示算法流程圖:用一些約定的幾何圖形來描述算法。用某種圖框表示某種操作,用箭頭表示算法流程。流程圖(的符號及意義)美國標準化協(xié)會ANSI規(guī)定了一些常用的流程圖符號,已為世界各國程序工作者普遍采用:起止框輸入輸出框判斷選擇框處理框流程線……注釋框起止框:表示算法的開始和結束。一般內部只寫“開始”或“結束”。處理框:表示算法的某個處理步驟,一般內部常常填寫賦值操作。輸入輸出框:表示算法請求輸入輸入需要的數(shù)據(jù)或算法將某些結果輸出。一般內部常常填寫“輸入…”,“打印/顯示…”菱形框(判斷框):作用主要是對一個給定條件進行判斷,根據(jù)給定的條件是否成立來決定如何執(zhí)行其后的操作。它有一個入口,兩個出口。注釋框:注釋框不是流程圖中必須的部分,不反映流程和操作,它只是對流程圖中某些框的操作做必要的補充說明,以幫助閱讀流程圖的人更好地理解流程圖的作用。

例:

求5!t=1i=2t=t*ii=i+1i>5結束

NY

開始傳統(tǒng)流程圖采用流程線指出各框的執(zhí)行順序,對流程線的使用沒有嚴格限制。因此,使用者可以不受限制地使流程轉來轉去,使流程圖變得毫無規(guī)律。人們對這種流程圖進行改進,規(guī)定幾種基本的結構,然后由這些基本結構按一定規(guī)律組成算法結構,整個算法結構是由上而下地將各個基本結構順序排列起來。這樣可以在一定程度上,提高算法的質量。傳統(tǒng)流程圖★三種基本結構是:(1)順序結構:按指令的順序依次執(zhí)行(2)判斷選擇結構:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論