Pascal-1.初識(shí)pascal語言_第1頁
Pascal-1.初識(shí)pascal語言_第2頁
Pascal-1.初識(shí)pascal語言_第3頁
Pascal-1.初識(shí)pascal語言_第4頁
Pascal-1.初識(shí)pascal語言_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一章初識(shí)第一章初識(shí)PASCALPASCAL語言語言 第一節(jié)第一節(jié)PascalPascal語言介紹語言介紹 第二節(jié)簡(jiǎn)單程序設(shè)計(jì)第二節(jié)簡(jiǎn)單程序設(shè)計(jì)第一節(jié)第一節(jié)Pascal語言介紹語言介紹 信息學(xué)奧林匹克競(jìng)賽是一項(xiàng)益智性的競(jìng)賽活動(dòng),核心是考查選手的智力和使用計(jì)算機(jī)解題的能力,選手首先應(yīng)針對(duì)競(jìng)賽題目的要求構(gòu)建數(shù)學(xué)模型,進(jìn)而構(gòu)造出計(jì)算機(jī)可以接受的算法,之后編寫出計(jì)算機(jī)能夠執(zhí)行的程序。程序設(shè)計(jì)是信息學(xué)競(jìng)賽的基本功,選手參與競(jìng)賽活動(dòng)的第一步是熟練掌握一門程序設(shè)計(jì)語言,目前競(jìng)賽中允許使用的程序設(shè)計(jì)語言有Pascal、C/C+語言,入門者以Pascal語言為最容易上手,選擇Pascal可以節(jié)省中學(xué)階段本來就捉

2、襟見肘的時(shí)間,并且可以快速進(jìn)入學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu)的階段。Pascal語言指定的版本是Free Pascal 2.0以上,在講Free Pascal之前,讓我們先了解一下Pascal語言。PASCAL PASCAL 語言的特點(diǎn)語言的特點(diǎn) 它是世界上第一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)語言它是世界上第一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)語言 結(jié)構(gòu)化程序設(shè)計(jì)思想是程序設(shè)計(jì)發(fā)展史上的一個(gè)里程碑,結(jié)構(gòu)化程序設(shè)計(jì)思想中主張去掉Goto語句,所有程序都用三種基本結(jié)構(gòu)(順序、分支、循環(huán))組成。Pascal語言提供了三種基本結(jié)構(gòu)的語句以及模塊化(過程和函數(shù))的功能。可以方便地書寫出結(jié)構(gòu)化程序。在編寫程序時(shí)可以完全不使用GOTO語句和標(biāo)號(hào)。這就易

3、于保證程序的正確性和易讀性。Pascal語言強(qiáng)調(diào)的是可靠性、易于驗(yàn)證性、概念的清晰性和實(shí)現(xiàn)的簡(jiǎn)化。在結(jié)構(gòu)化這一點(diǎn)上,比其它語言(如BASIC,FORTRAN77)更好一些。 由于Pascal語言具有良好的結(jié)構(gòu)化程序設(shè)計(jì)特性,所以它特別適合于教學(xué),有利于培養(yǎng)學(xué)生良好的程序設(shè)計(jì)風(fēng)格和嚴(yán)謹(jǐn)?shù)乃季S。PASCAL PASCAL 語言的特點(diǎn)語言的特點(diǎn) 有豐富的數(shù)據(jù)類型有豐富的數(shù)據(jù)類型 PascalPascal提供了整型、實(shí)型、字符型、布提供了整型、實(shí)型、字符型、布爾型、枚舉型、子界型以及由以上類型數(shù)據(jù)爾型、枚舉型、子界型以及由以上類型數(shù)據(jù)構(gòu)成的數(shù)組類型、集合類型、記錄類型和文構(gòu)成的數(shù)組類型、集合類型、記錄

