C語言程序設計ppt課件第1章(人民郵電出版社)_第1頁
C語言程序設計ppt課件第1章(人民郵電出版社)_第2頁
C語言程序設計ppt課件第1章(人民郵電出版社)_第3頁
C語言程序設計ppt課件第1章(人民郵電出版社)_第4頁
C語言程序設計ppt課件第1章(人民郵電出版社)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

級高語言設計程序2009.8朱立華俞瓊王立柱1章節(jié)自測及在線編程練習:級高語言設計程序2009.8朱立華俞瓊王立柱1章節(jié)自主講人:朱立華2009.8朱立華俞瓊王立柱2主講人:朱立華2009.8朱立華俞瓊王立柱2第一章計算機組成與程序設計語言2009.8朱立華俞瓊王立柱3第一章計算機組成與程序設計語言2009.8朱立華俞瓊2009.8朱立華俞瓊王立柱4內容提要Cisthemostbeautifullanguage!由低級語言到高級語言機器語言程序設計計算機組成及工作過程C程序開發(fā)過程內容提要2009.8朱立華俞瓊王立柱4內容提要Ci2009.8朱立華俞瓊王立柱5重點難點提示

子程序調用過程

C程序開發(fā)過程計算機組成及機器內部執(zhí)行程序的過程動態(tài)演示動態(tài)演示重點難點提示2009.8朱立華俞瓊王立柱5重點難點提示子程軟件系統(tǒng)軟件系統(tǒng)硬件系統(tǒng)計算機2009.8朱立華俞瓊王立柱6計算機:(computer):用于計算的機器,用來處理存儲的數據,處理和存儲是一個整體.石器時代石頭、手指、繩子……銅器時代算籌(商周時代)、格子(西方)鐵器時代算盤

通過程序設計語言來開發(fā)軟件加在硬件之上,控制硬件完成功能物質基礎計算機及其組成

軟件系統(tǒng)軟件系統(tǒng)硬件系統(tǒng)計算機2009.8朱立華俞瓊2009.8朱立華俞瓊王立柱7馮·諾依曼的程序存儲思想“計算機之父”——馮·諾依曼的程序存儲思想:計算機應該采用二進制操作指令也是一種信息,也用二進制數表示程序和數據的存儲形式可以完全相同程序本身也可包含數據2009.8朱立華俞瓊王立柱7馮·諾依曼的程序存儲思2009.8朱立華俞瓊王立柱8關于第一臺計算機

1946.2.14ENIAC(埃尼阿克)現在保存在賓夕法尼亞大學這臺機器名為“電子數值積分和計算機”(簡稱埃尼阿克,完全是一個龐然大物,占地面積達170m2,質量達30t,耗電量也很驚人,功率為150kW,共使用了近兩萬個電子管,在工作時這些管子看上去活像兩萬只點著的燈泡。埃尼阿克主要用來進行彈道計算的數值分析2009.8朱立華俞瓊王立柱8關于第一臺計算機192009.8朱立華俞瓊王立柱9其他版本的第一臺計算機

圖靈機:計算機科學之父、人工智能之父,“圖靈獎”德國人ConranEuse代號為“Z”的計算機哈佛,IBM的Mark系列大型電子計算機真正的第一臺計算機是上面三臺中之一,無從考證2009.8朱立華俞瓊王立柱9其他版本的第一臺計算機運算器控制器接口存儲器輸入設備輸出設備CPU2009.8朱立華俞瓊王立柱10計算機硬件的組成

地址總線數據總線控制總線處理,進行各種算數運算輸入指令代碼和原始數據存放程序指令及數據控制和指揮整個運算過程,使指令按要求一條一條執(zhí)行。顯示或打印計算結果運算器控制器接口存儲器輸入設備輸出設備CPU2009.82009.8朱立華俞瓊王立柱11關于二進制問題“世界上有10種人,一種人懂二進制,另一種人不懂”這里的10是一個二進制數,就是十進制的22009.8朱立華俞瓊王立柱11關于二進制問題“世界2009.8朱立華俞瓊王立柱12關于二進制等進制問題進制每位符號逢幾進一位權n位數的不同個數例子(結果統(tǒng)一到十進制)十0~91010i10n341=3*102+4*101+1*100=341二0~122i2n101=1*22+0*21+1*20=5八0~788i8n127=1*82+2*81+7*80=87十六0~9A~F1616i16n31D=3*162+1*161+13*160=797另:3位二進制數相當于1位八進制數:101011B=(53)8=53Q4位二進制數相當于1位十六進制數:11011001B=(D9)16=D9H=d9H2009.8朱立華俞瓊王立柱12關于二進制等進制問題2009.8朱立華俞瓊王立柱13關于存儲器存儲器的組成:由存儲單元組成,每個單元1個字節(jié)(1B),1B=8bit,每個單元有一個地址。存儲單元中的內容與存儲單元的地址是兩個概念,其區(qū)別如同房間里的東西與房間號碼。存儲器的大小指它有多少個字節(jié),也就是有多少個不同的地址號,取決于地址總線的根數,n根地址總線,存儲器容量為:2n常用存儲單位:1TB=210GB=220MB=230KB=240B存儲器按功能分為3大區(qū)域:程序存儲區(qū)、數據存儲區(qū)和棧存放程序中的指令存放程序中的數據存取數據都在一端,無需計算地址,速度快

2009.8朱立華俞瓊王立柱13關于存儲器存儲器的組2009.8朱立華俞瓊王立柱14關于CPUCPU:CentralProcessorUnit,中央處理器,完成各種處理(運算+控制),是計算機最核心部件。CPU中設寄存器的目的:存放數據或計算的中間結果,不通過地址總線和數據總線,處理速度快。寄存器有兩種:通用寄存器和專用寄存器。熟悉兩個專用寄存器:(1)累加器A:與算術邏輯運算器ALU一起完成各種運算(2)程序計數器PC:寄存指令的地址,CPU通過PC取來一條指令執(zhí)行時,PC便“指向”下一條指令,即PC的值變?yōu)橄乱粭l將要執(zhí)行的指令的地址。除非遇到轉移指令或子程序調用指令,CPU都是通過PC順序地提取指令。是運算器的組成部分,暫存操作數及運算的中間結果

