第一章計(jì)算機(jī)與程序設(shè)計(jì)_第1頁(yè)
第一章計(jì)算機(jī)與程序設(shè)計(jì)_第2頁(yè)
第一章計(jì)算機(jī)與程序設(shè)計(jì)_第3頁(yè)
第一章計(jì)算機(jī)與程序設(shè)計(jì)_第4頁(yè)
第一章計(jì)算機(jī)與程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、牟永敏北京信息工程學(xué)院計(jì)算機(jī)系清華大學(xué)出版社牟永敏北京信息工程學(xué)院計(jì)算機(jī)系概要概要:本章介紹計(jì)算機(jī)和程序設(shè)計(jì)的基本知識(shí),主要內(nèi)容包括:1. 計(jì)算機(jī)的基本結(jié)構(gòu)計(jì)算機(jī)的基本結(jié)構(gòu)2. 程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言3. 面向過(guò)程程序設(shè)計(jì)面向過(guò)程程序設(shè)計(jì)4. 面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì) 通過(guò)對(duì)這些內(nèi)容的學(xué)習(xí),使讀者對(duì)計(jì)算機(jī)和程序設(shè)計(jì)有一個(gè)初步的了解,為后面各章的學(xué)習(xí)奠定基礎(chǔ)。 1.計(jì)算機(jī)的基本結(jié)構(gòu)(1) 計(jì)算機(jī)的基本結(jié)構(gòu)主要是由存儲(chǔ)器、運(yùn)算器、控制器、輸入設(shè)備和輸出設(shè)備等五個(gè)部件組成。 其中: 存儲(chǔ)器:是用來(lái)存儲(chǔ)數(shù)據(jù)。大致分為內(nèi)部存儲(chǔ)器(內(nèi)存)和外部存儲(chǔ)器(硬盤、軟盤等) 運(yùn)算器:是用來(lái)完成各種算術(shù)運(yùn)

2、算和邏輯運(yùn)算。 控制器:用來(lái)控制計(jì)算機(jī)的各個(gè)部件協(xié)調(diào)工作。 輸入設(shè)備和輸出設(shè)備:是用來(lái)為數(shù)據(jù)的輸入和輸出服務(wù)的??刂破鲀?nèi)存儲(chǔ)器運(yùn)算器外存儲(chǔ)器輸入設(shè)備輸出設(shè)備指令程序原始數(shù)據(jù)原始數(shù)據(jù)結(jié)果結(jié)果圖1.1 計(jì)算機(jī)的基本結(jié)構(gòu)1.計(jì)算機(jī)的基本結(jié)構(gòu)(2) 計(jì)算機(jī)的工作過(guò)程 (以匯編為例): 第一步,用輸入設(shè)備把事先編制好的解題步驟(即程序)和原始數(shù)據(jù)輸入到存儲(chǔ)器指定編號(hào)的地方(內(nèi)存單元)存放起來(lái)。 第二步,命令計(jì)算機(jī)從第一條指令開(kāi)始執(zhí)行程序,則計(jì)算機(jī)在程序控制下自動(dòng)完成解題的全過(guò)程。 返回返回2.程序設(shè)計(jì)語(yǔ)言 (1) 60年代,馮諾依曼提出了程序存儲(chǔ)原理,計(jì)算機(jī)走向了現(xiàn)代化。 目前,程序設(shè)計(jì)語(yǔ)言的發(fā)展已經(jīng)經(jīng)

3、歷了四代,第五代語(yǔ)言尚處于萌芽狀態(tài)。下面簡(jiǎn)單介紹一下各代語(yǔ)言的基本特點(diǎn)。2.程序設(shè)計(jì)語(yǔ)言 (2)第一代語(yǔ)言 第一代程序設(shè)計(jì)語(yǔ)言是機(jī)器語(yǔ)言,它是計(jì)算機(jī)所特有的,不同計(jì)算機(jī)有不同的機(jī)器語(yǔ)言。第二代語(yǔ)言 匯編語(yǔ)言,也稱為符號(hào)語(yǔ)言。用含義較鮮明的符號(hào),代替機(jī)器語(yǔ)言中的二進(jìn)制編碼,因此看起來(lái)較直觀,不易出錯(cuò)。 2.程序設(shè)計(jì)語(yǔ)言 (3)第三代語(yǔ)言 稱為算法語(yǔ)言,算法語(yǔ)言的基本組成成分是各種語(yǔ)句(如結(jié)構(gòu)化程序設(shè)計(jì)),比用機(jī)器語(yǔ)言或匯編語(yǔ)言編寫程序更加方便、簡(jiǎn)單和直觀。第四代語(yǔ)言 實(shí)質(zhì)上是可以快速開(kāi)發(fā)應(yīng)用軟件的各種高生產(chǎn)率的軟件工具的統(tǒng)稱。如VC+、Delphi等。 2.程序設(shè)計(jì)語(yǔ)言 (4)第五代語(yǔ)言 多數(shù)人

