PASCAL語言簡(jiǎn)介_第1頁
PASCAL語言簡(jiǎn)介_第2頁
PASCAL語言簡(jiǎn)介_第3頁
PASCAL語言簡(jiǎn)介_第4頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.第一個(gè)程序Pascal 語言的編譯器有很多,我們這里以Dev-Pascal 為主要編程工具。該軟件界面如下:1.點(diǎn)擊 New source file 按鈕新建一源文件3.編譯并運(yùn)行2.輸入代碼并保存,保存路徑不得有中文字符我們輸入如下代碼后編譯運(yùn)行。1program my_program; 程序首部 , 程序名或簡(jiǎn)單說明 2begin程序開始的標(biāo)志 3write('Hello,World'); 屏幕上輸出單引號(hào)下的內(nèi)容 4readln;等待操作者按一次回車 5end.程序結(jié)束的標(biāo)志 如果沒有輸入錯(cuò)誤的話,計(jì)算機(jī)應(yīng)能在黑色背景上顯示“Hello,World ”。例:計(jì)算 a+b

2、 的值。1 program circle;2 var3a,b,x:integer;定義變量 4 begin5 a:=100;.6 b:=50;7 x:=a+b;8writeln('a+b=',x);輸出并換行 9 readln;10 end.Pascal字符與符號(hào)1 標(biāo)識(shí)符(1)標(biāo)識(shí)符的定義:標(biāo)識(shí)符就是以字母開頭的字母數(shù)字序列,有效長(zhǎng)度為63 個(gè)字符,并且大小寫等效。可以用來標(biāo)示常量、變量、程序、函數(shù)等。(2) 標(biāo)識(shí)符的分類:a. 保留字 ( 關(guān)鍵字 )所謂保留字是指在Pascal語言中具有特定的含義,你必須了解它的含義,以便于正確的使用,否則會(huì)造成錯(cuò)誤。下面是Pascal 語

3、言的保留字 :ANDARRAYBEGIN CASE CONSTDIVDODOWNTOELSEENDFILEFORFUNTION GOTOIFINLABELMODNILNOTOFORPACKED PROCEDUREPROGRAM RECORD REPEAT SETTHENTOTYPEUNTILVARWHILEWITHb. 標(biāo)準(zhǔn)標(biāo)識(shí)符:指Pascal語言預(yù)先定義的標(biāo)識(shí)符,具有特殊含義。以下列舉了 Turbo Pascal語言部分常用的標(biāo)準(zhǔn)表識(shí)符:標(biāo)準(zhǔn)常量FalseMaxintTrue標(biāo)準(zhǔn)類型BooleanCharRealInteger標(biāo)準(zhǔn)函數(shù)AbsArctanChrCosEofEolnExpLnO

4、ddOrdPredRoundSinSqrSqrtSuccTrunc標(biāo)準(zhǔn)過程DisposeGetNewPackPagePutReadReadlnResetRewriteUnpackWriteWriteln標(biāo)準(zhǔn)文件InputOutputPascal數(shù)據(jù)類型Pascal 提供了豐富的數(shù)據(jù)類型, 在這里主要介紹整型、 實(shí)型、字符型和布爾型四種常用的數(shù)據(jù)類型。1. 整型一個(gè)整型數(shù)據(jù)用來存放整數(shù)。 Pascal 支持五種預(yù)定義整型, 它們是 shortint(短整型)、 integer (整型)、 longint (長(zhǎng)整型)、 byte (字節(jié)型)和 word (字類型)。每一種類型相應(yīng)的整數(shù)取值范圍以及

5、所占用的內(nèi)存字節(jié)數(shù)見下表:類型數(shù)值范圍占字節(jié)數(shù)格式;.ShorIint-128-1281帶符號(hào)8 位Integer-3276-327672帶符號(hào)16 位LongInt-2147483648-21474836474帶符號(hào)32 位Byte0-2551帶符號(hào)8 位Word0-655352帶符號(hào)16 位Pascal 規(guī)定了兩個(gè)預(yù)定義整型常量標(biāo)識(shí)符maxint 和 maxlongint ,他們各表示確定的常數(shù)值,maxint 為 32767 , longint 為 2147483647 ,他們的類型分別是integer 和 longint2. 實(shí)型一個(gè)實(shí)型數(shù)據(jù)用來存放實(shí)數(shù)。 Pascal 支持五種預(yù)定義

