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