4、認(rèn)為,第五代語(yǔ)言將是智能化的語(yǔ)言。PROLOG語(yǔ)言可能是第五代語(yǔ)言最著名的雛形。 返回返回3.面向過(guò)程程序設(shè)計(jì)(1) 使用傳統(tǒng)程序設(shè)計(jì)語(yǔ)言進(jìn)行程序設(shè)計(jì)時(shí),必須詳細(xì)準(zhǔn)確地描述解題過(guò)程 。因?yàn)槌绦蛟O(shè)計(jì)工作主要圍繞設(shè)計(jì)解題過(guò)程來(lái)進(jìn)行,所以傳統(tǒng)的程序設(shè)計(jì)方法稱為面向過(guò)程的程序設(shè)計(jì)。 人們?cè)陂_(kāi)發(fā)軟件的長(zhǎng)期實(shí)踐過(guò)程中,總結(jié)出一些設(shè)計(jì)原理并研究出一些系統(tǒng)化的技術(shù)方法,用于面向過(guò)程程序設(shè)計(jì),能夠提高開(kāi)發(fā)效率,增加系統(tǒng)的可理解性和可維護(hù)性。這些原理和技術(shù)方法,在進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)時(shí)也有借鑒意義。 3.面向過(guò)程程序設(shè)計(jì)(2) 基本設(shè)計(jì)原理與技術(shù)-模塊化 模塊是數(shù)據(jù)說(shuō)明、可執(zhí)行的語(yǔ)句等程序元素的集合,它是單獨(dú)命名

5、的而且可以通過(guò)名字來(lái)訪問(wèn),所謂模塊化,就是把一個(gè)程序劃分成若干個(gè)模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊組裝成一個(gè)整體,可以完成指定的功能 。如:函數(shù)。 請(qǐng)注意:在把程序劃分成模塊的時(shí)候,模塊規(guī)模應(yīng)該適當(dāng) 。3.面向過(guò)程程序設(shè)計(jì)(3) 基本設(shè)計(jì)原理與技術(shù)-抽象 人類在認(rèn)識(shí)復(fù)雜現(xiàn)象的過(guò)程中使用的最強(qiáng)有力的思維工具是抽象。人們?cè)趯?shí)踐中認(rèn)識(shí)到,在現(xiàn)實(shí)世界中一定事物、狀態(tài)或過(guò)程之間總存在著某些相似的方面(共性)。把這些相似的方面集中和概括起來(lái),暫時(shí)忽略它們之間的差異,這就是抽象。 如:各式各樣的人=人類。抽象是對(duì)事物共性的高度概括。 當(dāng)我們考慮對(duì)任何問(wèn)題的模塊化解法時(shí),可以提出許多抽象的層次。 3.面

6、向過(guò)程程序設(shè)計(jì)(4) 基本設(shè)計(jì)原理與技術(shù)-信息隱藏和局部化 信息隱藏原理指出,在設(shè)計(jì)和確定模塊時(shí),應(yīng)該使得一個(gè)模塊內(nèi)包含的信息(數(shù)據(jù)和過(guò)程)對(duì)于不需要這些信息的模塊來(lái)說(shuō),是不可訪問(wèn)的(又稱不可見(jiàn)的)。 局部化,是指把一些關(guān)系密切的程序元素物理地放得彼此靠近,處于同一局部區(qū)城內(nèi)。 3.面向過(guò)程程序設(shè)計(jì)(5) 基本設(shè)計(jì)原理與技術(shù)-模塊獨(dú)立 模塊獨(dú)立原理是模塊化、抽象、信息隱藏和局部化原理的直接結(jié)果和進(jìn)一步發(fā)展。應(yīng)該這樣設(shè)計(jì)程序結(jié)構(gòu),使得每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的特定子功能,并且和其他模塊之間的關(guān)系盡可能簡(jiǎn)單。 耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度;內(nèi)聚衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的