4、類型和文件類型。此外,還提供了其它許多語言中所件類型。此外,還提供了其它許多語言中所沒有的指針類型。沃思有一個(gè)著名的公式:沒有的指針類型。沃思有一個(gè)著名的公式: 算法數(shù)據(jù)結(jié)構(gòu)程序算法數(shù)據(jù)結(jié)構(gòu)程序 ,指出了在程序設(shè)計(jì),指出了在程序設(shè)計(jì)中研究數(shù)據(jù)結(jié)構(gòu)的重要性。豐富的數(shù)據(jù)結(jié)構(gòu)中研究數(shù)據(jù)結(jié)構(gòu)的重要性。豐富的數(shù)據(jù)結(jié)構(gòu)和上述的結(jié)構(gòu)化性質(zhì),并且去掉了一些影響和上述的結(jié)構(gòu)化性質(zhì),并且去掉了一些影響效率的因素(如動(dòng)態(tài)數(shù)組),使得效率的因素(如動(dòng)態(tài)數(shù)組),使得PascalPascal可可以被方便地用來描述復(fù)雜的算法,使得程序以被方便地用來描述復(fù)雜的算法,使得程序編譯和運(yùn)行效率都很高。編譯和運(yùn)行效率都很高。 PAS

5、CAL PASCAL 語言的特點(diǎn)語言的特點(diǎn) 功能強(qiáng),應(yīng)用廣功能強(qiáng),應(yīng)用廣 有些語言(如有些語言(如FORTRAN66,ALGOL60FORTRAN66,ALGOL60)只適)只適用于數(shù)值計(jì)算,有些語言(如用于數(shù)值計(jì)算,有些語言(如COBOLCOBOL)則適用于商)則適用于商業(yè)數(shù)據(jù)處理和管理領(lǐng)域。業(yè)數(shù)據(jù)處理和管理領(lǐng)域。PascalPascal的功能較強(qiáng),不僅的功能較強(qiáng),不僅是一門教學(xué)語言,還廣泛應(yīng)用于編寫各種系統(tǒng)軟件是一門教學(xué)語言,還廣泛應(yīng)用于編寫各種系統(tǒng)軟件和應(yīng)用軟件。和應(yīng)用軟件。PascalPascal語言還可以用于輔助設(shè)計(jì),實(shí)語言還可以用于輔助設(shè)計(jì),實(shí)現(xiàn)計(jì)算機(jī)繪圖功能。現(xiàn)計(jì)算機(jī)繪圖功能。P

6、ASCAL PASCAL 語言的特點(diǎn)語言的特點(diǎn) 程序的書寫格式自由程序的書寫格式自由 不像有些編程語言那樣對(duì)程序的書寫格式有嚴(yán)格不像有些編程語言那樣對(duì)程序的書寫格式有嚴(yán)格的規(guī)定。的規(guī)定。PascalPascal允許一行內(nèi)寫多條語句或一條語句允許一行內(nèi)寫多條語句或一條語句可以分開寫在多行上,便于閱讀??梢苑珠_寫在多行上,便于閱讀。PASCALPASCAL程序結(jié)構(gòu)程序結(jié)構(gòu) Pascal有著一組自己的記號(hào)和規(guī)則,并且對(duì)程序的結(jié)構(gòu)有嚴(yán)格規(guī)定。我們先來看一個(gè)簡(jiǎn)單的例子: 例例1.11.1 在梯形中陰影部分面積是150平方厘米,求梯形面積。 【分析】 已知梯形上、下底長(zhǎng)為15和25。令梯形的高為h,則由已

7、知三角形面積為150平方厘米,有150(15*h)/2,得h為20,然后根據(jù)梯形面積公式算出梯形面積。程序如下:程序如下: Program ex1_1; /程序首部,可省略vars,h,up,down : real; /定義變量begin up := 15; /已知上底 down := 25; /已知下底 h := 2*150/up; /根據(jù)上底求出梯形的高 s := (up+down)*h/2; /求出梯形的面積 writeln(s=,s ); /輸出梯形的面積s=400end. /結(jié)束整個(gè)程序以上程序的第一行稱為程序首部,程序名稱ex1_1可以自己命名,這一行可以省略不寫,程序中“/”后面

