

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第4章計算機(jī)程序設(shè)計與語言,中國石油大學(xué)出版社,Add your company slogan,www.themegallery.com,LOGO,本章概要,本章介紹計算機(jī)程序設(shè)計的基本概念,包括模型的建立、算法的設(shè)計和表達(dá)、計算機(jī)程序設(shè)計語言、程序的編寫、程序的測試、程序文檔的建立和程序的維護(hù)。通過本章的學(xué)習(xí),你將具備計算機(jī)程序設(shè)計的基本能力,可以利用學(xué)到的知識和方法嘗試解決很多問題。學(xué)完本章,你將能夠:◎了解程序設(shè)計的基本步驟;
2、◎掌握至少兩種表達(dá)算法的方法;◎識別簡單程序中的控制結(jié)構(gòu);◎列出如今流行的編程語言;◎描述各種編程語言的主要特征。,www.themegallery.com,LOGO,本章要點,,www.themegallery.com,LOGO,4.1.1 計算機(jī)程序,程序是計算機(jī)執(zhí)行任何操作的驅(qū)動力,是計算機(jī)為完成某一任務(wù)所必須執(zhí)行的一系列指令。,4.1.2 程序設(shè)計步驟,(1)建立模型:從實際問題抽象出數(shù)學(xué)模型,即由物理模型到抽象模型
3、,用形式化方法描述現(xiàn)實世界。(2)算法設(shè)計:給出解決問題的方法和步驟,即算法。同一個問題可以有不同的解決辦法,從中選取一種最合適的。(3)算法表達(dá):選擇一種或幾種表達(dá)算法的工具,對算法進(jìn)行清晰的表達(dá)。(4)編寫程序:選擇程序設(shè)計語言,把算法程序化。(5)程序測試和調(diào)試:對編寫好的程序進(jìn)行測試,修改程序中的錯誤。(6)程序文檔編寫與程序維護(hù):整理和編寫程序文檔,以便更好地維護(hù)程序。,www.themegallery.com,LO
4、GO,4.1.3 程序設(shè)計語言,計算機(jī)語言的發(fā)展經(jīng)歷了機(jī)器語言、匯編語言和高級語言三個階段。機(jī)器語言是計算機(jī)能直接執(zhí)行的二進(jìn)制形式的語言。匯編語言的實質(zhì)和機(jī)器語言是相同的,都是直接對硬件操作,只不過指令采用了英文縮寫的標(biāo)識符,更容易識別和記憶。高級語言更接近自然語言和數(shù)學(xué)語言,和匯編語言相比,它不但將許多相關(guān)的機(jī)器指令合成為單條指令,并且去掉了與具體操作有關(guān)但與完成工作無關(guān)的細(xì)節(jié),如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令,使
5、程序員可以離開機(jī)器層次,在更抽象的層次上表達(dá)意圖,以接近問題本質(zhì)的方式去思考和描述問題。高級語言所編制的程序不能直接被計算機(jī)識別,必須經(jīng)過轉(zhuǎn)換才能被執(zhí)行。,4.2 模型與算法,4.2 模型與算法模型是對現(xiàn)實系統(tǒng)的一種描述,是對現(xiàn)實系統(tǒng)的抽象和簡化。模型由現(xiàn)實系統(tǒng)的有關(guān)元素組成,能夠反映這些元素之間的關(guān)系,從而反映現(xiàn)實系統(tǒng)的本質(zhì)。模型分為物理模型和數(shù)學(xué)模型兩大類。物理模型由物理元素構(gòu)成,又稱為形象模型。數(shù)學(xué)模型由關(guān)系、函數(shù)等數(shù)學(xué)
6、對象符號組成,又稱為邏輯模型或抽象模型。,4.2.1 建立模型,物理模型的建立:對客觀存在的事物進(jìn)行形象的描述,列出已知的所有物理元素及其關(guān)系,明確需要解決的問題。 數(shù)學(xué)模型的建立:在物理模型的基礎(chǔ)上,忽略不重要的細(xì)節(jié)(如在一個籠子里這個事實與要解決的問題無關(guān)),抓住本質(zhì)性的元素,對其符號化后,再用數(shù)學(xué)的方法描述出來。,4.2.2 算法設(shè)計,算法是解決問題的方法和步驟 評價算法基本的標(biāo)準(zhǔn)有兩個:一是時間標(biāo)準(zhǔn)(時間復(fù)雜度),二
7、是空間標(biāo)準(zhǔn)(空間復(fù)雜度)。,4.2.2 算法設(shè)計,設(shè)計算法時,還要注意以下幾點:(1)通用性。一個算法總是針對某類問題設(shè)計的,所以對于求解某類問題中的任何一個問題應(yīng)該是有效的。例如,上面給出的解二元一次方程組的算法就有一定的通用性。(2)確定性。算法中的每個步驟都是確定的,在什么情況下做什么也非常明確,沒有含糊不清的地方。(3)有限性。一個算法在執(zhí)行時,必須經(jīng)過有限步后停下來,結(jié)束算法執(zhí)行,給出結(jié)果,4.2.3 算法表達(dá),為了
8、提高算法表達(dá)的清晰程度,需要選擇一種合適的描述算法的工具。常用的描述工具有流程圖、N-S圖、PAD圖和偽碼等。這些工具不是程序設(shè)計語言,不能直接被計算機(jī)執(zhí)行,使用它們的目的就是把算法表述出來。,算法表達(dá),求解二元一次方程組算法,4.3 程序設(shè)計實現(xiàn),建立模型、算法設(shè)計和算法表達(dá)三個步驟完成后,下一步是編寫計算機(jī)程序,也就是要選擇一種程序設(shè)計語言,將用偽碼或流程圖等表達(dá)的算法翻譯成用程序設(shè)計語言表達(dá)的程序。,www.themegall
9、ery.com,LOGO,4.3.2 編寫程序,編寫程序的基本要求:首先是保證語法的正確性。只有語法正確的程序才能通過編譯系統(tǒng)的語法檢查。其次是保證語義的正確性,也就是通過運行程序,得到需要的正確結(jié)果。 高質(zhì)量的程序還應(yīng)體現(xiàn)在以下四個方面:可靠性高、運行速度快、占用存儲空間小和易懂性。,三種基本的控制結(jié)構(gòu),(1)順序控制結(jié)構(gòu)。順序控制結(jié)構(gòu)含有多個連續(xù)的步驟,如圖4-2所示。在此控制結(jié)構(gòu)中的A和B是順序執(zhí)行的。順序控制結(jié)構(gòu)是最簡單
10、的一種基本結(jié)構(gòu)。,三種基本的控制結(jié)構(gòu),(2)選擇控制結(jié)構(gòu)。選擇控制結(jié)構(gòu)也稱為分支結(jié)構(gòu),計算機(jī)根據(jù)所列條件選擇執(zhí)行路徑,如圖4-3所示。在此控制結(jié)構(gòu)中有一個判斷框,它只能有兩個分支,根據(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 程序的測試、調(diào)試與維護(hù),經(jīng)過建立數(shù)學(xué)模
11、型、算法設(shè)計、算法表達(dá)和編寫程序四個步驟,就得到了用程序設(shè)計語言編寫的源程序代碼,該程序編碼是否能夠滿足實際問題的需要,還應(yīng)經(jīng)過嚴(yán)格的測試、調(diào)試,這是保證程序正確性的重要步驟,4.4.1 程序測試,1. 黑盒測試法與白盒測試法對程序進(jìn)行測試常用兩種方法進(jìn)行,一種是把程序看成一個“黑盒子”,測試人員完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只考慮程序的功能,通過選擇一些測試數(shù)據(jù),看程序的功能是否都已實現(xiàn),這就是黑盒測試法。另一種是把程序看成
12、一個打開的盒子,測試人員只關(guān)注程序內(nèi)部的處理過程,通過選擇一些測試數(shù)據(jù),檢查程序中的每個語句或分支是否都能正確執(zhí)行,這就是白盒測試法。,,2. 測試的步驟測試工作先對每個模塊進(jìn)行測試,一般采用白盒測試法保證每個程序模塊內(nèi)部的正確性,然后再把測試后的模塊組裝在一起進(jìn)行整體測試,主要測試各模塊是否能正常配合工作,方法多采用黑盒測試法。對模塊的接口進(jìn)行測試,適當(dāng)輔以白盒測試法,以便對主要執(zhí)行路徑進(jìn)行測試。,4.4.2 程序調(diào)試,(1)對測
13、試發(fā)現(xiàn)的錯誤現(xiàn)象進(jìn)行分析,確定程序中的出錯位置;(2)研究有關(guān)部分的程序,找出錯誤的內(nèi)在原因(有的錯誤不一定是編碼錯誤,可能是設(shè)計錯誤);(3)修改設(shè)計或代碼,以排除這個錯誤;(4)重復(fù)進(jìn)行暴露了這個錯誤的原始測試和其他有關(guān)測試。,4.5 程序設(shè)計語言應(yīng)用,程序設(shè)計語言有幾十年的發(fā)展、應(yīng)用的歷史,了解其發(fā)展和分類有助于在軟件開發(fā)中選擇合適的程序設(shè)計語言。隨著程序設(shè)計語言的發(fā)展,出現(xiàn)了很多軟件開發(fā)工具,其充分展示了程序設(shè)計語言的
14、特性,對提高軟件開發(fā)效率有很大作用。,4.5.1 程序設(shè)計高級語言的分類與選擇,(1)過程性語言:過程性編程語言適合于順序執(zhí)行的算法。用過程性語言編寫的程序有一個起點和一個終點,程序的執(zhí)行是流水線式的,在一個模塊被執(zhí)行完成前,不能處理其他任務(wù),也無法動態(tài)地改變程序的執(zhí)行過程。 典型代表有:BASIC語言 C語言,,(2)面向?qū)ο蟮恼Z言:面向?qū)ο蟮某绦蛟O(shè)計語言是建立在面向?qū)ο缶幊谭椒ǖ幕A(chǔ)上的。面向?qū)ο蟮某绦虮豢闯墒强梢赃M(jìn)行相互
15、通信的若干對象的集合。設(shè)計面向?qū)ο蟪绦蚓褪嵌x對象,建立對象間的通信關(guān)系。程序中的輸入即是對象間發(fā)消息(通信),而輸出則是程序中的對象向顯示器(或打印機(jī))發(fā)消息(通信)的結(jié)果,程序運行的結(jié)果就是將對象集的初始狀態(tài)變成終結(jié)狀態(tài)(目標(biāo)狀態(tài))。對象是程序中使用的實體。例如,在Windows環(huán)境下,我們習(xí)慣于用鼠標(biāo)點擊按鈕,這里的按鈕就是一個對象。程序員可以使用面向?qū)ο蟮恼Z言來定義按鈕對象,在程序運行時把它表示出來。C++,c#,Java,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機(jī)程序設(shè)計基礎(chǔ)vb語言程序設(shè)計
- 大學(xué)計算機(jī)c語言程序設(shè)計(程序設(shè)計)
- 大學(xué)計算機(jī)c語言程序設(shè)計(程序改錯)
- 大學(xué)計算機(jī)c語言程序設(shè)計(程序填空)
- 程序設(shè)計及算法語言計算機(jī)程序設(shè)計
- 計算機(jī)程序設(shè)計基礎(chǔ)c語言程序設(shè)計課程教學(xué)大綱
- 計算機(jī)程序設(shè)計基礎(chǔ)c語言程序設(shè)計課程教學(xué)大綱
- 計算機(jī)程序設(shè)計基礎(chǔ)c語言程序設(shè)計課程教學(xué)大綱
- 探討計算機(jī)程序設(shè)計語言教學(xué)
- 計算機(jī)程序設(shè)計基礎(chǔ)
- 計算機(jī)高級語言程序設(shè)計課程改革研究.pdf
- 計算概論計算機(jī)文化、程序設(shè)計
- 計算概論計算機(jī)文化、程序設(shè)計
- 計算機(jī)畢業(yè)論文---計算機(jī)等級考試輔導(dǎo)網(wǎng)站--《c語言程序設(shè)計》
- 計算機(jī)程序設(shè)計強化復(fù)習(xí)
- 《計算機(jī)基礎(chǔ)與程序設(shè)計》a卷答案
- 計算機(jī)基礎(chǔ)與程序設(shè)計實踐報告
- 非計算機(jī)專業(yè)程序設(shè)計語言的教學(xué)探討
- 計算機(jī)程序設(shè)計基礎(chǔ)(c語言)分類考試題
- 非計算機(jī)專業(yè)程序設(shè)計語言的教學(xué)探討
評論
0/150
提交評論