計(jì)算機(jī)程序設(shè)計(jì)與語言_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第4章計(jì)算機(jī)程序設(shè)計(jì)與語言,中國(guó)石油大學(xué)出版社,Add your company slogan,www.themegallery.com,LOGO,本章概要,本章介紹計(jì)算機(jī)程序設(shè)計(jì)的基本概念,包括模型的建立、算法的設(shè)計(jì)和表達(dá)、計(jì)算機(jī)程序設(shè)計(jì)語言、程序的編寫、程序的測(cè)試、程序文檔的建立和程序的維護(hù)。通過本章的學(xué)習(xí),你將具備計(jì)算機(jī)程序設(shè)計(jì)的基本能力,可以利用學(xué)到的知識(shí)和方法嘗試解決很多問題。學(xué)完本章,你將能夠:◎了解程序設(shè)計(jì)的基本步驟;

2、◎掌握至少兩種表達(dá)算法的方法;◎識(shí)別簡(jiǎn)單程序中的控制結(jié)構(gòu);◎列出如今流行的編程語言;◎描述各種編程語言的主要特征。,www.themegallery.com,LOGO,本章要點(diǎn),,www.themegallery.com,LOGO,4.1.1 計(jì)算機(jī)程序,程序是計(jì)算機(jī)執(zhí)行任何操作的驅(qū)動(dòng)力,是計(jì)算機(jī)為完成某一任務(wù)所必須執(zhí)行的一系列指令。,4.1.2 程序設(shè)計(jì)步驟,(1)建立模型:從實(shí)際問題抽象出數(shù)學(xué)模型,即由物理模型到抽象模型

3、,用形式化方法描述現(xiàn)實(shí)世界。(2)算法設(shè)計(jì):給出解決問題的方法和步驟,即算法。同一個(gè)問題可以有不同的解決辦法,從中選取一種最合適的。(3)算法表達(dá):選擇一種或幾種表達(dá)算法的工具,對(duì)算法進(jìn)行清晰的表達(dá)。(4)編寫程序:選擇程序設(shè)計(jì)語言,把算法程序化。(5)程序測(cè)試和調(diào)試:對(duì)編寫好的程序進(jìn)行測(cè)試,修改程序中的錯(cuò)誤。(6)程序文檔編寫與程序維護(hù):整理和編寫程序文檔,以便更好地維護(hù)程序。,www.themegallery.com,LO

4、GO,4.1.3 程序設(shè)計(jì)語言,計(jì)算機(jī)語言的發(fā)展經(jīng)歷了機(jī)器語言、匯編語言和高級(jí)語言三個(gè)階段。機(jī)器語言是計(jì)算機(jī)能直接執(zhí)行的二進(jìn)制形式的語言。匯編語言的實(shí)質(zhì)和機(jī)器語言是相同的,都是直接對(duì)硬件操作,只不過指令采用了英文縮寫的標(biāo)識(shí)符,更容易識(shí)別和記憶。高級(jí)語言更接近自然語言和數(shù)學(xué)語言,和匯編語言相比,它不但將許多相關(guān)的機(jī)器指令合成為單條指令,并且去掉了與具體操作有關(guān)但與完成工作無關(guān)的細(xì)節(jié),如使用堆棧、寄存器等,這樣就大大簡(jiǎn)化了程序中的指令,使

5、程序員可以離開機(jī)器層次,在更抽象的層次上表達(dá)意圖,以接近問題本質(zhì)的方式去思考和描述問題。高級(jí)語言所編制的程序不能直接被計(jì)算機(jī)識(shí)別,必須經(jīng)過轉(zhuǎn)換才能被執(zhí)行。,4.2 模型與算法,4.2 模型與算法模型是對(duì)現(xiàn)實(shí)系統(tǒng)的一種描述,是對(duì)現(xiàn)實(shí)系統(tǒng)的抽象和簡(jiǎn)化。模型由現(xiàn)實(shí)系統(tǒng)的有關(guān)元素組成,能夠反映這些元素之間的關(guān)系,從而反映現(xiàn)實(shí)系統(tǒng)的本質(zhì)。模型分為物理模型和數(shù)學(xué)模型兩大類。物理模型由物理元素構(gòu)成,又稱為形象模型。數(shù)學(xué)模型由關(guān)系、函數(shù)等數(shù)學(xué)