6、實(shí)型, 它們是 single(單精度實(shí)型) 、real(基本實(shí)型) 、 double (雙精度實(shí)型) 、 extended(擴(kuò)展實(shí)型) 、 comp(裝配實(shí)型) 。每一種類型相應(yīng)的實(shí)數(shù)取值范圍、所占用的內(nèi)存字節(jié)數(shù)以及它們所能達(dá)到的精度見下表:類型數(shù)值范圍占字節(jié)數(shù)有效位數(shù)編譯開關(guān)Single1.5e-45-3.4e+3847-8$N+Real2.9e-39-1.7e+38611-12Double5.0e-324- 1.7e+308815-16$N+Extended1.9e-4932-1.1E+49321019-20$N+Comp-263 +1-2 63 -1 之間的整數(shù)819-20$N+除 re

7、al 型外,其它幾種關(guān)數(shù)類型使用時(shí)必須要打開編譯開關(guān)才可使用。例如下面的程序:1 $n+2 program compute;3 var4 a,b:integer;5 divide:Extended;6 begin7 write('Enter a,b=');ReadLn(a,b);8 divide:=a/b;9 writeln(a,'/',b,'=',divide);10 readln;11 end.3. 布爾型一個(gè)布爾型數(shù)據(jù)用來存放邏輯值(布爾值)。布爾型的值只有兩個(gè):false 和 true ,并且 false的序號(hào)是0, true 的序號(hào)是1

8、。 false 和 true 都是預(yù)定義常數(shù)標(biāo)識(shí)符,分別表示邏輯假和邏輯真。并且 true<false 。 boolean 是布爾型的標(biāo)識(shí)符。4.字符型字符型用char 作為標(biāo)識(shí)符。字符型必須用單引號(hào)括起來,字母作為字符型時(shí),大小寫是不等價(jià)的,并且字符型只允許單引號(hào)中有一個(gè)字符,否則就是字符串。常量和變量;.1. 常量 :它的語法格式是:const<常量標(biāo)識(shí)符 >=< 常量 >例如:constcounter:integer=0;flag:boolean=true;index:0.100=0;2.變量 :它的語法格式是:var<變量標(biāo)識(shí)符列表>:<

9、 類型 >例如:vara,b,c:integer;m,n:real;標(biāo)準(zhǔn)函數(shù)1.算術(shù)函數(shù)函數(shù)標(biāo)識(shí)符自變量類型意義結(jié)果類型abs整型、實(shí)型絕對(duì)值同自變量arctan整型、實(shí)型反正切實(shí)型cos整型、實(shí)型余弦實(shí)型exp整型、實(shí)型指數(shù)實(shí)型frac整型、實(shí)型小數(shù)部分實(shí)型int整型、實(shí)型整數(shù)部分實(shí)型ln整型、實(shí)型自然對(duì)數(shù)實(shí)型pi無自變量圓周率實(shí)型sin整型、實(shí)型正弦實(shí)型sqr整型、實(shí)型平方同自變量sqrt整型、實(shí)型平方根實(shí)型例: abs(-4)=4abs(-7.49)=7.49arctan(0)=0.0sin(pi)=0.0cos(pi)=-1.0frac(-3.71)=-0.71int(-3.71

10、)=-3.0sqr(4)=16sqrt(4)=22. 標(biāo)準(zhǔn)函數(shù)函數(shù)標(biāo)識(shí)符自變量類型意義結(jié)果類型odd整型判斷奇數(shù)布爾型pred離散類型求前趨同自變量succ離散類型求后繼同自變量;.例: odd(1000)=falsepred(2000)=1999succ(2000)=2001odd(3)=truepred('x')='wsucc('x')='y'3.轉(zhuǎn)換函數(shù)函數(shù)標(biāo)識(shí)符自變量類型意義結(jié)果類型chrbyte自變量對(duì)字符型應(yīng)的字符ord離散類型自變量對(duì)longint應(yīng)的序號(hào)round實(shí)型四舍五入longinttrunc實(shí)型截?cái)嗳≌鹟ongin