8、的內(nèi)容稱為注釋,計(jì)算機(jī)不會(huì)理踩這些內(nèi)容,注釋可以增加程序的可讀性。編寫程序增加注釋是一個(gè)好習(xí)慣,便于他人或自己日后閱讀。注釋內(nèi)容還可以放在大括號(hào)中如“注釋內(nèi)容”,一般單行內(nèi)容用“/”,多行內(nèi)容用“ ”。從第二行到最后一行為程序體(在有的書本里也稱分程序),由說明部分和語句部分構(gòu)成。說明部分用變量(包括常量)的定義,Pascal不允許變量未定義先使用;語句部分必須以begin開始,以end.結(jié)束,中間每條語句用分號(hào)隔開。FREE PASCALFREE PASCAL語言系統(tǒng)的使用語言系統(tǒng)的使用 目前,競(jìng)賽中指定的Pascal編譯系統(tǒng)是Free Pascal2.0以上的版本,了解了Pascal的特點(diǎn)

9、及程序結(jié)構(gòu)后,我們來學(xué)習(xí)Free Pascal 2.x 軟件的使用系統(tǒng)的啟動(dòng)系統(tǒng)的啟動(dòng) 運(yùn)行安裝目錄FPC2.0.4bini386-win32中的啟動(dòng)程序fp.exe(默認(rèn)安裝時(shí)桌面上也有啟動(dòng)的快捷方式)啟動(dòng)fp系統(tǒng),運(yùn)行后屏幕上出現(xiàn)如圖所示的fp集成環(huán)境。 這樣一片亂碼,令很多入門者望而怯步,導(dǎo)致的原因是我們操作系統(tǒng)“控制臺(tái)窗口”中語言默認(rèn)為中文,調(diào)整方法是在窗口最上面的標(biāo)題欄上右鍵單擊,在彈出的快捷菜單中選擇“默認(rèn)值”,接著會(huì)彈出如13圖所示的控制臺(tái)窗口屬性框,在最下面的“默認(rèn)代碼頁”的下拉菜單中選擇“437 (OEM美國(guó))”如圖所示。FREE PASCALFREE PASCAL系統(tǒng)集成環(huán)

10、境簡(jiǎn)介系統(tǒng)集成環(huán)境簡(jiǎn)介 控制臺(tái)窗口屬性框中語言改成英文后,關(guān)閉并再次打開fp后出現(xiàn)如圖1-5所示的界面,標(biāo)題欄下方的一行為菜單欄。中間部分為編輯窗口,新建文件后,在它的編輯窗口內(nèi)可以編寫程序。最底部一行為提示欄,顯示系統(tǒng)中常用命令的快捷鍵,如將當(dāng)前正在編輯的文件存盤的命令快捷鍵為F2(平時(shí)要養(yǎng)成經(jīng)常按這個(gè)鍵),編譯程序的快捷鍵為F9,等等。 新建程序新建程序 選擇選擇FileFile菜單,執(zhí)行其中菜單,執(zhí)行其中NewNew命令,建立一個(gè)新的命令,建立一個(gè)新的程序窗口(默認(rèn)文件名為程序窗口(默認(rèn)文件名為Noname01.pasNoname01.pas)。)。程序代碼的輸入、編輯與運(yùn)行程序代碼的輸

11、入、編輯與運(yùn)行 在當(dāng)前程序編寫窗口中,一行一行地輸入程序代碼,對(duì)程序的編輯與其它文本編輯器的編輯方法類似,這里不再重復(fù)。 當(dāng)程序輸入完畢之后,選Compile菜單中Compile命令(或按F9)對(duì)程序進(jìn)行編譯(生成計(jì)算機(jī)能夠執(zhí)行的程序,擴(kuò)展名為exe)。如果程序有語法錯(cuò)誤,會(huì)在窗口的第一行顯示第一個(gè)紅色錯(cuò)誤信息,若無語法錯(cuò)誤,窗口正中央會(huì)出現(xiàn)一個(gè)對(duì)話框,提示編譯成功,程序編譯成功后,接下來就可以運(yùn)行程序了。 程序的運(yùn)行可以選擇Run菜單中的Run命令或按快捷鍵CTRL+F9,程序運(yùn)行結(jié)束后回到Pascal系統(tǒng)的集成環(huán)境,因此查看運(yùn)行結(jié)果需要選擇Debug菜單中的User screen命令或按快

