資源描述:
《pascal程序設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、東北師大附中內(nèi)部教材第一章PASCAL程序設(shè)計(jì)基礎(chǔ)我們?nèi)粘9ぷ?、學(xué)習(xí)和生活中,要做某件事,如果事先沒(méi)有計(jì)劃,只是想一步做一步,是達(dá)不到理想效果的。要很好地、高效率地完成某件事,必須事先有一個(gè)計(jì)劃,第一步做什么,下一步做什么,最后一步做什么。即先考慮好做這件事的所有步驟,然后按部就班地完成它。在計(jì)算機(jī)系統(tǒng)中,能完成某項(xiàng)任務(wù)的一系列指令或語(yǔ)句就是程序。程序設(shè)計(jì)是設(shè)計(jì)、書(shū)寫(xiě)和調(diào)試程序的過(guò)程。第一節(jié)程序設(shè)計(jì)語(yǔ)言及算法一、程序設(shè)計(jì)語(yǔ)言人們使用計(jì)算機(jī),可以通過(guò)某種計(jì)算機(jī)語(yǔ)言與其交談,用計(jì)算機(jī)語(yǔ)言描述所要完成的工作。為了完成某項(xiàng)特定任務(wù)用計(jì)算機(jī)語(yǔ)言編寫(xiě)的一組指令序列就稱之為程序。編寫(xiě)程序和執(zhí)行程序是利用計(jì)算
2、機(jī)解決問(wèn)題的主要方法和手段。程序設(shè)計(jì)語(yǔ)言是用來(lái)書(shū)寫(xiě)計(jì)算機(jī)程序的語(yǔ)言。程序設(shè)計(jì)語(yǔ)言經(jīng)歷了機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言到面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言等多個(gè)階段。1.機(jī)器語(yǔ)言機(jī)器語(yǔ)言是用二進(jìn)制代碼表示的計(jì)算機(jī)能直接識(shí)別和執(zhí)行的一種機(jī)器指令的集合。它是計(jì)算機(jī)的設(shè)計(jì)者通過(guò)計(jì)算機(jī)的硬件結(jié)構(gòu)賦予計(jì)算機(jī)的操作功能。機(jī)器語(yǔ)言具有靈活、直接執(zhí)行和速度快等特點(diǎn)。用機(jī)器語(yǔ)言編寫(xiě)程序,編程人員要首先熟記所用計(jì)算機(jī)的全部指令代碼和代碼的涵義。手編程序時(shí),程序員得自己處理每條指令和每一數(shù)據(jù)的存儲(chǔ)分配和輸入輸出,還得記住編程過(guò)程中每步所使用的工作單元處在何種狀態(tài)。這是一件十分繁瑣的工作,編寫(xiě)程序花費(fèi)的時(shí)間往往是實(shí)際運(yùn)行時(shí)間的幾十倍
3、或幾百倍。而且編出的程序全是些0和1的指令代碼,直觀性差,還容易出錯(cuò)。現(xiàn)在,除了計(jì)算機(jī)生產(chǎn)廠家的專業(yè)人員外,絕大多數(shù)程序員已經(jīng)不再去學(xué)習(xí)機(jī)器語(yǔ)言了。2.匯編語(yǔ)言 為了克服機(jī)器語(yǔ)言難讀、難編、難記和易出錯(cuò)的缺點(diǎn),人們就用與代碼指令實(shí)際含義相近的英文縮寫(xiě)詞、字母和數(shù)字等符號(hào)來(lái)取代指令代碼(如用ADD表示運(yùn)算符號(hào)“+”的機(jī)器代碼),于是就產(chǎn)生了匯編語(yǔ)言。匯編語(yǔ)言是一種用助記符表示的仍然面向機(jī)器的計(jì)算機(jī)語(yǔ)言。匯編語(yǔ)言像機(jī)器指令一樣,是硬件操作的控制信息,因而仍然是面向機(jī)器的語(yǔ)言,使用起來(lái)還是比較繁瑣費(fèi)時(shí),通用性也差。匯編語(yǔ)言是低級(jí)語(yǔ)言。3.高級(jí)語(yǔ)言20世紀(jì)50年代后期,在對(duì)低級(jí)語(yǔ)言的改進(jìn)過(guò)程中,又研
4、制出一種既接近于自然語(yǔ)言,又接近數(shù)學(xué)語(yǔ)言的程序設(shè)計(jì)語(yǔ)言。使用這種語(yǔ)言編寫(xiě)程序快捷方便,便于修改和高度,大大提高了編程的效率,同時(shí)這種語(yǔ)言編寫(xiě)的程序不依賴具體的機(jī)器,能用性好,我們稱之為高級(jí)語(yǔ)言。用高級(jí)語(yǔ)言,不必考慮機(jī)器的結(jié)構(gòu)和特點(diǎn),可以集中精力考慮解決問(wèn)題的算法,因此,高級(jí)語(yǔ)言也稱為算法語(yǔ)言。4.面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言王曉光friendi@163.com東北師大附中內(nèi)部教材面向?qū)ο蟪绦蛟O(shè)計(jì)方法成為今后軟件發(fā)展的主流,面向?qū)ο蟪绦蛟O(shè)計(jì)方法直接映射到人們對(duì)問(wèn)題的認(rèn)識(shí)上,提供了一種有目的地把系統(tǒng)分解為模塊的策略,并將設(shè)計(jì)決策與客觀世界的認(rèn)識(shí)相匹配。面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言更加直觀,更加人性化。二、算法
5、例1寫(xiě)出你在家中燒開(kāi)水的過(guò)程的一個(gè)算法。我們用計(jì)算機(jī)模擬過(guò)程具體步驟可以表示為:步驟1:往壺內(nèi)注水;步驟2:點(diǎn)火加熱;步驟3:觀察:如果水開(kāi),則停止燒火,否則繼續(xù)燒火;步驟4:如果水未開(kāi),重復(fù)“3”直至水開(kāi)。這種對(duì)于解決問(wèn)題的方法和步驟的描述就是算法。算法可以理解為由基本運(yùn)算及規(guī)定的運(yùn)算順序構(gòu)成的完整的解題步驟,或看成按要求設(shè)計(jì)好的有限的、確切的計(jì)算序列,并且這樣的步驟或序列能解決一類問(wèn)題。實(shí)際上,做任何事情都需要設(shè)計(jì)好工作的步驟和方法,例如,做廣播體操、國(guó)家足球隊(duì)的每一場(chǎng)比賽、舉辦奧運(yùn)會(huì)、廚師炒菜,都是按一定的步驟進(jìn)行的。做廣播操的每一節(jié)動(dòng)作的圖解就是“廣播體操算法”,舉辦奧運(yùn)會(huì)的流程也是一
6、個(gè)“算法”。一個(gè)菜譜也是一個(gè)“算法”,廚師炒菜就是實(shí)現(xiàn)這個(gè)算法。三、算法描述描述算法的方式是多種多樣的,可以用文字(例如燒水);也可以用圖示(例如廣播體操圖解);還可以用別的一些符號(hào)系統(tǒng)(例如音樂(lè)的樂(lè)譜)。例2已知兩個(gè)整數(shù)a、b,計(jì)算這兩個(gè)數(shù)的和的算法就可以用文字描述為:步驟1:輸入整數(shù)a、b;步驟2:計(jì)算a+b的和;步驟3:輸出a+b的和;用算法流程圖來(lái)描述計(jì)算a+b的和的算法會(huì)更加直觀。如圖1.1所示。開(kāi)始根據(jù)S=a+b計(jì)算出S值輸出S結(jié)束圖1.1計(jì)算a、b兩個(gè)數(shù)和的算法輸入整數(shù)a,b王曉光friendi@163.com東北師大附中內(nèi)部教材我們看到流程圖是用一些框圖來(lái)表示算法中的一些功能塊
7、,流程圖常用的符號(hào)如下表:表1-1常用流程圖符號(hào)框圖名稱框圖形狀框圖意義起始框/終止框表示開(kāi)始和結(jié)束輸入輸出框表示輸入或輸出條件框表示條件判斷處理框表示要完成某種處理功能連接點(diǎn)把流程圖中的不同部分或幾張流程圖連接起來(lái)流程線表示走向畫(huà)流程圖時(shí),先畫(huà)出代表程序中功能塊的一些處理框和條件框,并在其中寫(xiě)上解釋性的文字,然后用流程線把這些框連接在一起并標(biāo)上箭頭表示流程的順序。四、根據(jù)算法寫(xiě)出程序王曉光fri