11、t例: chr(66)='B'ord('A')=65round(-4.3)=-5trunc(2.88)=24 雜類函數(shù)函數(shù)標(biāo)識(shí)符自變量類型意義結(jié)果類型random無自變量0,1 間的隨機(jī)實(shí)數(shù)realrandomword0,自變量間的隨機(jī)整數(shù) )wordrandomize無自變量初始化內(nèi)部隨機(jī)數(shù)產(chǎn)生器longintupcase字符型使小寫英文字母變?yōu)榇髮懽址蚫owncase字符型使小寫英文字母變?yōu)榇髮懽址瓦\(yùn)算符和表達(dá)式.算術(shù)運(yùn)算符運(yùn)算符運(yùn)算運(yùn)算對(duì)象結(jié)果類型+加整型、實(shí)型-減整型、實(shí)型*乘整型、實(shí)型/除整型、實(shí)型div整除整型整型mod取余整型整型邏輯運(yùn)算符運(yùn)算

12、符運(yùn)算運(yùn)算對(duì)象結(jié)果類型not邏輯非布爾型布爾型and邏輯與布爾型布爾型or邏輯或布爾型布爾型xor邏輯異或布爾型布爾型.關(guān)系運(yùn)算符運(yùn)算符運(yùn)算運(yùn)算對(duì)象結(jié)果類型=等于簡(jiǎn)單類型布爾型;.<>不等于簡(jiǎn)單類型布爾型<小于簡(jiǎn)單類型布爾型>大于簡(jiǎn)單類型布爾型<=小于等于簡(jiǎn)單類型布爾型>=大于等于簡(jiǎn)單類型布爾型優(yōu)先級(jí)運(yùn)算符優(yōu)先級(jí)not1(高 )*,/,div,mod,and2xor,+,-,or3in,=,<>,>=,<=,<>4(低 )表達(dá)式數(shù)學(xué)表達(dá)式PASCAL 表達(dá)式注意2a2*a* 號(hào)不能省略a÷ba/b除號(hào)的寫法aba

13、<>b不等號(hào)的寫法aba<=b小于等于號(hào)的寫法輸入輸出語句1輸出語句:數(shù)據(jù)類型標(biāo)準(zhǔn)場(chǎng)寬實(shí)例輸出結(jié)果整型實(shí)際整數(shù)長(zhǎng)度Writeln(-1)-1Writeln(34)34實(shí)型17Writeln(-11.22)科學(xué)計(jì)數(shù)法Writeln(123456)布爾型4 或 5Writeln(3>5)FalseWriteln(true)True字符型1Writeln( a)A字符串型串長(zhǎng)Writeln( abcd232)Abcd232自定義場(chǎng)寬:例如 :設(shè)置整型時(shí):Writeln(i:6,ch:5);設(shè)置實(shí)型數(shù)據(jù)時(shí):Writeln(r:10:4);2輸入語句:例如:;.Read(a,b,

14、c);Readln(a,b,c);注意:如果輸入語句中有l(wèi)n 則給程序中變量輸入完數(shù)據(jù)后,清空鍵盤緩沖區(qū),沒有l(wèi)n則輸入后不清空鍵盤緩沖區(qū)。Pascal語句結(jié)構(gòu)IF 語句IF 語句的一般格式是:IF 條件THEN語句 1 條件為真時(shí)的響應(yīng)、處理ELSE 語句 2; 條件為假時(shí)的響應(yīng)、處理使用條件語句時(shí)要注意:1、條件語句是一個(gè)語句。IF 、 THEN 、 ELSE 都是語句的一個(gè)部分。所以它只能有一個(gè) “; ”作為分隔符,放在句子的結(jié)束,特別要注意不能放在ELSE之前。2、如果我們的程序只需對(duì)條件為真的情況作出處理,不需要處理?xiàng)l件為假的情況,則 IF 語句省略ELSE 分句,格式變成:3、if