7、緊密程度。簡(jiǎn)單地說(shuō),理想內(nèi)聚的模塊只做一件事情。 高內(nèi)聚和松耦合是進(jìn)行模塊化設(shè)計(jì)的重要標(biāo)準(zhǔn),實(shí)踐表明內(nèi)聚更重要。 3.面向過(guò)程程序設(shè)計(jì)(6) 基本設(shè)計(jì)原理與技術(shù)-結(jié)構(gòu)程序設(shè)計(jì)技術(shù) 把一個(gè)程序劃分成若干個(gè)模塊之后,進(jìn)一步的工作就是設(shè)計(jì)完成每個(gè)模塊功能的處理過(guò)程。 結(jié)構(gòu)程序設(shè)計(jì)是一種設(shè)計(jì)程序的技術(shù), 適應(yīng)于面向過(guò)程和面向?qū)ο蟮木幊谭椒ǎ菍?shí)現(xiàn)模塊的具體技術(shù)。自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu)。 3.面向過(guò)程程序設(shè)計(jì)(7) 使用結(jié)構(gòu)程序設(shè)計(jì)技術(shù)設(shè)計(jì)程序的主要好處如下:(1)自頂向下逐步求精的方法符合人類解決復(fù)雜問(wèn) 題的普遍規(guī)律,因此可以顯著提高開(kāi)發(fā)效率。(2)用先全局后局部、先整體后

8、細(xì)節(jié)、先抽象后具體的逐步求精過(guò)程開(kāi)發(fā)出的程序有清晰的層次結(jié)構(gòu),因此容易閱讀和理解。 (3)僅使用單入口單出口的控制結(jié)構(gòu),使得程序的靜態(tài)結(jié)構(gòu)和它的動(dòng)態(tài)執(zhí)行情況比較一致。(4)控制結(jié)構(gòu)有確定的邏輯模式,源程序清晰流暢,易讀易懂而且容易測(cè)試。 返回返回4. 面向?qū)ο蟪绦蛟O(shè)計(jì) (1) 人類習(xí)慣的解決問(wèn)題的方法是采用“顧客-服務(wù)員”的工作模式。如:廚師與理發(fā)師的相互“顧客服務(wù)”。 面向?qū)ο蟪绦蛟O(shè)計(jì)方法模擬人類習(xí)慣的解題方法,用對(duì)象分解取代功能分解,也就是把程序分解成許多對(duì)象,不同對(duì)象之間通過(guò)發(fā)消息向?qū)Ψ教岢龇?wù)要求,接受消息的對(duì)象主動(dòng)完成指定功能(顧客所要求的服務(wù)),程序中的所有對(duì)象分工協(xié)作,共同完成整

9、個(gè)程序的功能。 可以認(rèn)為:面向?qū)ο蟮某绦蚴怯蓪?duì)象和對(duì)象間的相互作用構(gòu)成的。 是對(duì)象的有機(jī)結(jié)合。4. 面向?qū)ο蟪绦蛟O(shè)計(jì) (2)面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ň哂邢率鏊膫€(gè)要點(diǎn):(1)認(rèn)為客觀世界是由各種對(duì)象組成的,任何事物都是對(duì)象,復(fù)雜的對(duì)象可以由比較簡(jiǎn)單的對(duì)象以某種方式組合而成。面向?qū)ο蟮能浖到y(tǒng)是由對(duì)象組成的,軟件中的任何元素都是對(duì)象,復(fù)雜的軟件對(duì)象由比較簡(jiǎn)單的對(duì)象組合而成。(2)把所有對(duì)象都劃分成各種對(duì)象類,每個(gè)對(duì)象類都定義了一組數(shù)據(jù)和一組方法。類中定義的數(shù)據(jù)用于表示對(duì)象的靜態(tài)屬性,是對(duì)象的狀態(tài)信息。類中定義的方法,是允許施加于該類對(duì)象上的操作,是該類所有對(duì)象共享的,并不需要為每個(gè)對(duì)象都復(fù)制操

