




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、高級語言程序設(shè)計2-1 http:/cpp/index.asp !1高級語言程序設(shè)計 課程簡介:學習一門必須熟練掌握的、用來與計算機進行“溝通”、指揮計算機為我們做事情的程序設(shè)計語言,是其他多門必修課程的前導課程。該學期主要學習C+語言非面向?qū)ο蟛糠值膬?nèi)容,其中包括表達式、各種語句、分支與循環(huán)處理、數(shù)組與結(jié)構(gòu)、函數(shù)及其應(yīng)用等。本課程非常重要!一定要下功夫?qū)W好!2課時安排 本學期:每周上課3課時,上機4課時。 總成績100分 平時成績 上機實踐成績期末筆試成績。此外, 還有分組游戲加分 (下學期:高級語言程序設(shè)計2-2,每周上課2課時,上機4課時)3教學用書及參考書 教學用書:高等教育出版社,高
2、級語言C+程序設(shè)計,劉璟 周玉龍編著,高級語言 C+程序設(shè)計實驗指導周玉龍,高教出版社,2006,十五國家重點教材 4參考書 (1)清華大學出版社,C+程序設(shè)計教程,錢能 主編,(p1-468,39.5元)。(2)電子工業(yè)出版社,C+語言程序設(shè)計,呂風翥 編著,(p1-415,33元)。 (3)高等教育出版社,高級語言C+程序設(shè)計編程范例與精解,周玉龍 劉璟 編著,(p1-561,39元,2003年4月第1版)。 (4)南開大學出版社,C+實用編程技術(shù)百例精編與妙解,周玉龍編著,(p1-461,41元,2004年1月第1版)。 (5)c+編程習題與解答,John Hubbard,機械工業(yè)出版社
3、5第 1章 緒論 1.0 計算機基礎(chǔ)知識(補充) 1.1 程序設(shè)計與程序設(shè)計語言 1.2 C+語言概述 1.3 本書的宗旨和內(nèi)容安排610 計算機基礎(chǔ)知識(補充) 101 計算機組成(硬件) 102 數(shù)的進制(二進制、八進制、十六進制)103 不同數(shù)制間的轉(zhuǎn)換104 存儲器單元與機器指令7101 計算機組成(硬件,Hardware) 1存儲器(RAM Random Access Memory):存儲程序指令和數(shù)據(jù)。 2中央處理器(CPU Central Processing Unit):又可細分為控制器(CU)和運算器(ALU),即,CPU = CU + ALU。 3輸入輸出設(shè)備(I/O In
4、put / Output):也稱外部設(shè)備,負責對數(shù)據(jù)和程序進行輸入與輸出。8CPU Intel : p4系列多內(nèi)核 AMD : 64位系列 PowerPC :IBM , Sony PS , MS Xbox VIA: 嵌入式 臺灣 龍芯: 嵌入式 科學院 9三級存儲器 1 CPU L1 L2 Cache 2 內(nèi)存: KingMax KingStone ,現(xiàn)代,三星 3 外存: 硬盤,軟盤,U盤, 光盤,磁帶 硬盤 邁拓,Seagate,昆騰,日立(IBM),三星,東芝 10I/O 顯示器, 鍵盤 鼠標 掃描儀 手寫板 ,打印機 多媒體設(shè)備 11附注: (1)控制器(CU Control Unit
5、):控制和協(xié)調(diào)各個部件正常運行。 (2)運算器(ALU Arithmetic Logic Unit):進行算術(shù)和邏輯運算。另外:相對應(yīng)的計算機軟件(Software)包括系統(tǒng)軟件(如,操作系統(tǒng)、編譯程序等)和應(yīng)用軟件。硬件 - “看得見,摸得著”;軟件 - “看不見,摸不著”。 12附注: 硬件OS應(yīng)用軟件13102 數(shù)的進制(二進制、八進制、十六進制) 1二進制數(shù)(逢 2 進 1) 計算機是用二進制語言來進行計算的(0/1)。據(jù)說數(shù)學家萊布尼茲的受了八卦圖的啟發(fā),才發(fā)明了二進制。最早二進制思想來自周易: 太極生兩儀;兩儀剩四象,四象生八卦.14102 數(shù)的進制(二進制、八進制、十六進制) 1
6、二進制數(shù)(逢 2 進 1) 每個二進制數(shù)位(Bit)只有 0 和 1。每位的權(quán)(weight)從右往左依次為:2n(n = 0,1,2,3 )。 例如,具有4位的二進制數(shù)1011(2):1011(2) = 123 + 022 + 121 + 120 = 8 + 0 + 2 + 1 = 11(10)。 最小的具有4位的二進制數(shù)為0,而最大的4位二進制數(shù)為15。15 與具有4位的十進制數(shù)1011進行比對: 1011 = 1103 + 0102 + 1101 + 1100 = 1000 + 0 + 10 + 1 = 1011。十進制數(shù)52160: 52160 = 5104 + 2103 + 1102
7、 + 6101 + 0100。 162八進制數(shù)(逢 8 進 1) 每位只能夠出現(xiàn):0、1、2、7。 每位的權(quán)(weight)從右往左依次為:8n(n = 0,1,2,3 )。 例如,具有4位的八進制數(shù)1011(8):1011(8) = 183 + 082 + 181 + 180 = 512 + 0 + 8 + 1 = 521(10)。 17 3十六進制數(shù)(逢 16 進 1) 每位只能夠出現(xiàn):0、1、2、9、A、B、C、D、E、F。 每位的權(quán)(weight)從右往左依次為:16n(n = 0,1,2,3 )。 例如,具有4位的十六進制數(shù)1011(16): 1011(16) = 1163 + 01
8、62 + 1161 + 1160 = 4096 + 0 + 16 + 1 = 4113(10)。 18注意:4個Bit位恰好表示 0 F,共16個狀態(tài): 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,相當于十六進制數(shù)的一個位;而3個Bit位可表示 0 7,共8個狀態(tài),相當于八進制數(shù)的一個位。19103 不同數(shù)制間的轉(zhuǎn)換1二進制、八進制、十六進制數(shù)化為十進制 轉(zhuǎn)換方法:各數(shù)位值乘以該位的權(quán)值(2n、8n、16n),而后累加到一起。 20 2十進制數(shù)化為二進制除二求余法(“逐次除以2,倒著排余數(shù)”)舉例:19(10) = ?(2)19 2 = 9 1 (第一個余數(shù))9 2 = 4
9、 1 (第二個余數(shù))4 2 = 2 0 2 2 = 1 0 1 2 = 0 1 (最后一個余數(shù))所以:19(10)= 10011(2)21常用做法 22 3八進制與二進制數(shù)之間的轉(zhuǎn)換 上面提到過:3個Bit位可表示 0 7,共8個狀態(tài),相當于八進制數(shù)的一個位。 八化二:“一位化三位,按序連一起”。527(8)= (101)(010)(111) = 101010111(2) 二化八:“三位化一位,按序連一起”。101010111(2)= (101)(010)(111) = 527234十六進制與二進制數(shù)之間的轉(zhuǎn)換 上面提到過:4個Bit位恰好表示 0 F,共16個狀態(tài): 0、1、2、9、A、B、
10、C、D、E、F,相當于十六進制數(shù)的一個位。 十六化二:“一位化四位,按序連一起”。9F2(16) =(1001)(1111)(0010) =100111110010(2) 二化十六:“四位化一位,按序連一起”。100111110010(2) =(1001)(1111)(0010) =9F2(16) 245十進制轉(zhuǎn)換為R進制(“逐次除以R,倒著排余數(shù)”) 例1: 4805(10) ?(16)4805(10) 12C5(16) 注:也可先“十化二”,而后再“四位化一位”。 例2:4019(10) ?(8)4019(10) 7663(8) 注:也可先“十化二”,而后再“三位化一位”。25 104 存
11、儲器單元與機器指令1字節(jié)(Byte) 8 個二進制數(shù)位(8 Bit)定為 1 個字節(jié)。 1 個字節(jié)可以表示十進制數(shù) 0 255。 可表示的最大數(shù):11111111(2) 255(10)。 26數(shù)據(jù)和指令均使用字節(jié)(序列)來存儲 計算機只認二進制數(shù)(以二進制形式存儲的代碼或數(shù)據(jù))。就是說,在計算機中,數(shù)據(jù)和指令均使用字節(jié)(序列)來存儲。 不同的計算機系統(tǒng)、不同類型的數(shù)據(jù)、或不同的指令所使用的字節(jié)數(shù)以及表達形式可能互不相同。 27 2存儲器單元(也稱存儲單元) 存儲單元:按字節(jié)安排。 存儲地址:順序號,為每個存儲單元指定一個序碼(號碼)。283機器指令 計算機設(shè)計者把計算機可以完成的動作編輯成一個
12、機器指令表,并為每種動作賦予一個二進制代碼,通常由指令碼(操作碼)和內(nèi)存地址(操作數(shù))來構(gòu)成。通過機器指令來編寫的程序稱為機器語言程序。 29機器語言程序示例 例如,使用“機器語言”編出的做一次加法“TOTAL = PRICE + TAX”的程序為: 156C / 取6C內(nèi)容送寄存器5 166D / 取6D內(nèi)容送寄存器65056 / 把二值相加,結(jié)果送寄存器0 306E / 把寄存器0中的結(jié)果送地址6E C000 / 停機304、內(nèi)存中機器指令的執(zhí)行 計算:5+15=? (1)將0010H存儲單元的數(shù)據(jù)(5)取出,存放在ALU。 (2)將0011H存儲單元的數(shù)據(jù)(15)取出,與 ALU 的數(shù)據(jù)
13、相加,運算結(jié)果存放在ALU。 (3)將 ALU 中的數(shù)據(jù)(20)存放到0012H存儲單元。 (4)停止執(zhí)行 計算機依賴機器指令運行,機器指令以及各種被處理的數(shù)據(jù)都以二進制形式存儲。31 1.1 程序設(shè)計與程序設(shè)計語言1.1.1 計算機與程序設(shè)計語言1.1.2 程序設(shè)計語言1.1.3 程序設(shè)計方法學的發(fā)展1.1.4 程序設(shè)計范型1.1.5 程序設(shè)計的4個層次321.1.1 計算機與程序設(shè)計語言 計算機也許是廿世紀人類帶給廿一世紀的最有價值的禮物,是人類文明歷史上最偉大的發(fā)明之一 。程序(軟件)是計算機的必要組成部分。計算機首先要求人們不斷地在程序設(shè)計上付出大量的創(chuàng)造性勞動,然后才能享受到它的服務(wù)
14、。 程序設(shè)計是一件工作量永無止境,極其困難復雜而又富有魅力和創(chuàng)造樂趣的工作。 331.1.2 程序設(shè)計語言 1 計算機指令系統(tǒng)(機器語言) 2 低級編程語言(匯編語言) 3 高級程序設(shè)計語言34低級語言:機器語言與匯編語言 計算機剛問世時,它的“能耐”還比較小,只能“看懂”或“理解”程序員用原始的機器指令書寫的所謂機器語言程序。 匯編語言將機器指令映射為一些易于看懂、易于記憶的助記符,如ADD,SUB,MOV等。但若要運行(執(zhí)行)用匯編語言寫成的源程序時,必須先運行一個叫做匯編程序系統(tǒng)(Assembler)的軟件,由它首先把匯編語言源程序轉(zhuǎn)換為具有相同功能的機器指令程序,然后再運行機器指令程序
15、,得到所需的結(jié)果。 35 高級語言 之所以稱其為高級語言,是相對于機器語言與匯編語言來說,編程人員對它們的理解、記憶以及使用都要容易的多。高級語言屏蔽了諸多的機器細節(jié)問題,提高了語言的抽象層次,更加接近于人們的思維方式以及自然語言。 應(yīng)用較廣泛的幾種高級語言是:FORTRAN、ALGOL、COBOL、BASIC、PASCAL、C、LISP、PROLOG, C+,C#, Java等。36編譯程序系統(tǒng)(Compiler)的作用 與對待匯編語言源程序相同,用高級語言寫成的源程序也不能被計算機去直接執(zhí)行,也必須先運行一個叫做編譯程序系統(tǒng)(Compiler)的軟件,由它首先把高級語言源程序編譯轉(zhuǎn)換為目標
16、程序,然后再經(jīng)過連接而成為具有相同功能的可執(zhí)行程序(機器指令程序),最后再運行該可執(zhí)行程序(機器指令程序),方可得到所需的結(jié)果。37 1.1.3 程序設(shè)計方法學的發(fā)展 1 程序設(shè)計技術(shù)的初級階段 2 結(jié)構(gòu)程序設(shè)計階段 3 面向?qū)ο蟪绦蛟O(shè)計階段 38 1.1.3 程序設(shè)計方法學的發(fā)展 1 程序設(shè)計技術(shù)的初級階段 2 結(jié)構(gòu)程序設(shè)計階段 3 面向?qū)ο蟪绦蛟O(shè)計階段 39 1 程序設(shè)計技術(shù)的初級階段 計算機誕生,von Neumann 模式形成,低級語言編程是主要開發(fā)形式。 第一代高級語言(以 FORTRAN 和ALGOL60 為代表)誕生,從低級語言編程轉(zhuǎn)向高級語言編程,可以說是計算機“生產(chǎn)力”的一次
17、解放。這個時期的程序設(shè)計技術(shù)重視程序設(shè)計技巧,注意節(jié)省內(nèi)存和目標代碼的效率。高級語言的出現(xiàn)使得程序設(shè)計的難度降低,導致了計算機應(yīng)用在五六十年代的發(fā)展進入新的階段。60年代,以大規(guī)模程序頻頻出錯(例如1962年,因軟件出錯導致美國金星探測器水手號衛(wèi)星發(fā)射失敗)為特征的“軟件危機”發(fā)生,引起關(guān)于“Goto語句”的辯論。 40 2 結(jié)構(gòu)程序設(shè)計階段 以Pascal 語言和C語言為代表,強調(diào)數(shù)據(jù)類型、程序結(jié)構(gòu),程序設(shè)計的目標把可靠性、可維護性的要求放在了比高效率更重要的位置上 結(jié)構(gòu)程序設(shè)計思想的要點是:注意程序的可讀性 采用自頂向下、逐步求精的設(shè)計方法 盡可能地使程序運行的動態(tài)結(jié)構(gòu)與程序書寫的靜態(tài)結(jié)構(gòu)
18、相對地比較一致 嚴格區(qū)分數(shù)據(jù)類型 面向過程的SP結(jié)構(gòu)化程序設(shè)計方法存在著一個主要缺點:數(shù)據(jù)和處理數(shù)據(jù)的操作過程(處理函數(shù))是相互獨立的實體,當數(shù)據(jù)結(jié)構(gòu)改變時,所有相關(guān)的處理過程(函數(shù))都要進行相應(yīng)的修改,從而使程序的可重用性明顯變差。41 3 面向?qū)ο蟪绦蛟O(shè)計階段 80年代,面向?qū)ο蟪绦蛟O(shè)計逐漸從理論轉(zhuǎn)向?qū)嵺`,以Smalltalk,C+等語言為代表,程序設(shè)計理論步入成熟期。A.Kay 研制了Smalltalk 語言,B.Stroustrup 則開發(fā)了C+ 語言 . OOP 方法在90年代的盛行主要有兩個基本的原因:其一是 OOP 方法從思想上與SP 方法相比是抓住了軟件開發(fā)的本質(zhì)和規(guī)律 其二就
19、是計算機所要解決的問題越來越重要,越來越復雜。 OOP 技術(shù)之所以能適應(yīng)今天軟件產(chǎn)業(yè)的需要,是因為它比較好地解決了軟件模塊化、信息隱蔽和抽象的目標。 42目前常用的面向?qū)ο笳Z言 目前,應(yīng)用最廣的面向?qū)ο笳Z言是在C語言基礎(chǔ)上擴充出來的C+語言,而科研前沿目前用的最多的要屬Microsoft公司的Visual C+ 6.0(簡稱VC6.0),它是基于Windows窗口規(guī)范的一個C+的具體實現(xiàn)版本。 其它面向?qū)ο蟮木幊陶Z言還有Smalltalk語言、Simula67語言、以及LISP家族的面向?qū)ο笳Z言,JAVA, C#等。 43 OOP程序設(shè)計方法的特點 面向?qū)ο蟪绦蛟O(shè)計是要彌補面向過程的SP結(jié)構(gòu)化
20、程序設(shè)計方法的缺點,它將數(shù)據(jù)以及對這些數(shù)據(jù)進行操作的方法(處理過程)放在一起,形成一個相互依存、不可分離的整體 - 對象。通過對事物的抽象找出同一類對象的共同屬性(靜態(tài)特征)和行為(動態(tài)特征),從而形成類。類是面向?qū)ο蟪绦蛟O(shè)計方法中的程序主體,即是說,程序結(jié)構(gòu)將劃分為若干類的基本模塊,類中的大多數(shù)數(shù)據(jù)只能用本類的方法進行處理,以保障程序模塊的獨立性以及數(shù)據(jù)的安全性。類通過一個簡單的公共對外接口與外界發(fā)生聯(lián)系,對象與對象之間通過消息進行通訊。 面向?qū)ο蟪绦蛟O(shè)計的三大特征是:封裝性、繼承性、多態(tài)性。 44 C+語言對面向?qū)ο蠓椒ǖ闹С?C+語言是一種面向?qū)ο蟮某绦蛟O(shè)計語言,它對面向?qū)ο蟮某绦蛟O(shè)計方
21、法進行了較全面的支持。 1. 支持數(shù)據(jù)封裝 C+語言中的類(class)是支持數(shù)據(jù)封裝的工具。通過類(class)類型對所要處理的問題進行抽象描述,從而將邏輯上相關(guān)的數(shù)據(jù)與函數(shù)進行封裝。45 2. 支持繼承性 C+語言允許單繼承和多繼承。所謂多繼承,就是從多個父類(基類)那兒繼承屬性和行為特征。另外,如有必要,派生類還可以生成它自己的派生類。即是說,根據(jù)需要,類之間可形成多層次的派生以及繼承關(guān)系。 3. 支持多態(tài)性 允許對函數(shù)和運算符進行重載體現(xiàn)出一種多態(tài)性。通過在基類及其派生類間對虛函數(shù)進行使用體現(xiàn)出另一種多態(tài)性。 46 1.1.4 程序設(shè)計的范型1 命令型程序設(shè)計 2 OOP程序設(shè)計 3 函數(shù)性程序設(shè)計 4 邏輯性程序設(shè)計47 1.1.5 程序設(shè)計的4個層次1 算法的設(shè)計與分析 2 程序設(shè)計方法學 3 程序設(shè)計語言 4 程序設(shè)計環(huán)境與工具48 1.2 C+語言概述1.2.1 為什么選擇C+語言 1.2.2 C+語言簡史 1.2.3 C+語言的特點49 1.2.1 為什么選擇C+語言 面向?qū)ο蟪绦蛟O(shè)計正在逐漸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- wifi覆蓋工程合同范本
- 充電樁充電合同范本
- 化肥 購銷合同范本
- 公司增資合同范例
- 勞動薪酬合同范本
- 出售新地磅合同范本
- 勞務(wù)派遣簡短合同范本
- 公司代理財務(wù)記賬合同范本
- 生活用水水箱清洗施工方案
- 農(nóng)村礦山出租合同范本
- 2025年01月2025廣東深圳市何香凝美術(shù)館公開招聘應(yīng)屆高校畢業(yè)生2人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 園林聘用勞動合同
- 300畝文冠果樹栽培基地建設(shè)項目可行性研究報告
- 2025年菏澤職業(yè)學院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 2025年江西生物科技職業(yè)學院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年山東力明科技職業(yè)學院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年上海浦東新區(qū)高三一模高考英語試卷試題(含答案詳解)
- 2025年度企業(yè)安全生產(chǎn)與環(huán)保管理服務(wù)協(xié)議范本3篇
- 2025-2030年中國巧克力產(chǎn)品市場需求狀況及發(fā)展趨勢分析報告
- 上海市發(fā)展改革研究院工作人員招考聘用12人高頻重點提升(共500題)附帶答案詳解
- CRM系統(tǒng)應(yīng)用培訓
評論
0/150
提交評論