![新版第4章計(jì)算機(jī)程序設(shè)計(jì)與語言_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/b40f8cff-da7b-4b15-b7c0-8654167d23c6/b40f8cff-da7b-4b15-b7c0-8654167d23c61.gif)
![新版第4章計(jì)算機(jī)程序設(shè)計(jì)與語言_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/b40f8cff-da7b-4b15-b7c0-8654167d23c6/b40f8cff-da7b-4b15-b7c0-8654167d23c62.gif)
![新版第4章計(jì)算機(jī)程序設(shè)計(jì)與語言_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/b40f8cff-da7b-4b15-b7c0-8654167d23c6/b40f8cff-da7b-4b15-b7c0-8654167d23c63.gif)
![新版第4章計(jì)算機(jī)程序設(shè)計(jì)與語言_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/b40f8cff-da7b-4b15-b7c0-8654167d23c6/b40f8cff-da7b-4b15-b7c0-8654167d23c64.gif)
![新版第4章計(jì)算機(jī)程序設(shè)計(jì)與語言_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/b40f8cff-da7b-4b15-b7c0-8654167d23c6/b40f8cff-da7b-4b15-b7c0-8654167d23c65.gif)
版權(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ì)與語言計(jì)算機(jī)程序設(shè)計(jì)與語言程序設(shè)計(jì)的基本概念程序設(shè)計(jì)的基本概念模型的建立、算法的設(shè)計(jì)和表達(dá)模型的建立、算法的設(shè)計(jì)和表達(dá)程序的編寫、測(cè)試和維護(hù)程序的編寫、測(cè)試和維護(hù)程序文檔的建立程序文檔的建立程序設(shè)計(jì)語言的應(yīng)用程序設(shè)計(jì)語言的應(yīng)用4.1 概述概述4.1.1 計(jì)算機(jī)程序計(jì)算機(jī)程序4.1.2 程序設(shè)計(jì)程序設(shè)計(jì)語言語言4.1.3 程序設(shè)計(jì)程序設(shè)計(jì)步驟步驟4.1.1 計(jì)算機(jī)程序計(jì)算機(jī)程序程序是計(jì)算機(jī)執(zhí)行任何操作的驅(qū)動(dòng)力,是計(jì)算機(jī)程序是計(jì)算機(jī)執(zhí)行任何操作的驅(qū)動(dòng)力,是計(jì)算機(jī)為完成某一任務(wù)所必須執(zhí)行的一系列指令。沒有程為完成某一任務(wù)所必須執(zhí)行的一系列指令。沒有程序,計(jì)算機(jī)就像原地待命的
2、士兵,什么也不會(huì)做。序,計(jì)算機(jī)就像原地待命的士兵,什么也不會(huì)做。從存儲(chǔ)的角度來看,程序就是保存在磁盤上的指從存儲(chǔ)的角度來看,程序就是保存在磁盤上的指令序列。令序列。除了少量特殊程序外,程序在沒有啟動(dòng)時(shí)大多以除了少量特殊程序外,程序在沒有啟動(dòng)時(shí)大多以文件的形式存儲(chǔ)在磁盤等外存儲(chǔ)器上。文件的形式存儲(chǔ)在磁盤等外存儲(chǔ)器上。4.1.2 程序設(shè)計(jì)程序設(shè)計(jì)語言語言計(jì)算機(jī)語言是人與計(jì)算機(jī)之間傳遞信息的媒介。計(jì)算機(jī)語言是人與計(jì)算機(jī)之間傳遞信息的媒介。為了使計(jì)算機(jī)進(jìn)行各種工作,必須將人們的意圖為了使計(jì)算機(jī)進(jìn)行各種工作,必須將人們的意圖用計(jì)算機(jī)語言告訴計(jì)算機(jī)。電腦做的每個(gè)動(dòng)作、用計(jì)算機(jī)語言告訴計(jì)算機(jī)。電腦做的每個(gè)動(dòng)
3、作、執(zhí)行的每個(gè)步驟,都是按照用計(jì)算機(jī)語言編好的執(zhí)行的每個(gè)步驟,都是按照用計(jì)算機(jī)語言編好的程序來執(zhí)行的,所以,要控制計(jì)算機(jī)就必須通過程序來執(zhí)行的,所以,要控制計(jì)算機(jī)就必須通過計(jì)算機(jī)語言向計(jì)算機(jī)發(fā)出命令。計(jì)算機(jī)語言向計(jì)算機(jī)發(fā)出命令。自從有了計(jì)算機(jī),計(jì)算機(jī)程序設(shè)計(jì)語言就出現(xiàn)了,自從有了計(jì)算機(jī),計(jì)算機(jī)程序設(shè)計(jì)語言就出現(xiàn)了,人們針對(duì)不同的應(yīng)用領(lǐng)域開發(fā)出了上千種編程語人們針對(duì)不同的應(yīng)用領(lǐng)域開發(fā)出了上千種編程語言。言。4.1.2 程序設(shè)計(jì)程序設(shè)計(jì)語言語言 計(jì)算機(jī)語言的發(fā)展經(jīng)歷了機(jī)器語言、匯編語言和高級(jí)語計(jì)算機(jī)語言的發(fā)展經(jīng)歷了機(jī)器語言、匯編語言和高級(jí)語言三個(gè)階段。言三個(gè)階段。機(jī)器語言是計(jì)算機(jī)能直接執(zhí)行的二進(jìn)制
4、形式的語言。機(jī)器語言是計(jì)算機(jī)能直接執(zhí)行的二進(jìn)制形式的語言。匯編語言的實(shí)質(zhì)和機(jī)器語言是相同的,都是直接對(duì)硬件操匯編語言的實(shí)質(zhì)和機(jī)器語言是相同的,都是直接對(duì)硬件操作,只不過指令采用了英文縮寫的標(biāo)識(shí)符,更容易識(shí)別和記作,只不過指令采用了英文縮寫的標(biāo)識(shí)符,更容易識(shí)別和記憶。憶。高級(jí)語言更接近自然語言和數(shù)學(xué)語言,和匯編語言相比,高級(jí)語言更接近自然語言和數(shù)學(xué)語言,和匯編語言相比,它不但將許多相關(guān)的機(jī)器指令合成為單條指令,并且去掉了它不但將許多相關(guān)的機(jī)器指令合成為單條指令,并且去掉了與具體操作有關(guān)但與完成工作無關(guān)的細(xì)節(jié),如使用堆棧、寄與具體操作有關(guān)但與完成工作無關(guān)的細(xì)節(jié),如使用堆棧、寄存器等,這樣就大大簡(jiǎn)化
5、了程序中的指令,使程序員可以離存器等,這樣就大大簡(jiǎn)化了程序中的指令,使程序員可以離開機(jī)器層次,在更抽象的層次上表達(dá)意圖,以接近問題本質(zhì)開機(jī)器層次,在更抽象的層次上表達(dá)意圖,以接近問題本質(zhì)的方式去思考和描述問題。的方式去思考和描述問題。4.1.2 程序設(shè)計(jì)程序設(shè)計(jì)語言語言高級(jí)語言所編制的程序不能直接被計(jì)算機(jī)識(shí)別,必須經(jīng)高級(jí)語言所編制的程序不能直接被計(jì)算機(jī)識(shí)別,必須經(jīng)過轉(zhuǎn)換才能被執(zhí)行。過轉(zhuǎn)換才能被執(zhí)行。高級(jí)語言并不是特指某種具體的語言,而是包括了很多高級(jí)語言并不是特指某種具體的語言,而是包括了很多種編程語言,如目前流行的種編程語言,如目前流行的VB、C+、Java、Perl 等,等,這些語言的語法
6、、命令格式都各不相同。這些語言的語法、命令格式都各不相同。高級(jí)語言的發(fā)展也經(jīng)歷了從早期語言到結(jié)構(gòu)化程序設(shè)計(jì)高級(jí)語言的發(fā)展也經(jīng)歷了從早期語言到結(jié)構(gòu)化程序設(shè)計(jì)語言,從面向過程到面向?qū)ο蟪绦蛟O(shè)計(jì)語言的過程。相應(yīng)語言,從面向過程到面向?qū)ο蟪绦蛟O(shè)計(jì)語言的過程。相應(yīng)地,軟件的開發(fā)也由最初的個(gè)體手工作坊式的生產(chǎn),發(fā)展地,軟件的開發(fā)也由最初的個(gè)體手工作坊式的生產(chǎn),發(fā)展為產(chǎn)業(yè)化、流水線式的工業(yè)化生產(chǎn)。為產(chǎn)業(yè)化、流水線式的工業(yè)化生產(chǎn)。高級(jí)語言的下一個(gè)發(fā)展目標(biāo)是面向應(yīng)用,只需要告訴程高級(jí)語言的下一個(gè)發(fā)展目標(biāo)是面向應(yīng)用,只需要告訴程序你要干什么,程序就能自動(dòng)生成算法,自動(dòng)進(jìn)行處理,序你要干什么,程序就能自動(dòng)生成算法,
7、自動(dòng)進(jìn)行處理,也就是智能化的程序設(shè)計(jì)語言。也就是智能化的程序設(shè)計(jì)語言。4.1.3 程序設(shè)計(jì)程序設(shè)計(jì)步驟步驟(1)建立模型:從實(shí)際問題抽象出數(shù)學(xué)模型,即由物理模)建立模型:從實(shí)際問題抽象出數(shù)學(xué)模型,即由物理模型到抽象模型,用形式化方法描述現(xiàn)實(shí)世界。型到抽象模型,用形式化方法描述現(xiàn)實(shí)世界。(2)算法設(shè)計(jì):給出解決問題的方法和步驟,即算法。同)算法設(shè)計(jì):給出解決問題的方法和步驟,即算法。同一個(gè)問題可以有不同的解決辦法,從中選取一種最合適的。一個(gè)問題可以有不同的解決辦法,從中選取一種最合適的。(3)算法表達(dá):選擇一種或幾種表達(dá)算法的工具,對(duì)算法)算法表達(dá):選擇一種或幾種表達(dá)算法的工具,對(duì)算法進(jìn)行清晰的
8、表達(dá)。進(jìn)行清晰的表達(dá)。(4)編寫程序:選擇程序設(shè)計(jì)語言,把算法程序化。)編寫程序:選擇程序設(shè)計(jì)語言,把算法程序化。(5)程序測(cè)試和調(diào)試:對(duì)編寫好的程序進(jìn)行測(cè)試,修改程)程序測(cè)試和調(diào)試:對(duì)編寫好的程序進(jìn)行測(cè)試,修改程序中的錯(cuò)誤。序中的錯(cuò)誤。(6)程序文檔編寫與程序維護(hù):整理和編寫程序文檔,以)程序文檔編寫與程序維護(hù):整理和編寫程序文檔,以便更好地維護(hù)程序。便更好地維護(hù)程序。雞兔同籠問題雞兔同籠問題 雞兔同籠,看頭雞兔同籠,看頭36個(gè),看腳個(gè),看腳96只,問籠中有只,問籠中有雞和兔各幾只?雞和兔各幾只? 4.2.1 建立模型建立模型4.2.2 算法設(shè)計(jì)算法設(shè)計(jì)4.2.3 算法表達(dá)算法表達(dá)4.2.1
9、 建立模型建立模型模型是對(duì)現(xiàn)實(shí)系統(tǒng)的一種描述,是對(duì)現(xiàn)實(shí)系統(tǒng)的模型是對(duì)現(xiàn)實(shí)系統(tǒng)的一種描述,是對(duì)現(xiàn)實(shí)系統(tǒng)的抽象和簡(jiǎn)化。抽象和簡(jiǎn)化。模型由現(xiàn)實(shí)系統(tǒng)的有關(guān)元素組成,能夠反映這些模型由現(xiàn)實(shí)系統(tǒng)的有關(guān)元素組成,能夠反映這些元素之間的關(guān)系,從而反映現(xiàn)實(shí)系統(tǒng)的本質(zhì)。元素之間的關(guān)系,從而反映現(xiàn)實(shí)系統(tǒng)的本質(zhì)。模型分為物理模型和數(shù)學(xué)模型兩大類。模型分為物理模型和數(shù)學(xué)模型兩大類。u物理模型由物理元素構(gòu)成,又稱為形象模型。物理模型由物理元素構(gòu)成,又稱為形象模型。u數(shù)學(xué)模型由關(guān)系、函數(shù)等數(shù)學(xué)對(duì)象符號(hào)組成,又稱數(shù)學(xué)模型由關(guān)系、函數(shù)等數(shù)學(xué)對(duì)象符號(hào)組成,又稱為邏輯模型或抽象模型。為邏輯模型或抽象模型。4.2.1 建立模型建立模
10、型物理模型的建立:對(duì)客觀存在的事物進(jìn)行形象的物理模型的建立:對(duì)客觀存在的事物進(jìn)行形象的描述,列出已知的所有物理元素及其關(guān)系,明確需描述,列出已知的所有物理元素及其關(guān)系,明確需要解決的問題。物理模型中應(yīng)該忽略對(duì)解決問題沒要解決的問題。物理模型中應(yīng)該忽略對(duì)解決問題沒有意義的客觀事實(shí),如雞、兔的大小,籠子的大小有意義的客觀事實(shí),如雞、兔的大小,籠子的大小等。等。數(shù)學(xué)模型的建立:在物理模型的基礎(chǔ)上,忽略不數(shù)學(xué)模型的建立:在物理模型的基礎(chǔ)上,忽略不重要的細(xì)節(jié)(如在一個(gè)籠子里這個(gè)事實(shí)與要解決的重要的細(xì)節(jié)(如在一個(gè)籠子里這個(gè)事實(shí)與要解決的問題無關(guān)),抓住本質(zhì)性的元素,對(duì)其符號(hào)化后,問題無關(guān)),抓住本質(zhì)性的元
11、素,對(duì)其符號(hào)化后,再用數(shù)學(xué)的方法描述出來。再用數(shù)學(xué)的方法描述出來。4.2.1 建立模型建立模型模型是對(duì)現(xiàn)實(shí)系統(tǒng)的一種描述,是對(duì)現(xiàn)實(shí)系統(tǒng)的模型是對(duì)現(xiàn)實(shí)系統(tǒng)的一種描述,是對(duì)現(xiàn)實(shí)系統(tǒng)的抽象和簡(jiǎn)化。抽象和簡(jiǎn)化。模型由現(xiàn)實(shí)系統(tǒng)的有關(guān)元素組成,能夠反映這些模型由現(xiàn)實(shí)系統(tǒng)的有關(guān)元素組成,能夠反映這些元素之間的關(guān)系,從而反映現(xiàn)實(shí)系統(tǒng)的本質(zhì)。元素之間的關(guān)系,從而反映現(xiàn)實(shí)系統(tǒng)的本質(zhì)。模型分為物理模型和數(shù)學(xué)模型兩大類。模型分為物理模型和數(shù)學(xué)模型兩大類。u物理模型由物理元素構(gòu)成,又稱為形象模型。物理模型由物理元素構(gòu)成,又稱為形象模型。u數(shù)學(xué)模型由關(guān)系、函數(shù)等數(shù)學(xué)對(duì)象符號(hào)組成,又稱數(shù)學(xué)模型由關(guān)系、函數(shù)等數(shù)學(xué)對(duì)象符號(hào)組成
12、,又稱為邏輯模型或抽象模型。為邏輯模型或抽象模型。雞兔同籠問題的物理模型雞兔同籠問題的物理模型 雞、兔放在同一籠子里,頭有雞、兔放在同一籠子里,頭有36個(gè),腳有個(gè),腳有96只,要計(jì)算出有雞和兔子各多少只。當(dāng)然,要解只,要計(jì)算出有雞和兔子各多少只。當(dāng)然,要解決這個(gè)問題還要用到大家已熟知的事實(shí):每只雞決這個(gè)問題還要用到大家已熟知的事實(shí):每只雞是是1個(gè)頭個(gè)頭2只腳,每只兔子是只腳,每只兔子是1個(gè)頭個(gè)頭4只腳。只腳。 雞兔同籠問題的數(shù)學(xué)模型雞兔同籠問題的數(shù)學(xué)模型對(duì)以上例子,設(shè)雞為對(duì)以上例子,設(shè)雞為x只,兔子為只,兔子為y只,則有:只,則有:4.2.2 算法設(shè)計(jì)算法設(shè)計(jì) 算法是解決問題的方法和步驟。若待
13、解決的算法是解決問題的方法和步驟。若待解決的問題比較復(fù)雜,可能需要將問題進(jìn)行分解,即將問題比較復(fù)雜,可能需要將問題進(jìn)行分解,即將復(fù)雜問題分解為簡(jiǎn)單問題的集合。簡(jiǎn)單問題對(duì)應(yīng)復(fù)雜問題分解為簡(jiǎn)單問題的集合。簡(jiǎn)單問題對(duì)應(yīng)的算法較簡(jiǎn)單,設(shè)計(jì)起來也就比較容易。這里講的算法較簡(jiǎn)單,設(shè)計(jì)起來也就比較容易。這里講的算法設(shè)計(jì),涉及程序功能的設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)的的算法設(shè)計(jì),涉及程序功能的設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)等。設(shè)計(jì)等。雞兔同籠問題的雞兔同籠問題的算法設(shè)計(jì)算法設(shè)計(jì)雞兔同籠問題實(shí)際上是求二元一次方程組的解的雞兔同籠問題實(shí)際上是求二元一次方程組的解的問題,可以用加減消元法解決。問題,可以用加減消元法解決??紤]到算法的通用性,
14、我們可以對(duì)一般二元一次考慮到算法的通用性,我們可以對(duì)一般二元一次方程組求解。方程組求解。雞兔同籠問題的雞兔同籠問題的算法設(shè)計(jì)算法設(shè)計(jì)若若a1b2-a2b1 0,方程組有唯一解。用加,方程組有唯一解。用加減消元法求得減消元法求得雞兔同籠問題的雞兔同籠問題的算法設(shè)計(jì)算法設(shè)計(jì)(1)輸入系數(shù))輸入系數(shù)a1,b1,c1,a2,b2,c2;(2)計(jì)算)計(jì)算d = a1b2 - a2b1;(3)如果)如果d = 0,打印,打印“方程組無解或有無窮組解方程組無解或有無窮組解”,轉(zhuǎn),轉(zhuǎn) (7) ;(4)計(jì)算)計(jì)算x = (c1b2 - c2b1) /d;(5)計(jì)算)計(jì)算y = (a1c2 - a2c1) /d;
15、(6)輸出)輸出x,y;(7)輸入是否繼續(xù)解其他方程組的標(biāo)記)輸入是否繼續(xù)解其他方程組的標(biāo)記s (s = “Y”或或s =“N” ) ;(8)如果)如果s = “Y”,轉(zhuǎn),轉(zhuǎn) (1) ;(9)結(jié)束。)結(jié)束。算法的評(píng)價(jià)算法的評(píng)價(jià)對(duì)于同一個(gè)問題,可能有若干種不同的算法來解決。對(duì)于同一個(gè)問題,可能有若干種不同的算法來解決。對(duì)于算法評(píng)價(jià)的基本的標(biāo)準(zhǔn)有兩個(gè):對(duì)于算法評(píng)價(jià)的基本的標(biāo)準(zhǔn)有兩個(gè):u時(shí)間標(biāo)準(zhǔn)(時(shí)間復(fù)雜度),簡(jiǎn)單說來,即執(zhí)行這個(gè)算法需要時(shí)間標(biāo)準(zhǔn)(時(shí)間復(fù)雜度),簡(jiǎn)單說來,即執(zhí)行這個(gè)算法需要多少時(shí)間,基本的原則是時(shí)間越短越好。對(duì)于同樣的問題,多少時(shí)間,基本的原則是時(shí)間越短越好。對(duì)于同樣的問題,如果用算
16、法如果用算法A和和B分別進(jìn)行處理,結(jié)果算法分別進(jìn)行處理,結(jié)果算法A所用的時(shí)間更所用的時(shí)間更短,那么就認(rèn)為算法短,那么就認(rèn)為算法A更好一些。更好一些。u空間標(biāo)準(zhǔn)(空間復(fù)雜度),即執(zhí)行這個(gè)算法需要占用多少資空間標(biāo)準(zhǔn)(空間復(fù)雜度),即執(zhí)行這個(gè)算法需要占用多少資源(可以理解為占用了多少計(jì)算機(jī)存儲(chǔ)單元),基本的原則源(可以理解為占用了多少計(jì)算機(jī)存儲(chǔ)單元),基本的原則是占用的資源越少越好。對(duì)于同樣的問題,如果用算法是占用的資源越少越好。對(duì)于同樣的問題,如果用算法A和和B分別進(jìn)行處理,結(jié)果算法分別進(jìn)行處理,結(jié)果算法A占用的資源更少,那么就認(rèn)為占用的資源更少,那么就認(rèn)為算法算法A更好一些。更好一些。算法的評(píng)價(jià)
17、算法的評(píng)價(jià) 隨著計(jì)算機(jī)技術(shù)的發(fā)展,硬件性能不斷提高,隨著計(jì)算機(jī)技術(shù)的發(fā)展,硬件性能不斷提高,程序的規(guī)模越來越龐大,算法的清晰程度變成了程序的規(guī)模越來越龐大,算法的清晰程度變成了一個(gè)非常重要的問題。對(duì)于一個(gè)比較復(fù)雜的問題一個(gè)非常重要的問題。對(duì)于一個(gè)比較復(fù)雜的問題來說,如果所給出的算法讓人無法讀懂,那么它來說,如果所給出的算法讓人無法讀懂,那么它也不能算是一個(gè)好的算法,因?yàn)榘凑者@樣的算法也不能算是一個(gè)好的算法,因?yàn)榘凑者@樣的算法所編制出來的程序非常難以維護(hù)。因此,算法的所編制出來的程序非常難以維護(hù)。因此,算法的易懂性也是衡量算法好壞的一個(gè)重要指標(biāo)。易懂性也是衡量算法好壞的一個(gè)重要指標(biāo)。算法的評(píng)價(jià)算
18、法的評(píng)價(jià)設(shè)計(jì)算法時(shí),還要注意以下幾點(diǎn):設(shè)計(jì)算法時(shí),還要注意以下幾點(diǎn):u通用性。一個(gè)算法總是針對(duì)某類問題設(shè)計(jì)的,所以對(duì)于求解通用性。一個(gè)算法總是針對(duì)某類問題設(shè)計(jì)的,所以對(duì)于求解某類問題中的任何一個(gè)問題應(yīng)該是有效的。例如,上面給出某類問題中的任何一個(gè)問題應(yīng)該是有效的。例如,上面給出的解二元一次方程組的算法就有一定的通用性。的解二元一次方程組的算法就有一定的通用性。u確定性。算法中的每個(gè)步驟都是確定的,在什么情況下做什確定性。算法中的每個(gè)步驟都是確定的,在什么情況下做什么也非常明確,沒有含糊不清的地方。么也非常明確,沒有含糊不清的地方。u有限性。一個(gè)算法在執(zhí)行時(shí),必須經(jīng)過有限步后停下來,結(jié)有限性。一
19、個(gè)算法在執(zhí)行時(shí),必須經(jīng)過有限步后停下來,結(jié)束算法執(zhí)行,給出結(jié)果,而不能無限地執(zhí)行下去。盡管這里束算法執(zhí)行,給出結(jié)果,而不能無限地執(zhí)行下去。盡管這里所說的有限步可能是幾十步或者幾百步,也可能是幾萬步或所說的有限步可能是幾十步或者幾百步,也可能是幾萬步或者幾億步,但它仍然是有限步者幾億步,但它仍然是有限步 (嚴(yán)格說來,這里所說的(嚴(yán)格說來,這里所說的“有有限限”只是說明了它和只是說明了它和“無限無限”的區(qū)別。在實(shí)際工作中還有一的區(qū)別。在實(shí)際工作中還有一個(gè)更嚴(yán)格的限制,即實(shí)際工作所要求的時(shí)間的限制。算法和個(gè)更嚴(yán)格的限制,即實(shí)際工作所要求的時(shí)間的限制。算法和根據(jù)算法所編制的程序,必須在實(shí)際工作所規(guī)定的
20、時(shí)間內(nèi)給根據(jù)算法所編制的程序,必須在實(shí)際工作所規(guī)定的時(shí)間內(nèi)給出相應(yīng)的運(yùn)算結(jié)果)。出相應(yīng)的運(yùn)算結(jié)果)。4.2.3 算法表達(dá)算法表達(dá)為了提高算法表達(dá)的清晰程度,需要選擇一種合為了提高算法表達(dá)的清晰程度,需要選擇一種合適的描述算法的工具。常用的描述工具有流程圖、適的描述算法的工具。常用的描述工具有流程圖、N-S圖、圖、PAD圖和偽碼等。圖和偽碼等。這些工具不是程序設(shè)計(jì)語言,不能直接被計(jì)算機(jī)這些工具不是程序設(shè)計(jì)語言,不能直接被計(jì)算機(jī)執(zhí)行,使用它們的目的就是把算法表述出來。執(zhí)行,使用它們的目的就是把算法表述出來。流程圖流程圖 流程圖(也稱為程序流程圖)是最常用的一種算法表示方流程圖(也稱為程序流程圖)是
21、最常用的一種算法表示方法,它是描述計(jì)算機(jī)按一定步驟完成任務(wù)的圖表,能直觀法,它是描述計(jì)算機(jī)按一定步驟完成任務(wù)的圖表,能直觀地描述程序執(zhí)行的控制流程。流程圖中地描述程序執(zhí)行的控制流程。流程圖中u 方框表示方框表示“處理處理”,所有處理步驟都可以用這個(gè)符號(hào)表示;,所有處理步驟都可以用這個(gè)符號(hào)表示;u 菱形框表示菱形框表示“判斷判斷”,需要對(duì)邏輯條件進(jìn)行判斷并選擇下,需要對(duì)邏輯條件進(jìn)行判斷并選擇下一步執(zhí)行的路線時(shí)用這個(gè)符號(hào)表示;一步執(zhí)行的路線時(shí)用這個(gè)符號(hào)表示;u 圓角矩形框表示圓角矩形框表示“開始開始”和和“結(jié)束結(jié)束”;u 平行四邊形框表示平行四邊形框表示“輸入輸入”和和“輸出輸出”;u 有向線段表
22、示有向線段表示“控制流控制流”。雞雞兔兔同同籠籠問問題題的的流流程程圖圖偽碼偽碼偽碼表示法相當(dāng)于算法的注釋系統(tǒng),由編程語言和自然語偽碼表示法相當(dāng)于算法的注釋系統(tǒng),由編程語言和自然語言混合而成。言混合而成。偽碼的語法通常沿用某種高級(jí)編程語言的語法規(guī)則,如關(guān)偽碼的語法通常沿用某種高級(jí)編程語言的語法規(guī)則,如關(guān)鍵字、控制結(jié)構(gòu)等。另外,在描述程序的處理功能時(shí)使用鍵字、控制結(jié)構(gòu)等。另外,在描述程序的處理功能時(shí)使用自然語言的語句。自然語言的語句。所以偽碼表示法是一種類高級(jí)編程語言,但它含有大量的所以偽碼表示法是一種類高級(jí)編程語言,但它含有大量的自然語言的語句,計(jì)算機(jī)并不能執(zhí)行。用自然語言描述處自然語言的語句
23、,計(jì)算機(jī)并不能執(zhí)行。用自然語言描述處理功能,易讀易寫,不必考慮語法規(guī)定,有利于設(shè)計(jì)人員理功能,易讀易寫,不必考慮語法規(guī)定,有利于設(shè)計(jì)人員把精力放在描述算法的邏輯上。把精力放在描述算法的邏輯上。 雞雞兔兔同同籠籠問問題題的的偽偽碼碼表表示示PROCEDURE求解二元一次方程組求解二元一次方程組 TYPE a1,b1,c1,a2,b2,c2,x,y IS REAL TYPE s IS CHAR DO WHILE TRUE /*輸入方程組系數(shù)輸入方程組系數(shù) READ a1,b1,c1,a2,b2,c2 d=a1*b2-a2*b1 IF d = 0 THEN WRITE 方程組無解或有無窮組解方程組無
24、解或有無窮組解 ELSE /*求方程組的唯一解并輸出求方程組的唯一解并輸出 BEGIN x=(c1*b2-c2*b1)/d y=(a1*c2-a2*c1)/d WRITE x, y END ENDIF /*控制循環(huán)是否結(jié)束控制循環(huán)是否結(jié)束 INPUT 若繼續(xù)循環(huán)輸入若繼續(xù)循環(huán)輸入Y,否則輸入,否則輸入N TO s READ S IF sY THEN EXIT ENDIF ENDDOEND 4.3 程序設(shè)計(jì)實(shí)現(xiàn)程序設(shè)計(jì)實(shí)現(xiàn)4.3.1 程序舉例程序舉例4.3.2 編寫程序編寫程序4.3.1 程序舉例程序舉例 雞兔同籠問題的雞兔同籠問題的VFP程序?qū)崿F(xiàn)程序?qū)崿F(xiàn)DO WHILE .T. CLEAR &
25、amp; 清屏清屏 ? 輸入方程組的系數(shù)輸入方程組的系數(shù) INPUT a1= TO a1 INPUT b1= TO b1 INPUT c1= TO c1 INPUT a2= TO a2 INPUT b2= TO b2 INPUT c2= TO c2 d=a1*b2-a2*b1 IF d=0 ? 方程組無解或有無窮組解方程組無解或有無窮組解 ELSE *求方程組的唯一解并輸出求方程組的唯一解并輸出 x=(c1*b2-c2*b1)/d y=(a1*c2-a2*c1)/d ? 雞為雞為,x,只只, 兔為兔為,y,只只 ENDIF *控制循環(huán)是否結(jié)束控制循環(huán)是否結(jié)束 INPUT 若繼續(xù)循環(huán)輸入若繼續(xù)循
26、環(huán)輸入Y,否則輸入,否則輸入N TO s IF upper(s)Y EXIT ENDIFENDDORETURN 4.3.2 編寫程序編寫程序 程序的編寫就是用程序設(shè)計(jì)語言實(shí)現(xiàn)算法的程序的編寫就是用程序設(shè)計(jì)語言實(shí)現(xiàn)算法的過程。程序編寫人員應(yīng)該根據(jù)算法的要求,選擇過程。程序編寫人員應(yīng)該根據(jù)算法的要求,選擇一種程序設(shè)計(jì)語言對(duì)算法進(jìn)行編碼。對(duì)程序設(shè)計(jì)一種程序設(shè)計(jì)語言對(duì)算法進(jìn)行編碼。對(duì)程序設(shè)計(jì)語言,必須要深刻地理解,熟練地掌握,語言,必須要深刻地理解,熟練地掌握, 正確地正確地運(yùn)用,這樣才能編出高質(zhì)量的程序代碼。運(yùn)用,這樣才能編出高質(zhì)量的程序代碼。4.3.2 編寫程序編寫程序 編寫程序的基本要求:首先是
27、保證語法的正編寫程序的基本要求:首先是保證語法的正確性。只有語法正確的程序才能通過編譯系統(tǒng)的確性。只有語法正確的程序才能通過編譯系統(tǒng)的語法檢查。其次是保證語義的正確性,也就是通語法檢查。其次是保證語義的正確性,也就是通過運(yùn)行程序,得到需要的正確結(jié)果。但這一點(diǎn)對(duì)過運(yùn)行程序,得到需要的正確結(jié)果。但這一點(diǎn)對(duì)一個(gè)復(fù)雜的程序來說并不容易,通常需要經(jīng)過程一個(gè)復(fù)雜的程序來說并不容易,通常需要經(jīng)過程序測(cè)試和修改才能達(dá)到序測(cè)試和修改才能達(dá)到。4.3.2 編寫程序編寫程序 只做到以上兩點(diǎn)還稱不上高質(zhì)量的程序代碼,只做到以上兩點(diǎn)還稱不上高質(zhì)量的程序代碼,高質(zhì)量的程序還應(yīng)體現(xiàn)在以下四個(gè)方面:可靠性高質(zhì)量的程序還應(yīng)體現(xiàn)
28、在以下四個(gè)方面:可靠性高、運(yùn)行速度快、占用存儲(chǔ)空間小和易懂性。高、運(yùn)行速度快、占用存儲(chǔ)空間小和易懂性。 通常這四個(gè)方面不能同時(shí)滿足,要根據(jù)具體通常這四個(gè)方面不能同時(shí)滿足,要根據(jù)具體情況權(quán)衡利弊。情況權(quán)衡利弊。4.3.2 編寫程序編寫程序 在計(jì)算機(jī)速度越來越快,內(nèi)存越來越大的今在計(jì)算機(jī)速度越來越快,內(nèi)存越來越大的今天,程序的易懂性顯得更為重要。這是因?yàn)橐粋€(gè)天,程序的易懂性顯得更為重要。這是因?yàn)橐粋€(gè)程序除了能在計(jì)算機(jī)上運(yùn)行外,還要求人能夠看程序除了能在計(jì)算機(jī)上運(yùn)行外,還要求人能夠看懂。只有看懂程序,才能對(duì)程序中出現(xiàn)的問題進(jìn)懂。只有看懂程序,才能對(duì)程序中出現(xiàn)的問題進(jìn)行修改,才能根據(jù)需要擴(kuò)充其功能和改
29、善其性能。行修改,才能根據(jù)需要擴(kuò)充其功能和改善其性能。4.3.2 編寫程序編寫程序 編寫容易讀懂的程序代碼,要求程序有良好的編寫容易讀懂的程序代碼,要求程序有良好的結(jié)構(gòu)性和程序設(shè)計(jì)風(fēng)格。結(jié)構(gòu)性和程序設(shè)計(jì)風(fēng)格。 所謂程序有良好的結(jié)構(gòu)性是指程序僅由三種基所謂程序有良好的結(jié)構(gòu)性是指程序僅由三種基本的控制結(jié)構(gòu)構(gòu)造出來。本的控制結(jié)構(gòu)構(gòu)造出來。u順序控制結(jié)構(gòu)順序控制結(jié)構(gòu)u選擇控制結(jié)構(gòu)選擇控制結(jié)構(gòu)u重復(fù)控制結(jié)構(gòu)重復(fù)控制結(jié)構(gòu) 所謂良好的程序設(shè)計(jì)風(fēng)格,是要求編寫的程序所謂良好的程序設(shè)計(jì)風(fēng)格,是要求編寫的程序清晰明了,容易被人理解。清晰明了,容易被人理解。順序控制結(jié)構(gòu)順序控制結(jié)構(gòu)順序控制結(jié)構(gòu)含順序控制結(jié)構(gòu)含有多個(gè)
30、連續(xù)的步驟,有多個(gè)連續(xù)的步驟,如右圖所示。如右圖所示。在此控制結(jié)構(gòu)中在此控制結(jié)構(gòu)中的的A和和B是順序執(zhí)是順序執(zhí)行的。順序控制結(jié)行的。順序控制結(jié)構(gòu)是最簡(jiǎn)單的一種構(gòu)是最簡(jiǎn)單的一種基本結(jié)構(gòu)。基本結(jié)構(gòu)。選擇控制結(jié)構(gòu)選擇控制結(jié)構(gòu) 選擇控制結(jié)構(gòu)也稱選擇控制結(jié)構(gòu)也稱為分支結(jié)構(gòu),計(jì)算機(jī)為分支結(jié)構(gòu),計(jì)算機(jī)根據(jù)所列條件選擇執(zhí)根據(jù)所列條件選擇執(zhí)行路徑,如右圖所示。行路徑,如右圖所示。在此控制結(jié)構(gòu)中有在此控制結(jié)構(gòu)中有一個(gè)判斷框,它只能一個(gè)判斷框,它只能有兩個(gè)分支,根據(jù)條有兩個(gè)分支,根據(jù)條件件P 是否滿足而分別是否滿足而分別執(zhí)行執(zhí)行A或或B。重復(fù)控制結(jié)構(gòu)重復(fù)控制結(jié)構(gòu)重復(fù)控制結(jié)構(gòu)又稱循環(huán)結(jié)構(gòu),可以重復(fù)執(zhí)行一條重復(fù)控制結(jié)構(gòu)
31、又稱循環(huán)結(jié)構(gòu),可以重復(fù)執(zhí)行一條或多條指令,直到滿足退出條件?;蚨鄺l指令,直到滿足退出條件。重復(fù)控制結(jié)構(gòu)主要有以下兩種:重復(fù)控制結(jié)構(gòu)主要有以下兩種:u當(dāng)型(當(dāng)型(WHILE DO型)循環(huán)結(jié)構(gòu)型)循環(huán)結(jié)構(gòu)u直到型(直到型(UNTIL型)循環(huán)結(jié)構(gòu)型)循環(huán)結(jié)構(gòu)當(dāng)型(當(dāng)型(WHILE DO型)循環(huán)結(jié)構(gòu)型)循環(huán)結(jié)構(gòu) 當(dāng)條件當(dāng)條件P滿滿足時(shí),反復(fù)執(zhí)行足時(shí),反復(fù)執(zhí)行A。一旦條件。一旦條件P不滿足就不再執(zhí)不滿足就不再執(zhí)行行A,而執(zhí)行它,而執(zhí)行它下面的操作。如下面的操作。如果在開始時(shí)條件果在開始時(shí)條件P就不滿足,則就不滿足,則A一次也不執(zhí)行。一次也不執(zhí)行。直到型(直到型(UNTIL型)循環(huán)結(jié)構(gòu)型)循環(huán)結(jié)構(gòu) 先執(zhí)行
32、先執(zhí)行A,然,然后判斷條件后判斷條件P是否是否滿足,如條件滿足,如條件P不不滿足,則反復(fù)執(zhí)行滿足,則反復(fù)執(zhí)行A,直到某一時(shí)刻,直到某一時(shí)刻,條件條件P滿足則停止?jié)M足則停止循環(huán),執(zhí)行下面的循環(huán),執(zhí)行下面的操作??梢钥吹?,操作??梢钥吹剑徽摋l件不論條件P是否滿是否滿足,至少執(zhí)行一次足,至少執(zhí)行一次A。這三種基本控制結(jié)構(gòu)的共同特點(diǎn)這三種基本控制結(jié)構(gòu)的共同特點(diǎn)(1)只有一個(gè)入口,如圖)只有一個(gè)入口,如圖4-2至圖至圖4-5中的中的a點(diǎn)。點(diǎn)。(2)只有一個(gè)出口,如圖)只有一個(gè)出口,如圖4-2至圖至圖4-5中的中的b點(diǎn)。點(diǎn)。(3)結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到。)結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到。(4
33、)結(jié)構(gòu)內(nèi)沒有死循環(huán)(無終止的循環(huán))。)結(jié)構(gòu)內(nèi)沒有死循環(huán)(無終止的循環(huán))。 盡管在表達(dá)形式上不完全一樣,但各種編程盡管在表達(dá)形式上不完全一樣,但各種編程語言都提供了對(duì)三種基本控制結(jié)構(gòu)的支持。語言都提供了對(duì)三種基本控制結(jié)構(gòu)的支持。不滿足基本要求的兩種情況不滿足基本要求的兩種情況B永遠(yuǎn)執(zhí)行不到永遠(yuǎn)執(zhí)行不到死循環(huán)死循環(huán)良好的程序設(shè)計(jì)風(fēng)格良好的程序設(shè)計(jì)風(fēng)格1)文檔化()文檔化(documentation)要有效、適當(dāng)?shù)厥褂米⑨?。注釋語句是每種程序設(shè)計(jì)語言都要提供要有效、適當(dāng)?shù)厥褂米⑨?。注釋語句是每種程序設(shè)計(jì)語言都要提供的語句。注釋語句對(duì)程序的執(zhí)行結(jié)果沒有影響,是用來幫助讀程序的語句。注釋語句對(duì)程序的執(zhí)行
34、結(jié)果沒有影響,是用來幫助讀程序的人理解程序的。一些規(guī)范的程序中,注釋行的數(shù)量占到整個(gè)源程的人理解程序的。一些規(guī)范的程序中,注釋行的數(shù)量占到整個(gè)源程序的序的1/3到到1/2,甚至更多。在程序的開頭可以添加對(duì)程序整體進(jìn),甚至更多。在程序的開頭可以添加對(duì)程序整體進(jìn)行說明的注釋;在程序模塊(如子程序、函數(shù)、過程等)行說明的注釋;在程序模塊(如子程序、函數(shù)、過程等) 前添加解前添加解釋該模塊作用的注釋;在較難理解的語句前添加解釋該語句的注釋。釋該模塊作用的注釋;在較難理解的語句前添加解釋該語句的注釋。要使用含義明確的符號(hào)名。符號(hào)名包括子程序名、函數(shù)名、變量名、要使用含義明確的符號(hào)名。符號(hào)名包括子程序名、
35、函數(shù)名、變量名、常量名等。這些名字應(yīng)能反映它所代表的實(shí)際東西,有實(shí)際意義,常量名等。這些名字應(yīng)能反映它所代表的實(shí)際東西,有實(shí)際意義,使其能見名知意。例如,表示總量用使其能見名知意。例如,表示總量用Total,表示平均值用,表示平均值用Average,表示和用,表示和用Sum,等等。,等等。良好的程序設(shè)計(jì)風(fēng)格良好的程序設(shè)計(jì)風(fēng)格2)格式化()格式化(layout)盡量使程序布局合理、清晰、明了。一個(gè)程序如果寫盡量使程序布局合理、清晰、明了。一個(gè)程序如果寫得太密,沒有留出空白,往往是很難讀懂的。恰當(dāng)?shù)乩锰?,沒有留出空白,往往是很難讀懂的。恰當(dāng)?shù)乩每崭?、空行和縮進(jìn)可使程序清晰明了。用空格、空行和
36、縮進(jìn)可使程序清晰明了。自然程序段之間用空行分開??s進(jìn)也稱為向右縮格或自然程序段之間用空行分開??s進(jìn)也稱為向右縮格或移行。程序中的各行不必左對(duì)齊,因?yàn)檫@樣做的話程序移行。程序中的各行不必左對(duì)齊,因?yàn)檫@樣做的話程序的層次關(guān)系就分不清了。對(duì)于選擇語句和循環(huán)語句,應(yīng)的層次關(guān)系就分不清了。對(duì)于選擇語句和循環(huán)語句,應(yīng)該把其中的程序段語句向右做階梯式移行。格式化可使該把其中的程序段語句向右做階梯式移行。格式化可使程序的邏輯結(jié)構(gòu)更加清晰,層次更加分明。程序的邏輯結(jié)構(gòu)更加清晰,層次更加分明。良好的程序設(shè)計(jì)風(fēng)格良好的程序設(shè)計(jì)風(fēng)格3)模塊化()模塊化(modularization) 把復(fù)雜的程序分解為功能獨(dú)立的程序
37、模塊,把復(fù)雜的程序分解為功能獨(dú)立的程序模塊,每一個(gè)程序模塊只完成一個(gè)獨(dú)立的功能,盡量每一個(gè)程序模塊只完成一個(gè)獨(dú)立的功能,盡量減少模塊之間的聯(lián)系。這樣,當(dāng)我們讀一個(gè)復(fù)減少模塊之間的聯(lián)系。這樣,當(dāng)我們讀一個(gè)復(fù)雜的程序時(shí),只要分別去讀懂各個(gè)簡(jiǎn)單的功能雜的程序時(shí),只要分別去讀懂各個(gè)簡(jiǎn)單的功能模塊即可。模塊即可。4.4 程序的測(cè)試、調(diào)試與維護(hù)程序的測(cè)試、調(diào)試與維護(hù)4.4.1 程序測(cè)試程序測(cè)試4.4.2 程序調(diào)試程序調(diào)試 4.4.3 程序維護(hù)程序維護(hù)4.4.1 程序測(cè)試程序測(cè)試程序測(cè)試是為了發(fā)現(xiàn)程序錯(cuò)誤而執(zhí)行程序的過程。程序測(cè)試是為了發(fā)現(xiàn)程序錯(cuò)誤而執(zhí)行程序的過程。測(cè)試時(shí)需要選擇測(cè)試數(shù)據(jù)作為輸入,運(yùn)行程序后
38、測(cè)試時(shí)需要選擇測(cè)試數(shù)據(jù)作為輸入,運(yùn)行程序后看是否會(huì)輸出預(yù)期的結(jié)果??词欠駮?huì)輸出預(yù)期的結(jié)果。如果沒有產(chǎn)生正確的結(jié)果,則程序員必須查找并如果沒有產(chǎn)生正確的結(jié)果,則程序員必須查找并修改程序中的錯(cuò)誤,然后再測(cè)試修改后的程序,修改程序中的錯(cuò)誤,然后再測(cè)試修改后的程序,可能要經(jīng)過多次反復(fù),才能得出正確的結(jié)果??赡芤?jīng)過多次反復(fù),才能得出正確的結(jié)果。4.4.1 程序測(cè)試程序測(cè)試對(duì)于一組測(cè)試數(shù)據(jù),即使程序產(chǎn)生了正確的結(jié)果,對(duì)于一組測(cè)試數(shù)據(jù),即使程序產(chǎn)生了正確的結(jié)果,也還不能立即斷定程序是正確的,因?yàn)檫€不能保也還不能立即斷定程序是正確的,因?yàn)檫€不能保證輸入其他的數(shù)據(jù)時(shí),程序會(huì)產(chǎn)生正確結(jié)果。證輸入其他的數(shù)據(jù)時(shí),程
39、序會(huì)產(chǎn)生正確結(jié)果。但是這個(gè)但是這個(gè)“所有可能的數(shù)據(jù)所有可能的數(shù)據(jù)”集合一般是非常大集合一般是非常大的,可能是幾十億個(gè)數(shù)據(jù)甚至更多,都測(cè)試一遍的,可能是幾十億個(gè)數(shù)據(jù)甚至更多,都測(cè)試一遍是不現(xiàn)實(shí)的,所以要求我們根據(jù)某些原則選擇有是不現(xiàn)實(shí)的,所以要求我們根據(jù)某些原則選擇有代表性的測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,以相對(duì)較少的測(cè)試代表性的測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,以相對(duì)較少的測(cè)試次數(shù)發(fā)現(xiàn)程序中的錯(cuò)誤次數(shù)發(fā)現(xiàn)程序中的錯(cuò)誤黑盒測(cè)試法黑盒測(cè)試法 把程序看成一個(gè)把程序看成一個(gè)“黑盒子黑盒子”,測(cè)試人員完全不,測(cè)試人員完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只考慮程序的考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只考慮程序的功能,通過選擇一些測(cè)試數(shù)據(jù),
40、看程序的功能是功能,通過選擇一些測(cè)試數(shù)據(jù),看程序的功能是否都已實(shí)現(xiàn)否都已實(shí)現(xiàn)。黑盒測(cè)試的測(cè)試數(shù)據(jù)選擇(雞兔同籠問題)黑盒測(cè)試的測(cè)試數(shù)據(jù)選擇(雞兔同籠問題)把輸入的二元一次方程組的系數(shù)分為以下四類,每一類設(shè)計(jì)一個(gè)測(cè)試用例。把輸入的二元一次方程組的系數(shù)分為以下四類,每一類設(shè)計(jì)一個(gè)測(cè)試用例。合理的系數(shù):合理的系數(shù):(1)方程組有唯一解:)方程組有唯一解: a1 = 1,b1 = 1,c1 = 1,a2 = 0,b2 = 1,c2 = 2(2)方程組無解:)方程組無解: a1 = 1,b1 = 1,c1 = 1,a2 = 1,b2 = 1,c2 = 2(3)方程組有無窮組解:)方程組有無窮組解: a1
41、 = 1,b1 = 1,c1 = 1,a2 = 2,b2 = 2,c2 = 2不合理的系數(shù):不合理的系數(shù):(4)輸入的不全是數(shù)值:)輸入的不全是數(shù)值: a1 = a,b1 = 5,c1 = 0,a2 = 6,b2 = 8,c2 = 7選擇合理的輸入數(shù)據(jù)驗(yàn)證程序的功能、性能是否符合設(shè)計(jì)的要求。選擇合理的輸入數(shù)據(jù)驗(yàn)證程序的功能、性能是否符合設(shè)計(jì)的要求。選擇不合理的輸入數(shù)據(jù)對(duì)程序進(jìn)行測(cè)試也非常重要,這是對(duì)程序可靠性的考選擇不合理的輸入數(shù)據(jù)對(duì)程序進(jìn)行測(cè)試也非常重要,這是對(duì)程序可靠性的考驗(yàn)。驗(yàn)。白測(cè)試的測(cè)試數(shù)據(jù)選擇(雞兔同籠問題)白測(cè)試的測(cè)試數(shù)據(jù)選擇(雞兔同籠問題) 為了讓程序中的每條語句至少執(zhí)行一次,
42、使每個(gè)判斷條為了讓程序中的每條語句至少執(zhí)行一次,使每個(gè)判斷條件取一次件取一次“真真”或取一次或取一次“假假”,選擇如下測(cè)試用例:,選擇如下測(cè)試用例:(1)d = 0,s =“ Y”: a1 = 1,b1 = 1,c1 = 1,a2 = 2,b2 = 2,c2 = 2, s =“ Y”(2)d 0,s =“ N”: a1 = 1,b1 = 0,c1 = 1,a2 = 0,b2 = 1,c2 = 2, s =“ N” 這兩個(gè)例子測(cè)試后,使得程序中的每條語句至少執(zhí)行了這兩個(gè)例子測(cè)試后,使得程序中的每條語句至少執(zhí)行了一次,每個(gè)判斷條件分別取了一次一次,每個(gè)判斷條件分別取了一次“真真”和一次和一次“假假
43、”。測(cè)試的步驟測(cè)試的步驟一個(gè)復(fù)雜的程序往往由若干個(gè)子程序模塊組成,要保證一個(gè)復(fù)雜的程序往往由若干個(gè)子程序模塊組成,要保證程序整體的正確性,不僅需要各個(gè)模塊是正確的,還要求程序整體的正確性,不僅需要各個(gè)模塊是正確的,還要求各模塊之間的接口是正確的。測(cè)試工作要制定出測(cè)試規(guī)劃,各模塊之間的接口是正確的。測(cè)試工作要制定出測(cè)試規(guī)劃,包括測(cè)試的步驟、范圍、進(jìn)度和所用的資源(硬件、軟件)包括測(cè)試的步驟、范圍、進(jìn)度和所用的資源(硬件、軟件)等。等。測(cè)試工作先對(duì)每個(gè)模塊進(jìn)行測(cè)試,一般采用白盒測(cè)試法測(cè)試工作先對(duì)每個(gè)模塊進(jìn)行測(cè)試,一般采用白盒測(cè)試法保證每個(gè)程序模塊內(nèi)部的正確性,然后再把測(cè)試后的模塊保證每個(gè)程序模塊內(nèi)
44、部的正確性,然后再把測(cè)試后的模塊組裝在一起進(jìn)行整體測(cè)試,主要測(cè)試各模塊是否能正常配組裝在一起進(jìn)行整體測(cè)試,主要測(cè)試各模塊是否能正常配合工作,方法多采用黑盒測(cè)試法。對(duì)模塊的接口進(jìn)行測(cè)試,合工作,方法多采用黑盒測(cè)試法。對(duì)模塊的接口進(jìn)行測(cè)試,適當(dāng)輔以白盒測(cè)試法,以便對(duì)主要執(zhí)行路徑進(jìn)行測(cè)試。適當(dāng)輔以白盒測(cè)試法,以便對(duì)主要執(zhí)行路徑進(jìn)行測(cè)試。 4.4.2 程序調(diào)試程序調(diào)試 調(diào)試的任務(wù)是進(jìn)一步診斷和改正程序中的錯(cuò)誤(調(diào)試的任務(wù)是進(jìn)一步診斷和改正程序中的錯(cuò)誤( 一般是一般是測(cè)試時(shí)發(fā)現(xiàn)的錯(cuò)誤),它是在完成了測(cè)試之后進(jìn)行的。測(cè)試時(shí)發(fā)現(xiàn)的錯(cuò)誤),它是在完成了測(cè)試之后進(jìn)行的。調(diào)試活動(dòng)首先確定程序中可疑錯(cuò)誤的確切性質(zhì)和
45、位置,調(diào)試活動(dòng)首先確定程序中可疑錯(cuò)誤的確切性質(zhì)和位置,然后對(duì)程序(設(shè)計(jì)、編碼)進(jìn)行修改,排除錯(cuò)誤。然后對(duì)程序(設(shè)計(jì)、編碼)進(jìn)行修改,排除錯(cuò)誤。調(diào)試工作是一個(gè)具有很強(qiáng)技巧性的工作。軟件運(yùn)行失效調(diào)試工作是一個(gè)具有很強(qiáng)技巧性的工作。軟件運(yùn)行失效或出現(xiàn)問題,往往只是潛在錯(cuò)誤的外部表現(xiàn),而外部表現(xiàn)或出現(xiàn)問題,往往只是潛在錯(cuò)誤的外部表現(xiàn),而外部表現(xiàn)與內(nèi)在原因之間常常沒有明顯的聯(lián)系,要找出真正的原因,與內(nèi)在原因之間常常沒有明顯的聯(lián)系,要找出真正的原因,排除潛在的錯(cuò)誤,不是一件易事。排除潛在的錯(cuò)誤,不是一件易事。可以說,調(diào)試是通過現(xiàn)象找出原因的分析過程??梢哉f,調(diào)試是通過現(xiàn)象找出原因的分析過程。 調(diào)試步驟調(diào)試
46、步驟(1)對(duì)測(cè)試發(fā)現(xiàn)的錯(cuò)誤現(xiàn)象進(jìn)行分析,確定程序)對(duì)測(cè)試發(fā)現(xiàn)的錯(cuò)誤現(xiàn)象進(jìn)行分析,確定程序中的出錯(cuò)位置;中的出錯(cuò)位置;(2)研究有關(guān)部分的程序,找出錯(cuò)誤的內(nèi)在原因)研究有關(guān)部分的程序,找出錯(cuò)誤的內(nèi)在原因(有的錯(cuò)誤不一定是編碼錯(cuò)誤,可能是設(shè)計(jì)錯(cuò)(有的錯(cuò)誤不一定是編碼錯(cuò)誤,可能是設(shè)計(jì)錯(cuò)誤);誤);(3)修改設(shè)計(jì)或代碼,以排除這個(gè)錯(cuò)誤;)修改設(shè)計(jì)或代碼,以排除這個(gè)錯(cuò)誤;(4)重復(fù)進(jìn)行暴露了這個(gè)錯(cuò)誤的原始測(cè)試和其他)重復(fù)進(jìn)行暴露了這個(gè)錯(cuò)誤的原始測(cè)試和其他有關(guān)測(cè)試。有關(guān)測(cè)試。 調(diào)試步驟調(diào)試步驟當(dāng)在程序中發(fā)現(xiàn)一個(gè)錯(cuò)誤時(shí),它可能是語法錯(cuò)誤,也可能是語義錯(cuò)誤。當(dāng)在程序中發(fā)現(xiàn)一個(gè)錯(cuò)誤時(shí),它可能是語法錯(cuò)誤,也可能是
47、語義錯(cuò)誤。語法錯(cuò)誤是由于指令沒有按照程序設(shè)計(jì)語言的語法規(guī)則編寫所致。例如,語法錯(cuò)誤是由于指令沒有按照程序設(shè)計(jì)語言的語法規(guī)則編寫所致。例如,要打印一個(gè)消息時(shí),需要使用要打印一個(gè)消息時(shí),需要使用PRINT命令字。命令命令字。命令I(lǐng)F AGE = 16 THEN You can drive.將產(chǎn)生語法錯(cuò)誤,因?yàn)樯倭嗣钭謱a(chǎn)生語法錯(cuò)誤,因?yàn)樯倭嗣钭諴RINT。正確的寫法是正確的寫法是IF AGE = 16 THEN PRINT You can drive.。在編譯執(zhí)行的系統(tǒng)中,編譯時(shí)就能檢查出語法錯(cuò)誤。在解釋執(zhí)行的系統(tǒng)在編譯執(zhí)行的系統(tǒng)中,編譯時(shí)就能檢查出語法錯(cuò)誤。在解釋執(zhí)行的系統(tǒng)中,執(zhí)行到語法錯(cuò)誤
48、的語句時(shí)輸出錯(cuò)誤信息。語法錯(cuò)誤是比較容易發(fā)現(xiàn)和中,執(zhí)行到語法錯(cuò)誤的語句時(shí)輸出錯(cuò)誤信息。語法錯(cuò)誤是比較容易發(fā)現(xiàn)和糾正的。糾正的。語義錯(cuò)誤是編寫的程序雖然能運(yùn)行,但不能輸出正確的結(jié)果。出錯(cuò)的原語義錯(cuò)誤是編寫的程序雖然能運(yùn)行,但不能輸出正確的結(jié)果。出錯(cuò)的原因可能是多方面的,模型的建立、算法的設(shè)計(jì)和表達(dá)、編碼各個(gè)過程都可因可能是多方面的,模型的建立、算法的設(shè)計(jì)和表達(dá)、編碼各個(gè)過程都可能出錯(cuò),語義錯(cuò)誤比語法錯(cuò)誤更難檢查、修改。例如,把能出錯(cuò),語義錯(cuò)誤比語法錯(cuò)誤更難檢查、修改。例如,把IF A = 100 THEN PRINT A中的中的“”寫成了寫成了“”,就屬于語義方面的錯(cuò)誤。,就屬于語義方面的錯(cuò)誤。
49、 4.4.3 程序維護(hù)程序維護(hù)通常把程序的修改稱為程序維護(hù)。程序維護(hù)一般有三種類型通常把程序的修改稱為程序維護(hù)。程序維護(hù)一般有三種類型u改正性維護(hù)改正性維護(hù) 在程序測(cè)試時(shí),有的錯(cuò)誤沒被發(fā)現(xiàn),交付使用后,程序中某些錯(cuò)誤在程序測(cè)試時(shí),有的錯(cuò)誤沒被發(fā)現(xiàn),交付使用后,程序中某些錯(cuò)誤暴露出來,此時(shí)就要對(duì)程序進(jìn)行改正性維護(hù)。暴露出來,此時(shí)就要對(duì)程序進(jìn)行改正性維護(hù)。u適應(yīng)性維護(hù)適應(yīng)性維護(hù)假如程序運(yùn)行的外在環(huán)境(假如程序運(yùn)行的外在環(huán)境( 硬件配置和軟件配置等)發(fā)生了變化,硬件配置和軟件配置等)發(fā)生了變化,為了使程序適應(yīng)這種環(huán)境變化而修改程序的過程叫適應(yīng)性維護(hù)。為了使程序適應(yīng)這種環(huán)境變化而修改程序的過程叫適應(yīng)性
50、維護(hù)。u完善性維護(hù)完善性維護(hù)在程序使用的過程中,用戶往往會(huì)對(duì)程序提出增加新功能或改善性在程序使用的過程中,用戶往往會(huì)對(duì)程序提出增加新功能或改善性能的要求,這就需要修改程序,使程序更加完善,這個(gè)過程稱為完能的要求,這就需要修改程序,使程序更加完善,這個(gè)過程稱為完善性維護(hù)。善性維護(hù)。 4.4.3 程序維護(hù)程序維護(hù)程序維護(hù)在軟件生命周期中占相當(dāng)重要的地位,大程序維護(hù)在軟件生命周期中占相當(dāng)重要的地位,大約約75%的費(fèi)用都產(chǎn)生在程序維護(hù)階段。的費(fèi)用都產(chǎn)生在程序維護(hù)階段。不管對(duì)程序進(jìn)行哪種維護(hù),都需要維護(hù)人員熟悉程不管對(duì)程序進(jìn)行哪種維護(hù),都需要維護(hù)人員熟悉程序的工作過程和使用方法,讀懂原有的程序。修改程序
51、的工作過程和使用方法,讀懂原有的程序。修改程序的人員往往不是編寫程序的人員,有時(shí)候時(shí)間久了序的人員往往不是編寫程序的人員,有時(shí)候時(shí)間久了就是編寫程序的本人也記不清當(dāng)時(shí)是怎樣編寫程序的。就是編寫程序的本人也記不清當(dāng)時(shí)是怎樣編寫程序的。因此,為了能順利地進(jìn)行維護(hù),必須建立詳盡的程序因此,為了能順利地進(jìn)行維護(hù),必須建立詳盡的程序文檔。文檔。程序文檔解釋了程序的工作過程及使用方法。創(chuàng)建程序文檔解釋了程序的工作過程及使用方法。創(chuàng)建的文檔為修改程序或使用程序提供幫助。的文檔為修改程序或使用程序提供幫助。 程序文檔程序文檔程序文檔有兩種形式:插入到程序代碼中的注釋和專門制作程序文檔有兩種形式:插入到程序代碼
52、中的注釋和專門制作的文檔。的文檔。u注釋是插入到計(jì)算機(jī)程序代碼行中的解釋性注解,它能注釋是插入到計(jì)算機(jī)程序代碼行中的解釋性注解,它能為改寫程序的人閱讀程序、理解程序提供幫助。為改寫程序的人閱讀程序、理解程序提供幫助。u專門制作的文檔不屬于程序,它包含的是一些對(duì)程序員專門制作的文檔不屬于程序,它包含的是一些對(duì)程序員和用戶都有用的關(guān)于程序的信息。對(duì)程序員有用的文檔為和用戶都有用的關(guān)于程序的信息。對(duì)程序員有用的文檔為程序手冊(cè),對(duì)用戶有用的文檔為用戶參考手冊(cè)。程序手冊(cè),對(duì)用戶有用的文檔為用戶參考手冊(cè)。p程序手冊(cè)中包含問題描述、數(shù)學(xué)模型、算法及算法表達(dá)、程序程序手冊(cè)中包含問題描述、數(shù)學(xué)模型、算法及算法表
53、達(dá)、程序代碼、測(cè)試程序的過程和記錄等,它是程序開發(fā)和維護(hù)的重要代碼、測(cè)試程序的過程和記錄等,它是程序開發(fā)和維護(hù)的重要資料。資料。p用戶參考手冊(cè)中包含對(duì)程序的功能說明,操作程序的方法、步用戶參考手冊(cè)中包含對(duì)程序的功能說明,操作程序的方法、步驟、故障分析與排除等,它是幫助用戶學(xué)會(huì)使用軟件的重要資驟、故障分析與排除等,它是幫助用戶學(xué)會(huì)使用軟件的重要資料。用戶參考手冊(cè)還有電子版和在線幫助等形式料。用戶參考手冊(cè)還有電子版和在線幫助等形式。4.5 程序設(shè)計(jì)語言應(yīng)用程序設(shè)計(jì)語言應(yīng)用4.5.1 程序設(shè)計(jì)語言的分類與選擇程序設(shè)計(jì)語言的分類與選擇4.5.2 軟件開發(fā)工具軟件開發(fā)工具4.5.3 VB程序設(shè)計(jì)語言程序
54、設(shè)計(jì)語言4.5.1 程序設(shè)計(jì)語言的分類與選擇程序設(shè)計(jì)語言的分類與選擇 通常根據(jù)程序設(shè)計(jì)語言發(fā)展的歷程將其劃分為通常根據(jù)程序設(shè)計(jì)語言發(fā)展的歷程將其劃分為四代。四代。1)機(jī)器語言)機(jī)器語言第一代語言第一代語言2)匯編語言)匯編語言第二代語言第二代語言3)高級(jí)程序設(shè)計(jì)語言)高級(jí)程序設(shè)計(jì)語言第三代語言第三代語言4)智能語言)智能語言第四代語言第四代語言4.5.1 程序設(shè)計(jì)語言的分類與選擇程序設(shè)計(jì)語言的分類與選擇1)機(jī)器語言)機(jī)器語言第一代語言第一代語言 機(jī)器語言是計(jì)算機(jī)能直接執(zhí)行的二進(jìn)制形式機(jī)器語言是計(jì)算機(jī)能直接執(zhí)行的二進(jìn)制形式的低級(jí)語言。它是由機(jī)器指令組成的語言,不同的低級(jí)語言。它是由機(jī)器指令組成的
55、語言,不同的機(jī)器有不同的機(jī)器語言。機(jī)器語言對(duì)人來說既的機(jī)器有不同的機(jī)器語言。機(jī)器語言對(duì)人來說既難理解又難掌握,編出的程序不易查錯(cuò)糾錯(cuò)。計(jì)難理解又難掌握,編出的程序不易查錯(cuò)糾錯(cuò)。計(jì)算機(jī)剛出現(xiàn)時(shí)用的就是機(jī)器語言。算機(jī)剛出現(xiàn)時(shí)用的就是機(jī)器語言。4.5.1 程序設(shè)計(jì)語言的分類與選擇程序設(shè)計(jì)語言的分類與選擇2)匯編語言)匯編語言第二代語言第二代語言 匯編語言比機(jī)器語言直觀,它的每一條符號(hào)指令與相匯編語言比機(jī)器語言直觀,它的每一條符號(hào)指令與相應(yīng)的機(jī)器指令有對(duì)應(yīng)關(guān)系,同時(shí)又增加了一些宏、符號(hào)地應(yīng)的機(jī)器指令有對(duì)應(yīng)關(guān)系,同時(shí)又增加了一些宏、符號(hào)地址等功能。存儲(chǔ)空間的安排可由機(jī)器解決,減少了程序員址等功能。存儲(chǔ)空
56、間的安排可由機(jī)器解決,減少了程序員的工作量,也降低了出錯(cuò)率。由于用匯編語言可以直接操的工作量,也降低了出錯(cuò)率。由于用匯編語言可以直接操縱處理器、寄存器和內(nèi)存地址等硬件資源,這對(duì)于編寫設(shè)縱處理器、寄存器和內(nèi)存地址等硬件資源,這對(duì)于編寫設(shè)備驅(qū)動(dòng)程序、編譯程序和操作系統(tǒng)等系統(tǒng)軟件非常有用。備驅(qū)動(dòng)程序、編譯程序和操作系統(tǒng)等系統(tǒng)軟件非常有用。不同指令集的處理器系統(tǒng)有自己相應(yīng)的匯編語言。如微機(jī)不同指令集的處理器系統(tǒng)有自己相應(yīng)的匯編語言。如微機(jī)上常用的上常用的Microsoft的匯編語言的匯編語言MASM。匯編語言相對(duì)來。匯編語言相對(duì)來講還是比較晦澀,所以也被列為低級(jí)語言。講還是比較晦澀,所以也被列為低級(jí)語
57、言。4.5.1 程序設(shè)計(jì)語言的分類與選擇程序設(shè)計(jì)語言的分類與選擇 3)高級(jí)程序設(shè)計(jì)語言)高級(jí)程序設(shè)計(jì)語言第三代語言第三代語言 高級(jí)程序設(shè)計(jì)語言從高級(jí)程序設(shè)計(jì)語言從20世紀(jì)世紀(jì)50年代就開始出現(xiàn),它年代就開始出現(xiàn),它提供給程序員的指令更像人類語言,為計(jì)算機(jī)應(yīng)用的普及提供給程序員的指令更像人類語言,為計(jì)算機(jī)應(yīng)用的普及起到了重要作用。人們用高級(jí)程序設(shè)計(jì)語言編程直觀、方起到了重要作用。人們用高級(jí)程序設(shè)計(jì)語言編程直觀、方便,但計(jì)算機(jī)最終執(zhí)行的還是二進(jìn)制表示的機(jī)器指令,這便,但計(jì)算機(jī)最終執(zhí)行的還是二進(jìn)制表示的機(jī)器指令,這中間需要編譯程序或解釋程序來做翻譯工作。高級(jí)程序設(shè)中間需要編譯程序或解釋程序來做翻譯工
58、作。高級(jí)程序設(shè)計(jì)語言不再與具體的計(jì)算機(jī)硬件相對(duì)應(yīng),同一高級(jí)程序設(shè)計(jì)語言不再與具體的計(jì)算機(jī)硬件相對(duì)應(yīng),同一高級(jí)程序設(shè)計(jì)語言,只要給出不同的編譯程序或解釋程序,就可以應(yīng)計(jì)語言,只要給出不同的編譯程序或解釋程序,就可以應(yīng)用于不同類型的計(jì)算機(jī)上。這就是高級(jí)程序設(shè)計(jì)語言的通用于不同類型的計(jì)算機(jī)上。這就是高級(jí)程序設(shè)計(jì)語言的通用性。用性。4.5.1 程序設(shè)計(jì)語言的分類與選擇程序設(shè)計(jì)語言的分類與選擇 3)高級(jí)程序設(shè)計(jì)語言)高級(jí)程序設(shè)計(jì)語言第三代語言第三代語言 高級(jí)程序設(shè)計(jì)語言種類很多,可以把它們分為過程性高級(jí)程序設(shè)計(jì)語言種類很多,可以把它們分為過程性語言、面向?qū)ο蟮恼Z言、專用語言和腳本語言。這里僅就語言、面向
59、對(duì)象的語言、專用語言和腳本語言。這里僅就最典型的、用途最廣的幾種語言進(jìn)行介紹。最典型的、用途最廣的幾種語言進(jìn)行介紹。(1)過程性語言:)過程性語言:(2)面向?qū)ο蟮恼Z言:)面向?qū)ο蟮恼Z言:(3)專用語言:)專用語言:(4)腳本語言:)腳本語言:4.5.1 程序設(shè)計(jì)語言的分類與選擇程序設(shè)計(jì)語言的分類與選擇 3)高級(jí)程序設(shè)計(jì)語言)高級(jí)程序設(shè)計(jì)語言第三代語言第三代語言(1)過程性語言:)過程性語言:過程性編程語言適合于順序執(zhí)行的算法。用過程性語言編寫的程序有過程性編程語言適合于順序執(zhí)行的算法。用過程性語言編寫的程序有一個(gè)起點(diǎn)和一個(gè)終點(diǎn),程序的執(zhí)行是流水線式的,在一個(gè)模塊被執(zhí)行一個(gè)起點(diǎn)和一個(gè)終點(diǎn),程序
60、的執(zhí)行是流水線式的,在一個(gè)模塊被執(zhí)行完成前,不能處理其他任務(wù),也無法動(dòng)態(tài)地改變程序的執(zhí)行過程。完成前,不能處理其他任務(wù),也無法動(dòng)態(tài)地改變程序的執(zhí)行過程。uBASIC,簡(jiǎn)單易學(xué)簡(jiǎn)單易學(xué),包括包括GW-BASIC、QBASIC 和和Turbo BASIC等。等。uCOBOL,適合于大型計(jì)算機(jī)系統(tǒng)上的事務(wù)處理。,適合于大型計(jì)算機(jī)系統(tǒng)上的事務(wù)處理。uFORTRAN,廣泛應(yīng)用于科學(xué)和工程計(jì)算領(lǐng)域。廣泛應(yīng)用于科學(xué)和工程計(jì)算領(lǐng)域。uPASCAL,主要用于結(jié)構(gòu)化程序設(shè)計(jì)的教學(xué)主要用于結(jié)構(gòu)化程序設(shè)計(jì)的教學(xué)。uC語言語言,功能強(qiáng)大且十分靈活,以其高效、簡(jiǎn)潔、可移植性強(qiáng)。功能強(qiáng)大且十分靈活,以其高效、簡(jiǎn)潔、可移植性強(qiáng)。4.
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年七年級(jí)歷史上冊(cè)第一單元史前時(shí)期:中國境內(nèi)人類的活動(dòng)第3課遠(yuǎn)古的傳說教學(xué)設(shè)計(jì)新人教版
- 人教版七年級(jí)數(shù)學(xué)上冊(cè):4.1.2《點(diǎn)、線、面、體》 聽評(píng)課記錄2
- 高中教師職評(píng)總結(jié)
- 語文教師個(gè)人總結(jié)
- 裝修公司項(xiàng)目經(jīng)理合作協(xié)議書范本
- 超齡員工勞務(wù)合同范本
- 聽評(píng)課記錄表電子版
- 北湖小學(xué)數(shù)學(xué)試卷
- 浙教版數(shù)學(xué)七年級(jí)下冊(cè)《6.3 扇形統(tǒng)計(jì)圖》聽評(píng)課記錄2
- 人教版地理八年級(jí)上冊(cè)《 1.2 民族》聽課評(píng)課記錄
- 小學(xué)校本課程教材《趣味數(shù)學(xué)》
- 干細(xì)胞療法推廣方案
- (2024年)電工安全培訓(xùn)(新編)課件
- mil-std-1916抽樣標(biāo)準(zhǔn)(中文版)
- 《社區(qū)康復(fù)》課件-第七章 腦癱患兒的社區(qū)康復(fù)實(shí)踐
- 城鄉(xiāng)環(huán)衛(wèi)一體化內(nèi)部管理制度
- 廣匯煤炭清潔煉化有限責(zé)任公司1000萬噸年煤炭分級(jí)提質(zhì)綜合利用項(xiàng)目變更環(huán)境影響報(bào)告書
- 小學(xué)數(shù)學(xué)六年級(jí)解方程練習(xí)300題及答案
- 大數(shù)據(jù)在化工行業(yè)中的應(yīng)用與創(chuàng)新
- 光伏十林業(yè)可行性報(bào)告
- 小學(xué)綜合實(shí)踐《我做環(huán)保宣傳員 保護(hù)環(huán)境人人有責(zé)》
評(píng)論
0/150
提交評(píng)論