12、捷鍵ALT+F5將編輯窗口切換到用戶屏幕(即結(jié)果輸出屏幕),有的選手為了調(diào)試方便在程序最后一行添加readln讓程序執(zhí)行完后停在結(jié)果輸出屏幕,結(jié)果查看完畢按回車鍵返回到編輯窗口。 程序的保存與打開程序的保存與打開 選擇File菜單中的Save命令 (或按F2鍵)來保存程序,第一次保存文件時(shí)屏幕上會(huì)出現(xiàn)一個(gè)對(duì)話框要求輸入文件名,要養(yǎng)成經(jīng)常保存文件的好習(xí)慣,保存文件還要注意fp的工作目錄(默認(rèn)的工作目錄是FPC2.0.4bini386-win32),默認(rèn)工作目錄可以在fp的快捷方式屬性的“起始位置”中設(shè)置。 打開已有源文件通過File菜單中的Open命令 (或按F3)來完成,也可以直接雙擊源文件來

13、啟動(dòng)Fp并加載該文件。 選手平時(shí)練習(xí)時(shí)要養(yǎng)成用快捷鍵代替鼠標(biāo)操作的良好習(xí)慣,使用快捷鍵能大大提高編寫代碼的速度,從而有更多的時(shí)間來思考問題和調(diào)試程序。 第二節(jié)簡(jiǎn)單程序設(shè)計(jì)第二節(jié)簡(jiǎn)單程序設(shè)計(jì)無論做任何事情,都要有一定的方式方法與處理步驟,所謂“無規(guī)矩?zé)o以成方圓”。計(jì)算機(jī)程序設(shè)計(jì)比日常生活中的事務(wù)處理更具有嚴(yán)謹(jǐn)性、規(guī)范性和可行性。為了使計(jì)算機(jī)有效地解決實(shí)際問題,必須將處理步驟編排好,用計(jì)算機(jī)能理解的計(jì)算機(jī)語言編寫成“序列”,讓計(jì)算機(jī)自動(dòng)識(shí)別并執(zhí)行這個(gè)“序列”,達(dá)到解決實(shí)際問題的目的。將處理問題的步驟編排好,用計(jì)算機(jī)語言組成序列,就是常說的編寫程序。在Pascal語言中,執(zhí)行每條語句都是由計(jì)算機(jī)完成

14、相應(yīng)的具體操作,編寫程序是利用Pascal語句的功能來實(shí)現(xiàn)預(yù)定的處理要求?!扒Ю镏?,始于足下”,我們從簡(jiǎn)單程序?qū)W起,逐步了解和掌握怎樣編寫程序。在學(xué)習(xí)Pascal語言之前,讓我們繞過那些繁瑣的語法規(guī)則細(xì)節(jié),通過一些的簡(jiǎn)單例題,來熟悉程序的基本組成和基本語句的用法,選手剛接觸編程時(shí),多動(dòng)手模仿是一條捷徑。例例1.2 在屏幕上輸出“Hello World!”。程序如下:程序如下: Program ex1_2; begin write(Hello World!); end. 通守這個(gè)簡(jiǎn)單程序的學(xué)習(xí),希望大家的程序設(shè)計(jì)學(xué)習(xí)能有一個(gè)良好的開端。程序中的write是一條輸出語句,它能命令計(jì)算機(jī)在屏幕上輸

15、出括號(hào)內(nèi)的內(nèi)容,其中單引號(hào)內(nèi)的部分將被原樣輸出。大家可以試試沒有引號(hào)的情況,會(huì)出現(xiàn)什么現(xiàn)象?例例1.31.3 已知一位小朋友的電影票價(jià)是10元,計(jì)算x位小朋友的總票價(jià)是多少? 【分析】 假設(shè)總票價(jià)用y來表示,則這個(gè)問題可以用以下幾個(gè)步驟來實(shí)現(xiàn):輸入小朋友的數(shù)目x;用公式y(tǒng)=10*x計(jì)算總票價(jià);輸出總票價(jià)y的值。程序如下:程序如下:Program ex1_3; /程序首部var x,y : integer; /說明部分(定義變量)begin readln(x); /小朋友的數(shù)目 y := 10*x; /計(jì)算總票價(jià) writeln(total=,y); /輸出總票價(jià) end.本題程序結(jié)構(gòu)完整,從中