15、 語句可以多層嵌套。嵌套時(shí)為了避免誤解,可以用begin ,end 括起嵌套部分;else 分句一般和最近的if 分句配套:IF 條件THENBEGINif條件 1 then else;ENDELSEBEGINif條件 2 then else;End;例:輸入兩個(gè)數(shù)a,b,輸出較大的數(shù)。1 program tt;23 Var4a,b:integer;5 Begin6write('please input a,b:');78 readln(a,b);9 if a>b then writeln(a)10else writeln(b);1112 end.CASE 語句分情況語句

16、適用于對(duì)一個(gè)條件的多種情況的響應(yīng)。;.格式:case 表達(dá)式of標(biāo)號(hào) 1:語句 1;標(biāo)號(hào) 2:語句 2;標(biāo)號(hào) n:語句 n;else 語句 n+1end;例如:1 program tt;23 Var4x,y:integer;5 Begin67Readln(x);Case x of891:y:=10;102:y:=14;1112 Else y:=45;13 End;14 Writeln(y);1516 end.Repeat 語句:該語句執(zhí)行過程是:( 1) 首先順序執(zhí)行循環(huán)體;( 2) 然后判斷條件表達(dá)式的值,若為假,則返回(1)重新執(zhí)行,若為真,則結(jié)束循環(huán)。例如:從鍵盤輸入非零數(shù),計(jì)算其積,輸

17、入0 結(jié)束,并輸出結(jié)果。1program compute;23 var4 s,x:real;5 begin67s:=1; x:=1;repeat89s:=s*x;10readln(x);1112 until x=0;1314 writeln('s=',s);1516 readln;end.從;.While-do 語句:該語句執(zhí)行過程是:1 當(dāng)語句先判斷后執(zhí)行。2 條件表達(dá)式為假的時(shí)候,退出循環(huán),為真時(shí)繼續(xù)循環(huán)。3 循環(huán) do 后面的一條語句。一般do 后面為復(fù)合語句。4 在循環(huán)體內(nèi)要有改變條件表達(dá)式值的語句即改變循環(huán)變量的語句。否則循環(huán)沒有意義。將出現(xiàn)死循環(huán)或一次也不運(yùn)行。例如

18、求 1-100 之間的偶數(shù)和:1program compute;23 var4 s,i:integer;5 begin6s:=0; i:=2;78 while i<=100 do9 begin10s:=s+i;11i:=i+2;1213end;14writeln('s=',s);1516 readln;end.While與 repeat 的不同點(diǎn)是:1 Repeat 先執(zhí)行后判斷;while 先判斷后執(zhí)行。2 Repeat 條件為真時(shí)結(jié)束循環(huán),為假循環(huán);while 條件為假的時(shí)候結(jié)束循環(huán),為真循環(huán)。3 Repeat 循環(huán)體可以由多條語句組成,while 循環(huán)體只能為一條語