6、對(duì)象符號(hào)組成,又稱為邏輯模型或抽象模型。,4.2.1 建立模型,物理模型的建立:對(duì)客觀存在的事物進(jìn)行形象的描述,列出已知的所有物理元素及其關(guān)系,明確需要解決的問題。 數(shù)學(xué)模型的建立:在物理模型的基礎(chǔ)上,忽略不重要的細(xì)節(jié)(如在一個(gè)籠子里這個(gè)事實(shí)與要解決的問題無關(guān)),抓住本質(zhì)性的元素,對(duì)其符號(hào)化后,再用數(shù)學(xué)的方法描述出來。,4.2.2 算法設(shè)計(jì),算法是解決問題的方法和步驟 評(píng)價(jià)算法基本的標(biāo)準(zhǔn)有兩個(gè):一是時(shí)間標(biāo)準(zhǔn)(時(shí)間復(fù)雜度),二

7、是空間標(biāo)準(zhǔn)(空間復(fù)雜度)。,4.2.2 算法設(shè)計(jì),設(shè)計(jì)算法時(shí),還要注意以下幾點(diǎn):(1)通用性。一個(gè)算法總是針對(duì)某類問題設(shè)計(jì)的,所以對(duì)于求解某類問題中的任何一個(gè)問題應(yīng)該是有效的。例如,上面給出的解二元一次方程組的算法就有一定的通用性。(2)確定性。算法中的每個(gè)步驟都是確定的,在什么情況下做什么也非常明確,沒有含糊不清的地方。(3)有限性。一個(gè)算法在執(zhí)行時(shí),必須經(jīng)過有限步后停下來,結(jié)束算法執(zhí)行,給出結(jié)果,4.2.3 算法表達(dá),為了

8、提高算法表達(dá)的清晰程度,需要選擇一種合適的描述算法的工具。常用的描述工具有流程圖、N-S圖、PAD圖和偽碼等。這些工具不是程序設(shè)計(jì)語言,不能直接被計(jì)算機(jī)執(zhí)行,使用它們的目的就是把算法表述出來。,算法表達(dá),求解二元一次方程組算法,4.3 程序設(shè)計(jì)實(shí)現(xiàn),建立模型、算法設(shè)計(jì)和算法表達(dá)三個(gè)步驟完成后,下一步是編寫計(jì)算機(jī)程序,也就是要選擇一種程序設(shè)計(jì)語言,將用偽碼或流程圖等表達(dá)的算法翻譯成用程序設(shè)計(jì)語言表達(dá)的程序。,www.themegall

9、ery.com,LOGO,4.3.2 編寫程序,編寫程序的基本要求:首先是保證語法的正確性。只有語法正確的程序才能通過編譯系統(tǒng)的語法檢查。其次是保證語義的正確性,也就是通過運(yùn)行程序,得到需要的正確結(jié)果。 高質(zhì)量的程序還應(yīng)體現(xiàn)在以下四個(gè)方面:可靠性高、運(yùn)行速度快、占用存儲(chǔ)空間小和易懂性。,三種基本的控制結(jié)構(gòu),(1)順序控制結(jié)構(gòu)。順序控制結(jié)構(gòu)含有多個(gè)連續(xù)的步驟,如圖4-2所示。在此控制結(jié)構(gòu)中的A和B是順序執(zhí)行的。順序控制結(jié)構(gòu)是最簡(jiǎn)單

10、的一種基本結(jié)構(gòu)。,三種基本的控制結(jié)構(gòu),(2)選擇控制結(jié)構(gòu)。選擇控制結(jié)構(gòu)也稱為分支結(jié)構(gòu),計(jì)算機(jī)根據(jù)所列條件選擇執(zhí)行路徑,如圖4-3所示。在此控制結(jié)構(gòu)中有一個(gè)判斷框,它只能有兩個(gè)分支,根據(jù)條件P是否滿足而分別執(zhí)行A或B。,三種基本的控制結(jié)構(gòu),(3)重復(fù)控制結(jié)構(gòu)。重復(fù)控制結(jié)構(gòu)又稱循環(huán)結(jié)構(gòu),可以重復(fù)執(zhí)行一條或多條指令直到滿足退出條件。重復(fù)控制結(jié)構(gòu)主要有以下兩種:,當(dāng)型循環(huán)結(jié)構(gòu),直到型循環(huán)結(jié)構(gòu),4.4 程序的測(cè)試、調(diào)試與維護(hù),經(jīng)過建立數(shù)學(xué)模