10、作的代碼。該類中所有對(duì)象中的方法共享此代碼(但是各個(gè)對(duì)象中的方法使用的數(shù)據(jù)是不同的)。 4. 面向?qū)ο蟪绦蛟O(shè)計(jì) (3)(3)按照子類(或稱為派生類)與父類(或稱為基類)的關(guān)系,把若干個(gè)對(duì)象類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱為類等級(jí))。在這種層次結(jié)構(gòu)中,通常下層的派生類具有和上層的基類相同的特性(包括數(shù)據(jù)和方法),這種現(xiàn)象稱為繼承(Inheritance)。但是,如果在派生類中對(duì)某些特性又做了重新描述,則在派生類中的這些特性將以新描述為準(zhǔn),也就是說(shuō),低層的特性將屏蔽高層的同名特性。(4)對(duì)象彼此之間僅能通過(guò)傳遞消息互相聯(lián)系。 對(duì)象與傳統(tǒng)的數(shù)據(jù)有本質(zhì)區(qū)別,它不是被動(dòng)地等待外界對(duì)它施加操作,相反,它是進(jìn)

11、行處理的主體,必須發(fā)消息請(qǐng)求它執(zhí)行它的某個(gè)操作,處理它的私有數(shù)據(jù),而不能從外界直接對(duì)它的私有數(shù)據(jù)進(jìn)行操作。 面向?qū)ο蟮姆椒▽W(xué)可以用下列方程來(lái)概括: OO=Objects + Classes + lnheritance + Communication With messages 只有同時(shí)使用對(duì)象、類、繼承和消息的方法,才是真正面向?qū)ο蟮姆椒ā?所開(kāi)發(fā)的程序才是面向?qū)ο蟮某绦颉?. 面向?qū)ο蟪绦蛟O(shè)計(jì) (4) 面向?qū)ο蠓椒ǖ闹饕獌?yōu)點(diǎn) 1.與人類習(xí)慣的思維方法比較一致 傳統(tǒng)的程序設(shè)計(jì)技術(shù)是面向過(guò)程的設(shè)計(jì)方法,這種方法以算法為核心,把數(shù)據(jù)和過(guò)程作為相互獨(dú)立的部分,數(shù)據(jù)代表問(wèn)題空間中的實(shí)體,程序代碼則用于

12、處理這些數(shù)據(jù) 。忽略了數(shù)據(jù)和操作之間的內(nèi)在聯(lián)系,用這種方法所設(shè)計(jì)出來(lái)的軟件系統(tǒng)其解空間與問(wèn)題空間并不一致(因?yàn)槭潜舜霜?dú)立的),令人感到難于理解。 面向?qū)ο蟮能浖夹g(shù)以對(duì)象(Object)為核心,用這種技術(shù)開(kāi)發(fā)出的軟件系統(tǒng)由對(duì)象組成。對(duì)象是對(duì)現(xiàn)實(shí)世界實(shí)體的正確抽象,它是由描述內(nèi)部狀態(tài)表示靜態(tài)屬性的數(shù)據(jù),以及可以對(duì)這些數(shù)據(jù)施加的操作(表示對(duì)象的動(dòng)態(tài)行為),封裝在一起所構(gòu)成的統(tǒng)一體。對(duì)象之間通過(guò)傳遞消息互相聯(lián)系,以模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系。4. 面向?qū)ο蟪绦蛟O(shè)計(jì) (5)2. 穩(wěn)定性好 傳統(tǒng)的軟件開(kāi)發(fā)方法:軟件系統(tǒng)的結(jié)構(gòu)緊密依賴于系統(tǒng)所要完成的功能,當(dāng)功能需求發(fā)生變化時(shí)將引起軟件結(jié)構(gòu)的整體修改。 面向?qū)ο蠓椒ǎ寒?dāng)對(duì)系統(tǒng)的功能需求變化時(shí)并不會(huì)引起軟件結(jié)構(gòu)的整體變化,往往僅需要作一些局部性的修改。4. 面向?qū)ο蟪绦蛟O(shè)計(jì) (6)3.可重用性好 傳統(tǒng)的軟件重用技術(shù)是利用標(biāo)準(zhǔn)函數(shù)庫(kù) 。 面對(duì)象有兩種方法可以重復(fù)使用一個(gè)對(duì)象類: 一種方法是可以創(chuàng)建該類的多個(gè)實(shí)例,從而直接使用它。 另一種方法是從它派生出一個(gè)滿足當(dāng)前需要的新類。繼承性機(jī)制使得子類不僅可以重用其父類的數(shù)據(jù)結(jié)構(gòu)和程序代碼,而且可以在父類代碼的基礎(chǔ)上方便地修改和擴(kuò)充,這種修改并不影響對(duì)原有類的使用。 4. 面向?qū)ο蟪绦蛟O(shè)計(jì) (7)4.可維護(hù)性好(包括對(duì)軟件功能的:增加、修改、

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論