19、句。For 語句遞增型:1 FOR I:=1 TO 10 DO2 BEGIN3 WRITELN (I);4 WRITELN (10-I);5 END;遞減型:1 FOR I:=10 downto 1 DO2 BEGIN3 WRITELN (I);4 WRITELN (10-I);5 END;Continue 語句功能是將循環(huán)控制返回到條件判斷處。Break 語句;.功能是強(qiáng)制退出循環(huán),返回到循環(huán)語句的下一語句。過程與函數(shù)函數(shù)參見下面的例子:Function ba:integer;/無參函數(shù)Function bb(var I,j:integer;k:real);Function bc(var i

20、:integer;j:integer):Boolean;函數(shù)返回值,是用一條賦值語句將結(jié)構(gòu)賦給函數(shù)名。如下例中的第9 句:1 Function abc(N:integer):real;2 Var3 I:integer;s:real;4 Begin5 S:=1;6 For i:=1 to 100 do7S:=s*I;8 F:=s;9 END;1011 Begin12 M:=5;13 Writeln(f(m);/此句調(diào)用函數(shù) f14 End.過程參見下面的例子:Procedure aa;/無參過程Procedure ab(var I,j:integer;k:real);下面是一個(gè)調(diào)用過程的例子:1

21、 program compute;2 var3 m:integer;45 procedure draw1(n:integer);/ 定義了一個(gè)過程6 var7 i:integer;8 begin9for i:=1 to n do10write('*');11 writeln;12end;/過程結(jié)束1314begin15draw1(5);/調(diào)用過程16readln;17end.;.參數(shù)傳遞運(yùn)行下面的程序:1 program local_global;23 var x,y:integer;45procedure p(var i:integer;j:integer);/i為變量參數(shù),

22、j 為值參數(shù)6Begin78 writeln(i:2,j:2);9 i:=2*i;j:=3*j;10writeln(i:2,j:2);1112 end;1314 Begin1516 x:=1;y:=1;17 p(x,y);18 writeln(x:2,y:2);19readln;2021 end.運(yùn)行結(jié)果是: 112 32 1當(dāng)使用變量參數(shù)時(shí),變量參數(shù)將獲得實(shí)際參數(shù)的地址,操作變量參數(shù)即是操作實(shí)際參數(shù)??梢岳斫鉃閮砂谚€匙開同一個(gè)房間。當(dāng)使用值參數(shù)時(shí),值參數(shù)的改變不改變實(shí)際參數(shù)的值。在編寫程序時(shí), 我們有時(shí)需要將過程和函數(shù)中的值傳遞給主程序, 對(duì)于過程有兩種方式:第一種方式是利用全局變量, 第二

23、種是利用變量參數(shù)傳遞。 對(duì)于函數(shù)不僅可以利用上述方式,還可以利用函數(shù)值傳遞。全局變量和局部變量在子程序中定義的變量稱為局部變量,在程序的一開始定義的變量稱為全局變量。全局變量作用域是整個(gè)程序; 局部變量作用域是定義該變量的子程序。 當(dāng)全局變量與局部變量同名時(shí):在定義局部變量的子程序內(nèi),局部變量起作用;在其它地方全局變量起作用。例:全局變量和局部變量的使用。1 program local_global;23 var i,k:integer;45 procedure sub1;6;.7 Var89 i,j:integer;10 Begin11 i:=17;12writeln('i in s

24、ub=',i);1314 writeln('k in sub=',k);15 end;161718 Begin19 i:=2;k:=9;20 writeln('i in main=',i);2122 writeln('k in sub=',k);23 sub1;24 writeln('i in main=',i);25writeln('j in main=',j);/此句要?jiǎng)h除2627 readln;end.上述程序運(yùn)行時(shí)將出現(xiàn)Unknown Identfier ;因?yàn)樽兞縥 在主程序中沒定義。當(dāng)刪除本語句

25、時(shí)。運(yùn)行結(jié)果如下:i in main 2 k in main 9 i in sub 17 k in sub 9 i in main 2程序的遞歸下面的程序是用遞歸的方法逆序輸出字母。1 program exam;234 procedure p;5 var6ch:char;78 Begin9 read(ch);10if ch<>'.' then p;1112 write(ch);13 end;141516 Begin;.17 p;1819 readln;20 end.21222324252627數(shù)組和字符串例:從鍵盤輸入10 個(gè)數(shù),將這10 個(gè)數(shù)逆序輸入,并求這10

26、個(gè)數(shù)的和,輸出這個(gè)和。1 program p1;23Vara:array 1.10 of integer;45i,s:integer;6Begin7for i:=1 to 10 do read(ai);89for i:=10 downto 1 do write(ai,' ');10writeln;1112 s:=0;13 for i:=1 to 10 do s:=s+ai;14 writeln('s=',s);1516 end.Pascal 的下標(biāo)是從1 開始的。例:競(jìng)賽小組共有20 位同學(xué),這學(xué)期每位同學(xué)共參與了三項(xiàng)比賽,請(qǐng)統(tǒng)計(jì)每位同學(xué)的平均分。分析:定義一個(gè)

27、20 行 3 列的二維數(shù)組來存放這些成績(jī)。定義一個(gè)20 個(gè)元素的一維數(shù)組來存放平均分。1234567891011121314program p1;Vara:array 1.20,1.3 of integer;b:array 1.20 of real;i,j:integer;Beginfor i:=1 to 20 doBeginfor j:=1 to 3 do read(ai,j);readln;end; 從鍵盤上讀入20 個(gè)同學(xué)的三次競(jìng)賽成績(jī);.1516for i:=1 to 20 do bi:=0;先將平均分?jǐn)?shù)組清0for i:=1 to 20 doBeginfor j:=1 to 3 do