11、型、算法設(shè)計(jì)、算法表達(dá)和編寫程序四個(gè)步驟,就得到了用程序設(shè)計(jì)語言編寫的源程序代碼,該程序編碼是否能夠滿足實(shí)際問題的需要,還應(yīng)經(jīng)過嚴(yán)格的測(cè)試、調(diào)試,這是保證程序正確性的重要步驟,4.4.1 程序測(cè)試,1. 黑盒測(cè)試法與白盒測(cè)試法對(duì)程序進(jìn)行測(cè)試常用兩種方法進(jìn)行,一種是把程序看成一個(gè)“黑盒子”,測(cè)試人員完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只考慮程序的功能,通過選擇一些測(cè)試數(shù)據(jù),看程序的功能是否都已實(shí)現(xiàn),這就是黑盒測(cè)試法。另一種是把程序看成

12、一個(gè)打開的盒子,測(cè)試人員只關(guān)注程序內(nèi)部的處理過程,通過選擇一些測(cè)試數(shù)據(jù),檢查程序中的每個(gè)語句或分支是否都能正確執(zhí)行,這就是白盒測(cè)試法。,,2. 測(cè)試的步驟測(cè)試工作先對(duì)每個(gè)模塊進(jìn)行測(cè)試,一般采用白盒測(cè)試法保證每個(gè)程序模塊內(nèi)部的正確性,然后再把測(cè)試后的模塊組裝在一起進(jìn)行整體測(cè)試,主要測(cè)試各模塊是否能正常配合工作,方法多采用黑盒測(cè)試法。對(duì)模塊的接口進(jìn)行測(cè)試,適當(dāng)輔以白盒測(cè)試法,以便對(duì)主要執(zhí)行路徑進(jìn)行測(cè)試。,4.4.2 程序調(diào)試,(1)對(duì)測(cè)

13、試發(fā)現(xiàn)的錯(cuò)誤現(xiàn)象進(jìn)行分析,確定程序中的出錯(cuò)位置;(2)研究有關(guān)部分的程序,找出錯(cuò)誤的內(nèi)在原因(有的錯(cuò)誤不一定是編碼錯(cuò)誤,可能是設(shè)計(jì)錯(cuò)誤);(3)修改設(shè)計(jì)或代碼,以排除這個(gè)錯(cuò)誤;(4)重復(fù)進(jìn)行暴露了這個(gè)錯(cuò)誤的原始測(cè)試和其他有關(guān)測(cè)試。,4.5 程序設(shè)計(jì)語言應(yīng)用,程序設(shè)計(jì)語言有幾十年的發(fā)展、應(yīng)用的歷史,了解其發(fā)展和分類有助于在軟件開發(fā)中選擇合適的程序設(shè)計(jì)語言。隨著程序設(shè)計(jì)語言的發(fā)展,出現(xiàn)了很多軟件開發(fā)工具,其充分展示了程序設(shè)計(jì)語言的

14、特性,對(duì)提高軟件開發(fā)效率有很大作用。,4.5.1 程序設(shè)計(jì)高級(jí)語言的分類與選擇,(1)過程性語言:過程性編程語言適合于順序執(zhí)行的算法。用過程性語言編寫的程序有一個(gè)起點(diǎn)和一個(gè)終點(diǎn),程序的執(zhí)行是流水線式的,在一個(gè)模塊被執(zhí)行完成前,不能處理其他任務(wù),也無法動(dòng)態(tài)地改變程序的執(zhí)行過程。 典型代表有:BASIC語言 C語言,,(2)面向?qū)ο蟮恼Z言:面向?qū)ο蟮某绦蛟O(shè)計(jì)語言是建立在面向?qū)ο缶幊谭椒ǖ幕A(chǔ)上的。面向?qū)ο蟮某绦虮豢闯墒强梢赃M(jìn)行相互

15、通信的若干對(duì)象的集合。設(shè)計(jì)面向?qū)ο蟪绦蚓褪嵌x對(duì)象,建立對(duì)象間的通信關(guān)系。程序中的輸入即是對(duì)象間發(fā)消息(通信),而輸出則是程序中的對(duì)象向顯示器(或打印機(jī))發(fā)消息(通信)的結(jié)果,程序運(yùn)行的結(jié)果就是將對(duì)象集的初始狀態(tài)變成終結(jié)狀態(tài)(目標(biāo)狀態(tài))。對(duì)象是程序中使用的實(shí)體。例如,在Windows環(huán)境下,我們習(xí)慣于用鼠標(biāo)點(diǎn)擊按鈕,這里的按鈕就是一個(gè)對(duì)象。程序員可以使用面向?qū)ο蟮恼Z言來定義按鈕對(duì)象,在程序運(yùn)行時(shí)把它表示出來。C++,c#,Java,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論