每一個都有特定的作用

2009.8朱立華俞瓊王立柱14關于CPUCPU:C2009.8朱立華俞瓊王立柱15機器內部執(zhí)行程序的過程示例程序是一組指令,指令聯系著存儲器和CPU,每條指令有操作碼,有的指令有操作數,指令存儲在程序存儲區(qū),操作數存儲在數據存儲區(qū)。例:求和程序y=3+4所包含的指令如下:操作碼操作數指令含義01H3000H將地址為3000H的單元中的數據放入累加器A03H3001H將地址為3001H單元中的數據與累加器A中的數據相加,結果留在A02H3002H將累加器A中的數據存入地址為3002H的單元07H停機動態(tài)演示過程2009.8朱立華俞瓊王立柱15機器內部執(zhí)行程序的過2009.8朱立華俞瓊王立柱16機器語言程序設計對計算機而言:它的各個硬件部分存在的意義和相互的聯系通過指令來體現。對程序設計而言:計算機就是指令系統(tǒng)。用機器語言進行程序設計:首先要熟悉計算機的指令系統(tǒng),熟悉每一條指令的含義及用法。設計算法,根據算法編寫程序。所編寫的計算機程序體現為一系列指令的集合,每條指令的操作碼和操作數都用二進制數表示。用機器語言編寫的源程序就是機器能識別并執(zhí)行的目標程序。2009.8朱立華俞瓊王立柱16機器語言程序設計對計2009.8朱立華俞瓊王立柱17一臺模型機的指令系統(tǒng)指令名稱操作碼|操作數說明取數01HNA←(N),將地址為N的單元的數據存入累加器A存數02HN(N)←A,將累加器A的數據存入地址為N的單元加法03HN將地址為N的單元的數據和A中的相加,結果存入A乘法04HN將地址為N的單元的數據和A中的相乘,結果存入A比較05HNA-(N)比較兩個數據(相減),結果存入寄存器F轉移06HNPC←N用地址N更新程序計數器PC的值停機07H停機子程序調用08HN斷口地址進棧,用地址N更新程序計數器PC的值返回主程序09H斷口地址出棧,用來更新程序計數器PC的值壓棧0aHT寄存器T中的數據進棧保存(T表示任意寄存器)出棧0bHN出棧,出棧數據進入寄存器T2009.8朱立華俞瓊王立柱17一臺模型機的指令系統(tǒng)2009.8朱立華俞瓊王立柱18編程計算:y=ax2+bx+c

步驟方法一方法二(y=x(ax+b)+c)1取數a取數a2計算a*x計算a*x3計算a*x*x

計算a*x+b4計算b*x計算x*(a*x+b)5計算a*x*x+b*x計算x*(a*x+b)+c6計算a*x*x+b*x+c(書中未講,此方法無需調用子程序)說明:方法一的第4步,也需要用累加器A,而此刻A中是第3步的結果。這時,只能將第4步定義為一個子程序,結果受主程序調用,因此以上步驟實質上變成:計算z=b*x(子程序)zz動態(tài)演示過程方法一動態(tài)演示過程方法二2009.8朱立華俞瓊王立柱18編程計算:y=ax22009.8朱立華俞瓊王立柱19子程序調用中涉及的幾個概念入口地址:第一條指令在程序存儲區(qū)中的地址。中斷:一個程序在執(zhí)行過程中去執(zhí)行另一個程序。斷口地址:程序中斷時的下一條指令的地址。保護現場:程序中斷時,有些寄存器存放著中間結果,將寄存器中的中間結果放入某地(堆棧)暫存?;謴同F場:子程序執(zhí)行完畢,再將主程序的中間結果放回寄存器。2009.8朱立華俞瓊王立柱19子程序調用中涉及的幾2009.8朱立華俞瓊王立柱20子程序調用過程第1步:將主程序的斷口地址壓入堆棧保存。第2步:將子程序的入口地址送入PC。第3步:進入子程序后,首先保護主程序現場。