28、 bi:=bi+ai,j;計(jì)算總分 bi:=bi/3;計(jì)算平均分 end;for i:=1 to 20 do write(bi:5:1);輸出平均分writeln;end.字符串1. 字符串用于存放整批的字符數(shù)據(jù)。通常編程中使用字符串存放字符化了的數(shù)字?jǐn)?shù)據(jù)。如高精度運(yùn)算時(shí)存放操作數(shù)和運(yùn)算結(jié)果。字符串可以看作是特殊的字符串?dāng)?shù)組來處理。當(dāng)然,它也有自已的特點(diǎn)。下面是字符串定義的格式:Vars:string; s1:string15;字符串定義時(shí),如不指定長(zhǎng)度,則按該類型的最大長(zhǎng)度(255 個(gè)字符)分配空間,使用時(shí)最大可用長(zhǎng)度為255 個(gè);如果在中括號(hào)中給出一個(gè)具體的值(1 255 之間),則按這個(gè)

29、值的大小分配空間。使用時(shí),最大的可用長(zhǎng)度即為該值。2. 字符串的輸入、輸出:字符串類型既可按數(shù)組方式輸入、輸出,也可直接輸入、輸出:readln(s) ; writeln(s);多個(gè)字符串輸入時(shí)以回車作為數(shù)據(jù)間的分隔符;每個(gè)readln語句只能讀入一個(gè)字符串。3. 有關(guān)字符串的操作:類返操作回例子作用型值length(s)函 求字符串 s整s:='123456789'數(shù) 的長(zhǎng)度型l:= length(s);l的值為 9復(fù)制 s 中從字s:='123456789'copy ( s,w,k)函符w 開始的 ks1:= copy(s,3,5);s1的值是 '3

30、4567'數(shù)串位將字符串 svar s:string;k,code:integer;轉(zhuǎn)為數(shù)值,beginval(s,k,code)過s:='1234'存在 k 中;程val(s,k,code);code 是錯(cuò)誤代碼write(k);k=1234過 將數(shù)值 i 轉(zhuǎn)i:=1234;str(i,s)str(i,s);程 為字符串 swrite(s);s='1234'在 s 中刪除s := 'Honest Abe Lincoln'Delete(s,w,k)過Delete(s,8,4);從第 w位開程Writeln(s); 'Honest

31、Lincoln' 始的 k 個(gè)字;.符Insert(s1, S, w)過 將 s1 插到 sS := 'Honest Lincoln'程 中第 w位Insert('Abe ', S, 8); 'Abe Lincoln' Pos(c, S)函 求字符 c 在 整S := ' 123.5'數(shù) s 中的位置型i := Pos(' ', S);i的值為 1運(yùn)s1:='1234'+將兩個(gè)字符s2:='5678'算串連接起來s:= s1+s2 ;'12345678'符子界

