心是考查參賽選手的智力和使用計算機編程解題的能力。信息學奧林匹克競賽要求參賽選手有如下能力:針對競賽題目中的要求構建數學模型,構造出有效的算法和選用相應的數據結構,寫出高級語言程序,上機調試通過。程序設計是信息學奧林匹克競賽的基本功,因此,青少年參與競賽活動的第一步是必須掌握一門高級語言及其程序設計方法。
以紀念法國數學家而命名的Pascal語言是使用最廣泛的計算機高級語言之一,被國際上公認為程序設計教學語言的典範。其主要特點有:嚴格的結構化形式;豐富完備的數據類型;運行效率高;查錯能力強。正因為這些特點,Pascal語言可以被方便地用於描述各種數據結構和算法,編寫出高質量的程序。尤其是對於青少年程序設計初學者,Pascal語言有利於順利入門,有益於從一開始培養良好的程序設計風格和習慣,越來越多的各類學校都把Pascal語言作為程序設計教學的第一語言。IOI(國際奧林匹克信息學競賽)把Pascal語言規定為二種程序設計語言之一,??NOI(全國信息學奧林匹克競賽)把Pascal語言定為唯一提倡的程序設計語言,NOIp(全國信息學奧林匹克聯賽)把Pascal定為最主要的程序設計語言。
第一課 Pascal語言知識
一、Pascal語言概述
Pascal語言是一種算法語言,它是瑞士蘇黎世聯邦工業大學的沃思教授於1968年設計完成的,1971年正式發表。Pascal語言是在ALGOL60的基礎上發展而成的。它是一種結構化的程序設計語言。它的功能強、編譯程序簡單,是70年代影響最大一種算法語言。
從使用者的角度來看,Pascal語言有以下幾個主要的特點:
結構化
Pascal可以方便地書寫出結構化程序。這就保證程序的正確性和易讀性。在結構化這一點上,比其它算法語言更好一些。
數據類型豐富
Pascal提供了整數型、實數型、字符型、布爾型、枚舉型、子界型以及由以上類型構成的數組類型、集合類型、記錄類型和文件類型。此外,還提供了其它許多語言中所沒有的指針類型。豐富的數據結構和上述的結構化性質,使得Pascal可以被方便地用來描述複雜的算法。
適用性好
既適用於數值運算,也適用於非數值運算領域。有些語言隻適用於數值計算,有些語言則適用於商業數據處理和管理領域。Pascal的功能較強,能廣泛應用於各種領域。
書寫較自由
不象有些算法語言那樣對程序的書寫格式有嚴格的規定。Pascal允許一行寫多個語句,一個語句可以分寫在多行上,這樣就可以使Pascal程序寫得象詩歌格式一樣優美,便於閱讀,但一行不可超過257個字符。
由於以上特點,許多學校選Pascal作為程序設計課程中的一種主要的語言。它能給學生嚴格而良好的程序設計的基本訓練。培養學生結構化程序設計的風格。
二、Pascal語言程序的基本結構
任何程序設計語言都有一定的規則。使用Pascal語言必須遵循其本身所規定的規則來編寫程序。儘管不同版本的Pascal語言所采用的符號的數量、形式不儘相同,但其基本成分一般都符合標準Pascal的規定。下麵我們首先來了解Pascal語言的程序基本結構。
為了明顯起見,先舉一個最簡單的Pascal程序例子:
【例1】
programli1(input,output);{程序首部}
const
pi=3.1415926;
var
【𝗼𝗼𝗽.𝘁𝘄 無錯章節】
r,l,s:real;
begin
write('inputr:');
readln(r);
s:=pi*r*r;
l:=2*pi*r;
writeln('s=',s);
writeln('l=',l);
end.
從這個簡單的程序可以看到:
。)序程分稱或(體序程和部首序程:分部個兩為分序程lacsaP個一
:括包它,分部頭開的序程是部首序程
。略省可也部首,中lacsaPeerF在。頭開字此以須必都部首的序程lacsaP個一何任定規lacsaP。序程lacsaP個一是這明標來"\margorp"\用。誌標序程
。號分個一有應,後之部首序程完寫在。1il的中例如,義定己自者計設序程由。稱名序程
。分部個兩分部行執和)略省可也(分部明說括包體序程。"\序程分"\稱也裡本書的有在,體主的序程是體序程
。型類、稱名的量變義定來用,"\明說量變"\是行二第中序程本。等數函與程過、型類、量常、量變的到用中序程述描來用分部明說
。"\用使再,明說先"\須必都據數等件文、錄記、數函與程過、組數、量常號符、量變有所的到用中序程凡,定規lacsaP
。作操的行執機算計要需出給是用作的分部行執
。束結序程個整示表,點句個一有後之分部行執。開隔號分以間之句語,句語個乾若有間其,束結"\dne"\以,始開"\nigeb"\以分部行執
。式格序程題例中書本仿模量儘者讀望希時序程寫編在。解理讀閱易容、晰清構結應序程寫書。活靈較比法方寫書的序程lacsaP
。睬理予不釋注對機算計時序程行執。置位的現出以可格空何任在放以可釋注。示表語漢或語英用以可,寫書要需據根們人由容內的釋注。)/\*、*/\用可也(釋注為稱字文的間號括大對一,中序程在
用使的統係言語lacsaPeerF、三
。用使的lacsaPeerF習學來就們我麵下,lacsaPeerF是統係言語lacsaP的用使賽競學息信,前目
lacsapeerf
動啟的統係.1
。統係動啟可即,EXE.pf序程動啟的下錄目統係行運在lacsapeerf
環成集的示所1圖如現出上幕屏