第4步:執(zhí)行子程序。第5步:子程序執(zhí)行完畢,恢復主程序現場。第6步:將主程序的斷口地址從棧頂送回PC。y=ax2+bx+c

方法一的清單及執(zhí)行過程見動態(tài)演示。動態(tài)演示過程方法一2009.8朱立華俞瓊王立柱20子程序調用過程第12009.8朱立華俞瓊王立柱21由低級語言到高級語言機器語言:是第一代程序設計語言,是計算機硬件系統(tǒng)能識別和執(zhí)行的唯一語言。機器語言的3個局限性:(1)程序不容易讀寫,操作碼和操作數都是二進制數(2)對計算機硬件的依賴性很強,可移植性差(3)指令功能簡單,沒有按照數據類型分類改進:用助記符代替機器的數字指令,用符號地址表示存儲單元的數字地址——匯編語言(第二代程序設計語言)改進:面向問題而非面向機器,與計算機硬件結構無關改進:提供豐富的數據類型,語句一般都采用自然語匯,一條語句往往相當于多條指令。

2009.8朱立華俞瓊王立柱21由低級語言到高級語言2009.8朱立華俞瓊王立柱22由低級語言到高級語言第一種高級程序設計語言:Fortran語言(1954年)高級語言的發(fā)展:(1)從早期語言到結構化程序設計語言(2)從面向過程到非過程化程序設計語言(面向對象)(3)發(fā)展趨勢:面向應用第一種結構化程序設計語言:Pascal語言(1970年)高級語言的種類有數百種,比較熟悉的有:Fortran、Basic、Pascal、C、FoxBASE、FoxPro、Lisp、Prolog、C++、Java、C#等2009.8朱立華俞瓊王立柱22由低級語言到高級語言2009.8朱立華俞瓊王立柱23由低級語言到高級語言區(qū)分兩組概念:(1)程序設計語言與程序(類似于漢語與文章的關系)程序設計語言是進行程序設計的工具,是計算機全部指令的集合;而任何計算機程序都需要用程序設計語言來編寫,是為實現某個算法從該語言中選擇所需要指令組成的集合。(2)源程序與目標程序:源程序:程序員編寫的程序目標程序:計算機最終能識別并運行的程序(二進制)源程序目標程序用機器語言編寫用匯編語言編寫匯編程序用高級語言編寫編譯程序匯編編譯2009.8朱立華俞瓊王立柱23由低級語言到高級語言2009.8朱立華俞瓊王立柱24Cisthemostbeautifullanguage!C語言最早的原型是ALGOL601973年,AT&T貝爾實驗室的DennisRitchie(D.M.RITCHIE,被尊為“C語言之父”)在BCPL和B語言的基礎上設計出了一種新的語言——C語言,開發(fā)UNIX操作系統(tǒng)及其上的應用程序。

1999年,ANSI和ISO通過了最新版本的C語言標準C99,這是關于C語言的最新、最權威的定義。選擇學習C語言的理由:C語言不僅是面向過程的程序設計語言中功能最強、效率最高的語言,更是面向對象程序設計語言C++、Java和C#的基礎。2009.8朱立華俞瓊王立柱24Cisthem2009.8朱立華俞瓊王立柱25Cisthemostbeautifullanguage!C語言具有很多優(yōu)點:簡潔緊湊、靈活方便運算符豐富(34個)數據類型豐富C是結構式語言,程序層次清晰C語法限制不太嚴格,語法比較靈活。C語言允許直接訪問物理地址,可直接對硬件進行操作,既可以開發(fā)系統(tǒng)軟件,又可以開發(fā)應用軟件(中級語言)C語言程序生成代碼質量高,程序執(zhí)行效率高

C語言適用范圍大,可移植性好,適合多種操作系統(tǒng),多種機型2009.8朱立華俞瓊王立柱25Cisthem2009.8朱立華俞瓊王立柱26C程序開發(fā)過程源程序目標程序可執(zhí)行程序內容程序設計語言代碼機器語言代碼機器語言代碼可執(zhí)行?不可以不可以可以擴展名.c.obj.exe

執(zhí)

有錯?

結果正確?

源程序

file.c

目標程序file.obj

庫函數和其它目標程序

可執(zhí)行目標程序

正確

不正確

file.exe編輯程序代碼的錄入,生成源程序*.c編譯鏈接運行語法分析查錯,翻譯生成目標程序*.obj與其它目標程序或庫鏈接裝配,生成可執(zhí)行程序*.exe2009.8朱立華俞瓊王立柱26C程序開發(fā)過程源程序2009.8朱立華俞瓊王立柱27在VC++6.0下開發(fā)程序的過程C程序的開發(fā)在特定的集成開發(fā)環(huán)境下進行本教材中所有的程序在VC++6.0下通過,并且課程配套實驗也要求在VC++6.0下VC++6.0集成環(huán)境中提供了編輯器、編譯器、鏈接器、調試器等多種工具,使得程序員從源程序的編輯到最后的運行均可在集成環(huán)境中完成舉例:一個C程序在VC++6.0下開發(fā)的全過程(

溫馨提示

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

最新文檔

評論

0/150

提交評論