32、和枚舉子界類型 :當(dāng)某些變量的取值范圍很具體時(shí), 可用子界類型, 它更符合實(shí)際、便于查錯(cuò)和節(jié)省內(nèi)存。定義如下 :type riqi=1.31;zimu='A'.'Z'var day:riqi;ch1:zimu;也可以直接定義:day : 1.31;year:0.200;ch1:'A'.'Z'枚舉類型 :通過預(yù)定義列出所有值的標(biāo)識(shí)符來定義一個(gè)有序集合, 這些值的次序和枚舉類型說明中的標(biāo)識(shí)符的次序是一致的。枚舉類型的形式:(標(biāo)識(shí)符 1, ,標(biāo)識(shí)符n)例如:type daystype=(sunday,monday,tuesday,wed

33、nesday,thursday,friday,saturday)枚舉元素只能是標(biāo)識(shí)符,而不能是數(shù)值常量或字符常量。例如以下的定義是錯(cuò)誤的:type daystype=('sun','mon','tue','wed','thu','fri','sat')枚舉元素是標(biāo)識(shí)符,不要把作為枚舉元素的標(biāo)識(shí)符視作變量名,它不能被賦值。 同一個(gè)枚舉元素不能出現(xiàn)在兩個(gè)或兩個(gè)以上的枚舉類型定義中。例如以下的定義是錯(cuò)誤的:type daytype1=(monday,tuesday);daytype2=(m

34、onday,wednesday);可以將枚舉類型的定義和變量的定義結(jié)合在一起。例如:var a:(monday,tuesday,sunday)枚舉類型屬于順序類型。根據(jù)定義類型時(shí)各枚舉元素的排列順序確定它們的序列,序列號(hào)從 0 開始。例如:已經(jīng)定義daystypeord(sunday)=0,succ(sunday)=monday,pred(friday)=Thursday但是枚舉類型中的第一個(gè)元素沒有前趨,最后一個(gè)元素沒有后繼。Pascal 不允許直接讀寫枚舉值,所以枚舉值的輸出常用case 語句間接的輸出。枚舉值的輸入,則要一一判斷讀;.入字符是否是枚舉類型的標(biāo)識(shí)符。若是才能賦給枚舉變量,否

35、則就會(huì)出錯(cuò)。例如:枚舉值的輸出case day ofsunday:write('sunday');monday:write('monday');tuesday:write('tuesday');wednesday:write('wednesday');thursday:write('thursday');friday:write('friday');saturday:write('saturday');end;集合類型1集合的定義:type 類型名 =set of 基類型例如:typ

36、enum=set of char;varn:num;或varn: set of char;集合的表示:用一組方括號(hào)括號(hào)一組元素來表示,元素之間用逗號(hào)分隔。如:A,B,C,D 有四個(gè)枚舉量的集合'A','B','C','D' 有四個(gè)字符的集合1.20 包含了1 到 20 中所有整數(shù)的集合0 只有一個(gè)元素 0 的單元素集 空集.集合的運(yùn)算:(1)并 (a+b):屬于 a 或?qū)儆?b0.7+0.4 的值為 0.7(2)交 (a*b): 既屬于 a 又屬于 b0.7*0.4 的值為 0.4(3)差 (a-b): 屬于 a 但不屬于b0.7

37、-0.4 的值為 5.7(4)相等 (a=b):a,b 的元素完全一樣0.7=0.4 的值為 false(5)不等 (<>): 元素不一樣0.7<>0.4 的值為 true(6)包含于 (<=):;.0.7<=0.4 的值為 false(7)包含 (>=):0.7>=0.4 的值為 true(8)成員 (in):1 in 0.4 的值為 true.注意事項(xiàng):(1) 集合運(yùn)算相當(dāng)快,在程序中常用集合表達(dá)式來描述復(fù)雜的測(cè)試。如A) 條件表達(dá)式:(ch='T') or (ch='t') or (ch='Y') or (ch='y')可用集合表達(dá)式表示為:ch in 'T','t','Y','y'B)if (ch>=20) and (ch<=50) then .;可寫成: if ch in 20.50 then .;(2) 集合類型是一種使用簡(jiǎn)便,節(jié)省內(nèi)存面又運(yùn)算速度快的數(shù)據(jù)類型。(3)TurboPascal 規(guī)定集合的元素個(gè)數(shù)不超過256 個(gè) (當(dāng)實(shí)際問題所需的元素個(gè)數(shù)大于256時(shí),可采用布爾數(shù)組代替集合類型)。所以如下定義是錯(cuò)誤的

溫馨提示

  • 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)論