16、可看出一個(gè)Pascal 程序由三部分組成:(1)程序首部 由保留字Program開頭,后跟一個(gè)程序名(如ex1_3),其格式為:Program 程序名。 程序名由選手自己取,它的第一個(gè)字符必須是英文字母,其后的字符只能是字母或數(shù)字和下劃線組成,程序名中不能出現(xiàn)運(yùn)算符、標(biāo)點(diǎn)符和空格等非法字符。(2)說明部分 程序中所用的常量、變量等必須先定義后使用。例1.3 程序中 x,y : integer;是變量定義,x,y被定義成整數(shù)類型的變量。只有被定義為某一類型的變量,在程序中才能將與變量類型所允許的值賦給該變量。說明部分以保留字var開頭。(3)語句部分 語句部分指由保留字 begin (開始)至

17、end. (結(jié)尾)之間的語句系列,是解決問題的具體處理步驟,也是程序的執(zhí)行部分。 不管是程序的哪部分,每條語句末尾都必須以分號(hào)(;)結(jié)束,但允許最接近 end 的那條語句末尾的分號(hào)省略;程序結(jié)束語句end末尾必須有句號(hào)(. ),是整個(gè)程序的結(jié)束標(biāo)志。 程序中大括號(hào)“”之間的部分或/后面的部分為注釋部分,單行注釋一般用/符號(hào),多行語句注釋用大括號(hào)更方便(不然每行語句前都要加/)。程序結(jié)構(gòu)可歸納用如下的示意圖來表示:program 程序名; 程序首部 常量說明; (const) 說明部分變量說明; (var) begin 語句1; 程序體 (主程序) 語句部分 語句n; end.把處理問題的步驟編

18、成能從上到下順序執(zhí)行的程序,是簡(jiǎn)單程序的基本特征。再來分析下面兩道例題的程序結(jié)構(gòu),同時(shí)繼續(xù)學(xué)習(xí)基本語句。 例例1.4 1.4 有一個(gè)牧場(chǎng),牧場(chǎng)上的牧草每天都在勻速生長(zhǎng),這片牧場(chǎng)可供15頭牛吃20天,或可供20頭牛吃10天,那么,這片牧場(chǎng)每天新生的草量可供幾頭牛吃1天? 【分析分析】 解決這類問題的關(guān)鍵是利用牛吃的草量,最終求出這片牧場(chǎng)每天新生長(zhǎng)的草量,我們?cè)O(shè)1單位的草量為1頭牛1天所需的草量,于是15頭牛20天所食的草量為300單位(包括這20天內(nèi)的新生草量),20頭牛10天所食的草量為200單位(包括這10天內(nèi)的新生草量),兩者的差值即為10天內(nèi)的新生草量。 程序如下:程序如下: Progr

19、am ex1_4; /程序首部 var s1, s2, s3 : integer; /說明部分 begin s1 := 15*20; /15頭牛20天所食的草量 s2 := 20*10; /20頭牛10天所食的草量 s3 := (s1-s2) div (20-10); /每天新生的草量單位數(shù) writeln(s3); /1單位為1頭牛1天的食量 end. := := 是賦值符號(hào),賦值語句的格式為: 變量變量 := := 表達(dá)式;表達(dá)式; 賦值語句的作用是將:=右邊表達(dá)式的值賦值給它左邊的變量,也就說讓變量的值等于表達(dá)式的值。writelnwriteln是輸出語句,輸出語句有三種格式: write(輸出項(xiàng)1,輸出項(xiàng)2,); /執(zhí)行輸出后光標(biāo)不換行 writeln(輸出項(xiàng)1,輸出項(xiàng)2,); /執(zhí)行輸出后光標(biāo)換到下一行 writeln; /什么都不輸出立即換行 writeln語句圓括號(hào)內(nèi)的部分都是要輸出的輸出項(xiàng),輸出項(xiàng)是多項(xiàng)時(shí)各項(xiàng)之間要用逗號(hào)隔開。如果輸出項(xiàng)被單引號(hào)括住時(shí),輸出項(xiàng)內(nèi)容原樣輸出;如果輸出項(xiàng)是表達(dá)式,輸出表達(dá)式的結(jié)果,而不是表達(dá)式本身。writeln比write多一個(gè)后綴ln,意思是line的縮寫,即輸

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論