Pascal語言

Pascal語言

計算機語言
Pascal是通用的高級語言,最初由Niklaus Wirth在1970年代初開發。它被開發用于作為系統學科教授編程,并開發可靠而有效的程序。Pascal是基于Algol的語言,包括許多Algol的構造。Algol 60是Pascal的子集。Pascal提供了幾種數據類型和編程結構。易于理解和維護Pascal程序。[1]
    中文名:Pascal語言 外文名: 所屬學科: 類别:計算機通用的高級程序設計語言 英文名:Pascal 發明人:瑞士Niklaus Wirth教授 意義:最早出現的結構化編程語言 創始時間:1983年

來曆

Pascal是最早出現的結構化編程語言,具有豐富的數據類型和簡潔靈活的操作語句,适于描述數值和非數值的問題。

正因為上述特點,Pascal語言可以被方便地用于描述各種算法與數據結構。尤其是對于程序設計的初學者,Pascal語言有益于培養良好的程序設計風格和習慣。IOI(國際奧林匹克信息學競賽)把Pascal語言作為三種程序設計語言之一,NOI(全國奧林匹克信息學競賽)把Pascal語言定為唯一提倡的程序設計語言,在大學中Pascal語言也常常被用作學習數據結構與算法的教學語言。

發展

在Pascal問世以來的三十餘年間,先後産生了适合于不同機型的各種各樣版本。其中影響最大的莫過于Turbo Pascal系列軟件。它是由美國Borland公司設計、研制的一種适用于微機的Pascal編譯系統。該編譯系統由1983年推出1.0版本發展到1992年推出的7.0版本,其版本不斷更新,而功能更趨完善。

Turbo Pascal語言是編譯型程序語言,它提供了一個集成環境的工作系統,集編輯、編譯、運行、調試等多功能于一體。Pascal有5個主要的版本,分别是Unextended Pascal、Extended Pascal、Object-Oriented Extensions to Pascal、Borland Pascal和Delphi Object Pascal。其中,Unextended Pascal、Extended Pascal和Object-Oriented Extensions to Pascal是由Pascal标準委員會所創立和維護的,Unextended Pascal類似于瑞士Niklaus Wirth教授和K.Jensen于1974年聯名發表的Pascal用戶手冊和報告,而Extended Pascal則是在其基礎上進行了擴展,加入了許多新的特性。

它們都屬于正式的Pascal标準;Object-Oriented Extensions to Pascal是由Pascal标準委員會發表的一份技術報告,在Extended Pascal的基礎上增加了一些用以支持面向對象程序設計的特性,但它屬于非正式的标準。Borland Pascal和Delphi Object Pascal是由Borland公司專門為其開發的編譯工具設計的Pascal語言,前者是用于DOS的Turbo Pascal系列和Windows 3.x的Turbo Pascal for Windows的傳統高級語言,後者是用于Windows的Delphi和Linux的Kylix的面向對象程序設計語言,它們都不是正式的Pascal标準,具有專利性。但由于Turbo Pascal系列和Delphi功能強大并且廣為流行,Borland Pascal和Delphi Object Pascal已自成為一種标準,為許多人所熟悉。

影響

高級語言發展過程中,PASCAL是一個重要的裡程碑。PASCAL語言是第一個系統地體現了E.W.Dijkstra和C.A.R.Hoare定義的結構化程序設計概念的語言。1971年,瑞士聯邦技術學院尼克勞斯·沃爾斯(N.Wirth)教授發明了另一種簡單明晰的電腦語言,這就是以電腦先驅帕斯卡的名字命名的PASCAL語言。PASCAL語言語法嚴謹,層次分明,程序易寫,具有很強的可讀性,是第一個結構化的編程語言。它一出世就受到廣泛歡迎,迅速地從歐洲傳到美國。沃爾斯一生還寫作了大量有關程序設計、算法和數據結構的著作,因此,他獲得了1984年度“圖靈獎”。

應用

在中國的信息學奧林匹克競賽中,過去比較常用的Pascal編程工具是Turbo Pascal,20世紀Freepascal普及。Turbo Pascal是DOS下的一種16位編程工具,在Delphi出現之前,它是世界上最多人使用的Pascal編程工具,擁有編譯速度極快的先進編譯器和功能強大而又簡便易用的集成開發環境(IDE),在微機程序員中廣為流行,正是它的出現奠定了Pascal在DOS/Windows平台上不可動搖的根基,20世紀常見的版本有Turbo Pascal 5.5、Turbo Pascal 6.0和Borland Turbo Pascal with Objects 7.0。Turbo Pascal 6.0與Turbo Pascal 5.5相比,主要是IDE更為強大,而其程序設計功能改變不大,隻是增加了一些新的功能,例如可以内嵌asm彙編語句等。

而Borland Turbo Pascal with Objects 7.0(簡稱Borland Pascal 7.0)則有了新的飛躍,首先是IDE進一步加強,提供了程序浏覽器,然後是程序設計功能有了很大的提升,新增了一些十分有用的标準子程序,支持比較完善的面向對象程序設計功能,并提供了DOS實模式、DOS保護模式和Windows模式三種程序編譯模式,能夠編寫出可以使用擴充内存(XMS)的保護模式應用程序或者在Windows 3.x下運行的Windows程序,另外還提供了一個對象窗口庫(OWL),使用它可以快速的開發出具有一緻的視窗界面(DOS或Windows 3.x)的應用程序。Borland Pascal 7.0在1992年推出,是Turbo Pascal系列在DOS下的最後版本。

下面列出Turbo Pascal的編年史:

1983 Turbo Pascal 1.0

Turbo Pascal 2.0

Turbo-87 Pascal 提高實數運算速度并擴大值域

1985 Turbo Pascal 3.0 增加圖形功能

Turbo BCD Pascal 特别适合應用于商業

1987 Turbo Pascal 4.0 提供集成開發環境(IDE),引入單元概念

1988 Turbo Pascal 5.0 增加調試功能

1989 Turbo Pascal 5.5 支持面向對象的程序設計(OPP)

1990 Turbo Pascal 6.0 提供面向對象的應用框架和庫(Turbo Vision)

1992 Turbo Pascal 7.0 面向對象的應用系統、更完善的IDE

Turbo Vision 2.0

1993 Borland Pascal 7.0 開發 Object Windows庫

(For Windows) 提供對OLE多媒體應用開發的支持

1995 Delphi Visual Pascal

20世紀,随着Turbo Pascal逐漸被淘汰,全國信息學奧林匹克競賽決賽(NOI)和國際信息學奧林匹克競賽(IOI)已經指定Free Pascal為比賽使用的Pascal編程工具。Free Pascal是由一個國際組織開發的32位Pascal編程工具,屬于共享軟件,可用于各種操作系統。根據編譯選項的不同,它可以使用Borland Pascal兼容語法、Delphi 2 Object Pascal語法或者其它語法進行編寫程序。

由于它擁有32位的編譯器,所以理論内存達到了4GB,而且一直在更新發展中,因此它的功能比Borland Pascal更加強大,擁有許多現代程序設計的特征,但同時也很不成熟,存在很多漏洞。Free Pascal正處于發展初期,相應的函數庫十分少,對程序員的吸引力遠比不上擁有VCL和CLX的Delphi和Kylix,但是它的這些不同于Turbo Pascal的特征使聯賽選手們需要改進自己的算法(簡單地說就是時間換空間)。

Pascal競賽的輔導用書有很多,最經典的有《全國青少年信息學奧林匹克聯賽培訓教材》。

标準數據類型

Pascal向程序設計者提供了豐富的數據類型,它們用于專門的目的,但卻都是由簡單的、非構造型的數據類型所構成的。本節介紹Turbo Pascal中最為基本的幾種數據類型:整型、實型、布爾型和字符型。它們都是系統定義的簡單數據類型,稱為标準數據類型,其對應的名字稱為标準标識符。

整型

一個整型數據用來存放整數,整型數據可以是正整數、負整數和整數零。

Turbo Pascal中的整型常數必須按規定嚴格書寫。

Turbo Pascal支持五種預定義整型,它們是短整型(Shortint)、整型(Integer)、長整型(Longint)、字節型(Byte)和字類型(Word),每一種類型規定了相應的整數取值範圍以及所占内存字節數(一個字節為8個二進制位)。因此,用戶在具體編程定義變量類型時,要根據它們的特點選用适當的類型,以達到理想的效果。當兩個不同範圍類型的操作數進行運算時,得到的結果屬于較大範圍的類型。如下表所示。

Turbo Pascal語言規定可以對整型數據進行算術運算符+、一、*、Div(取商)、Mod。

它們分别表示加、減、乘、整除和取餘。這五種運算,要求參加運算的兩個數都是整型數,運算結果也是整型數。前三種運算與一般的算術運算加、減、乘相同。Div整除運算,是兩個整型數相除取整數部分(商的整數部分),得到整型結果。Mod取餘運算,是兩個整型數相除取餘數,餘數的符号與被除數符号相同。例如:

3 Div 2 = 1 5 Div 7 =0

6 Div (-4) = - 1 (-12) Div (-5) =2

7 Mod 4 = 3 (14) Mod (-4) =2

(-18) Mod (-6) = 0 6 Mod l7 =6

由此可見,a Mod b,所得結果的符号與a相同,其值(絕對值)在0~∣b∣-1之間。運算符Mod與Div之間有如下關系:

a Mod b = a – (a Div b) * b(b<>0)

其中Mod運算的結果的符号與a的符号相同。

利用以上兩種運算可以對正整數進行分離。例如:

n為四位數8531,可用下法分離出它的個、十、百、千位。

8531 Mod l0 = 1 (個位數)

(8531 Mod l00) Div l0 = 3 (十位數)

(8531 Mod l000) Div l00 = 5 (百位數)

8531 Div l000 = 8 (千位數)

利用 a Mod b可以判斷a能否被b整除。當a Mod b = 0時,a能被b整除。

實型

一個實型數據用來存放實數。實型數據可以是正實數、負實數和實數零。實型數據一般用小數或指數形式(亦稱科學表示法)表示。例如:

+1993,33,3.5E+8(=3.5×105),-0.5E-3(=-0.5×10-3,),-20.0,,0.0等都是合法實型數。

Turbo Pascal支持一種預定義實型,它們是基本實型(Real)、單精度實型(Single)、雙精度實型(Double)、擴展實型(Extended)和裝配實型(Comp)。每一種類型規定了相應的實數取值範圍和所占内存字節數,以及它們所能達到的精度,即有效數字位數。因此,用戶在具體編程時應根據以上的參數适當選用,以達到最佳效果。如下表所示。

對于此類實型數據,若其絕對值大于上界,則産生上溢;絕對值小于下界,則産生下溢,下溢導緻結果為0。Comp類型的取值範圍是-263+1~238-1之間的整數,相當于十進制的-9.218~9.218。由于Comp類型的數據表示成二進制形式的數,這種類型的變量有時處理起來比較方便,特别對于數值很大的整數間的計算,這種數據類型很有用。

Turbo Pascal語言允許實型數使用下列運算符進行運算。

運算符:+、-、*、/

分别表示加、減、乘和除。其中"/"叫實數除,即使兩個整型數相除,其結果也總是實型,如: 7/2=3.5 6/3=2.0

字符型

用标準标識符Char标明字符型。字符型數據可以是字母、符号、數字(0-9)等ASCII碼的所有字符。Turbo Pascal支持擴展ASCII碼,共包括256個字符。但非印刷字符是不能在标準顯示上顯示或打印輸出。在計算機内部,字符集的元素是以該元素在字符集内的順序位置來标記的,位置取值範圍為0~255,我們稱這些整數為字符在字符集内的序數值或序号。每個字符型數據在内存中占一個字節。将字符用單引号括起來,即成字符常數,如,’X’,’7’,’?’。字符常數可按字符的序數值确定大小關系,也就是說它們的大小由它們所對應的ASCII碼值決定,如:’Y’,’Z’,’A’<’a’。

由于采用ASCII碼,字符依ASCII碼序号排列。這樣,字符與ASCII碼序号有一一對應的映射關系。

布爾型

一個布爾型數據用來存放邏輯值,或稱布爾值。Turbo Pascal支持預定義布爾型,以标準标識符Boolean表示。Boolean一詞,系根據19世紀英國數學家George boole (1815-1864)的名字而得,George boole為現代布爾代數之父。布爾型數據的值隻有兩個:True(邏輯真)和False(邏輯假)。布爾型是順序類型,規定False

邏輯運算的結果隻有兩個:True(真)和False(假)。Turbo Pascal提供了六種關系運算符和四種邏輯運算符:

=(等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、<>(不等于)

NOT(非)、AND(與)、OR(或)、XOR(異或)

運算關系

函數

标準函數。Turbo Pascal語言提供了自變量為整型量的标準函數有順序函數算術函數和轉換函數等。

标準函數是Turbo Pascal語言預先定義的,它們實際上是能完成特定功能的稱步子程序的程序段。每個标準函數都用一個标識符來标識,每個标準函數都能完成一個特定的功能,在程序中可以直接調用它們。Turbo Pascal語言中某些标準函數與數學中的函數有相似之處。

整數類型函數

整型是順序類型,即所有的整型數都是按一定的順序排列的。如3的後序數是4,350的後序數是351。以後介紹的布爾型、字符型、枚舉類型和子界類型等都是順序類型。順序函數可以對順序類型數據進行操作,但要注意它們自變量的取值範圍。

①前趨函數:Pred(x)函數值為x-l,例如:

Pred (6)=5 Pred (-21)=-22

②後繼函數:Succ (x)函數值為x+l,例如:

Succ (l5)=16 Succ (-114)= -113

③絕對值函數:Abs (x)函數值為︱X︱,例如:

Abs (-119)=119 Abs (101)=101

④平方函數:Sqr (x)函數值為X2,例如:

Sqr (-5)=,25 Sqr (l0)= 100

以上四個函數的結果仍是整型數。

⑤奇函數:Odd (x),函數的結果為布爾型。當X為奇數時,函數值為true;當X為偶數時,函數值為false。例如:

Odd (13)= True Odd (16)= False

⑥字符函數:Chr (X),函數值是序号的ASCII字符,屬字符型。例如:

Chr (65)=’A’ Chr (32)=’ ’

實數類型函數

在下列算術函數中,X可以是實型或整型數的表達式。對于函數Abs和Sqr,其結果類型和變量X的類型相同,其他算術函數的結果類型都是實型。

絕對值函數Abs(x):函數值為x的絕對值

平方函數Sqr(x):函數值為x的平方

小數函數Frac(x):函數值為x的小數部分

整數函數Int(x):函數值為x的整數部分

正弦函數Sin(x):函數值為x的正弦,其申,的單位為弧度

餘弦函數Cos(x):函數值為x的餘弦,其中,的單位為弧度

指數函數Exp(x):函數值為了ex

對數函數Ln(X):函數值為x的自然對數

平方根函數的Sqrt(x):函數值為x的平方根

反正切函數Arctan(x):函數值為x的反正切,單位為弧度

随機函數Random:無自變量時,函數值取(0,1)間的随機小數;有自變量且為Word類型時,函數值取(0,自變量)間的随機整數。

字符類型函數

Turbo Pascal語言提供如下自變量為字符型的标準函數,其中Chr為字符型。

後繼函數Succ (ch):例如,Succ (’8’)=’9’ Succ (’E’)=’F’

對字符集的最後一個字符,Succ函數無意義。

前趨函數Pred (ch):例如,Pred (’7’)=’6’ Pred (’B’)=’ A’

序數函數Ord (ch)::給出字符ch在ASCII字符集中的序号,結果為整型。

注意:Ord (’7’)<>7,正确的是:Ord (’7’)=Ord(’0’)+7=48+7=55

若ch是數字字符,則Ord (ch)-Ord ('0')是該數字字符的數值。例如:Ord (’7’)-Ord(’0’)=7

前面介紹的字符函數Chr (i)是Ord (ch)的逆函數。例如:

Chr (55)= ’7’ Chr (Ord(’A’))=’A’

布爾類型函數

Turbo Pascal語言提供布爾型函數主要是幾個字符型函數。

Ord (B)例如:Ord (false)=0 Ord (true)=1

表達式

運算是對數據進行加工處理的過程,得到運算結果的數學公式或其它式子統稱為表達式。表達式可以是常量也可以是變量或算式,在表達式中又可分為:算術表達式、邏輯表達式和字符串表達式。

1、算術表達式:

算術表達式是最常用的表達式,又稱為數值表達式。它是通過算術運算符來進行運算的數學公式。我們先來看Visual Basic中的算術運算符:

算術運算符

運算符表達式說明舉例

* X*Y 求X乘Y的值 6*7=42

/ X/Y 求X除Y的值(浮點數運算) 2.76/1.2=2.3

div X div Y 求X除Y的整數商(對整型數計算) 25 div 5=5

Mod X mod Y 求X除Y的餘數(對整型數運算) 25 mod 4=1

+ X+Y 加法運算 32+2=34

- X-Y 減法運算 48-21=27

由于Visual Basic隻能識别按其格式書寫的數學表達式,所以必須将我們常用的數學表達式轉換成Visual Basic表達式。例如:

數學式 Visual Basic表達式

2、邏輯運算

邏輯運算的結果隻有兩個:True(真)和False(假)。Visual Basic提供了六種關系運算符和四種邏輯運算符:

=(等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、<>(不等于)

NOT(非)、AND(與)、OR(或)、XOR(異或)

運算關系

p q NOT p p AND q p OR q

True True False True True

True False False False True

False True True False True

False false True False False

例如:5>3 結果為 True, “a”>”b” 結果為False。

3、表達式的運算優先順序

在進行表達式的轉換過程中,必須了解各種運算的優先順序,使轉換後的表達式能滿足數學公式的運算要求。運算優先順序為:

括号→函數→乘方→乘、除→加、減→字符連接運算符→關系運算符→邏輯運算符

如果同級的運算是按從左到右次序進行;多層括号由裡向外。

例:

(10+6)*3^2*COS(1)/2*8+7

① ④ ③ ⑤ ② ⑥ ⑦ ⑧

Sqrt(Abs(p/n-1))+1

④ ③ ① ② ⑤

Pascal字符與符

1.标識符

(1)标識符的定義:标識符就是以字母開頭的字母數字序列,有效長度為63個字符,并且大小寫等效。可以用來标示常量、變量、程序、函數等。例如例1.1中的Area(程序名),pi(符号常量),s、r(變量名)都是标識符。

(2)标識符的分類:

a.保留字(關鍵字)

所謂保留字是指在Pascal語言中具有特定的含義,你必須了解它的含義,以便于正确的使用,否則會造成錯誤。标準Pascal語言中的保留字一共有35個,Turbo Pascal語言一共有51個。下面是Pascal語言的保留字:

AND,ARRAY,BEGIN,CASE,CONST,DIV,DO,DOWNTO,ELSE,END,FILE,FOR,FUNTION,GOTO,IF,IN,LABEL,MOD,NIL,NOT,OF,OR,PACKED,PROCEDURE,PROGRAM,RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,VAR,WHILE,WITH等

b.标準标識符:指Pascal語言預先定義的标識符,具有特殊含義。

以下列舉了Turbo Pascal語言部分常用的标準表識符:

标準常量False Maxint True

标準類型Boolean Char Real  Integer

标準函數Abs Arctan Chr Cos Eof Eoln Exp

Ln  Odd  Ord Pred  Round Sin  Sqr

Sqrt  Succ Trunc

标準過程Dispose Get  New Pack  Page  Put  Read

Readln Reset  Rewrite Unpack  Write Writeln

标準文件Input Output

c.用戶自定義标識符:由你自己根據需要來定義。

(1)選用的标識符不能和保留字相同。

(2)語法上允許預定義的标準标識符作為你自己定義的标識符使用,但最好還是不要用。

以下列舉了你自己在定義标識符時可以用的字符:

A..Z,a..z,0..9和_(下劃線),其中首位必須是字母,字母不區分大小寫。

2.2Pascal數據類型

數據是程序設計的一個重要内容,其重要特征----數據類型,确定了該數據的形、取值範圍以及所能參與的運算。

Turbo Pascal提供了豐富的數據類型,這些數據類型可以分為三大類:簡單類型、構造類型和指針類型,其中簡單類型可以分為标準類型(整型、實型、字符型和布爾型)和自定義類型(枚舉型和子界型),構造類型可以分為數組類型、集合類型、記錄類型和文件類型。這些數據類型中除了指針類型是動态數據類型外,其他的都是靜态數據類型。在這些數據類型中的簡單類型都是有序類型,除了實型以外的簡單類型都是順序類型,所謂順序類型就是他們的值不僅是有序的而且是有順序号。

在這裡主要介紹整型、實型、字符型和布爾型四種常用的數據類型。

1.整型

一個整型數據用來存放整數。Turbo Pascal支持五種預定義整型,它們是shortint(短整型)、integer(整型)、longint(長整型)、 byte(字節型)和 word(字類型),Turbo Pascal分别用相同的名字作為他們的标識符。每一種類型規定了相應的整數取值範圍以及所占用的内存字節數。

類型 數值範圍 占字節數 格式

shortint -128..128 1  帶符号8位

integer   -32768..32767  2   帶符号16位

longint -2147483648..2147483647  4  帶符号32位

byte 0..255  1  不帶符号8位

word 0..65535  2  不帶符号16位

Turbo Pascal規定了兩個預定義整型常量标識符maxint和maxlonint,他們各表示确定的常數值,maxint為32767, longint為2147483647,他們的類型分别是integer 和longint

2.實型

一個實型數據用來存放實數。Turbo Pascal支持五種預定義實型,它們是real(基本實型)、 single(但精度實型)、double(雙精度實型)、extended(擴展實型)、comp(裝配實型),Turbo Pascal分别用相同的名字作為他們的标識符。每一種類型規定了相應的實數取值範圍、所占用的内存字節數以及它們所能達到的精度

類型數值範圍占字節數有效位數

real 2.9e-39..1.7e38 6 11..12

single 1.5e-45..3.4e38 4 7..8

double 5.0e-324..1.7e308 8 15..16

Turbo Pascal支持兩種用于執行實型運算的代碼生成模式:軟件仿真模式和80x87浮點模式。除了real可以在軟件仿真模式下直接運行以外,其他類型必須在80x87浮點模式下運行。

3.布爾型

一個布爾型數據用來存放邏輯值(布爾值)。布爾型的值隻有兩個:false和true,并且false的序号是0,true的序号是1。false 和true都是預定義常數标識符,分别表示邏輯假和邏輯真。并且true

4.字符型

字符型用char作為标識符。字符型必須用單引号括起來,字母作為字符型時,大小寫是不等價的,并且字符型隻允許單引号中有一個字符,否則就是字符串。

2.3常量與變量

1.常量

(1)常量:在某個程序的整個過程中其值不變的量。

(2)常量定義:常量定義出現在說明部分。它的語法格式是:

const

<常量标識符>=<常量>;

...

<常量标識符>=<常量>;

常量标識符的類型由定義它的常量的類型決定。例如:const a=12 隐含說明a是整型;const r=3.21 隐含說明r是實型......

(3)常量定義部分必須以保留字const開頭,可以包含一個或幾個常量定義,而且每個常量均以分号結束。

(4)Turbo Pascal類型常量

類型常量,又稱變量常數,它是Turbo Pascal的一個擴充特性。類型常量的定義與标準Pascal規定的常數定義和變量說明有所區别。類型常量定義的語法格式:

const

<簡單類型常量标識符>:簡單類型=常數;

例如:

const

counter:integer=0;

flag:boolean=true;

index:0..100=0;

2.變量

(1)變量:在某個程序中的運行過程中其值可以發生改變的量

(2)變量說明:變量說明出現在說明部分。它的語法格式是:

var

<變量标識符列表>:<類型>;

...

<變量标識符列表>:<類型>;

其中,保留字var表示開始一個變量說明部分。變量标識符列表是一個用逗号隔開的标識符序列,冒号後面的類型是類型标識符。每個變量說明均以分号結束。

program (程序名);

var

定義變量如:integer、real、long int 、short int、boolean(此為,标志的變量)

begin

程序開始

例如:

var

a,b,c:integer;

m,n:real;

2.4 标準函數

1.算術函數

函數标識符  自變量類型 意義 結果類型

abs 整型、實型 絕對值 同自變量

arctan 整型、實型 反正切 實型

cos 整型、實型 餘弦 實型

exp 整型、實型 指數 實型

frac   整型、實型 小數部分 實型

int 整型、實型 整數部分 實型

ln 整型、實型 自然對數 實型

pi  無自變量 圓周率 實型

sin 整型、實型 正弦 實型

sqr整型、實型平方同自變量

sqrt整型、實型平方根實型

例:abs(-4)=4abs(-7.49)=7.49arctan(0)=0.0

sin(pi)=0.0cos(pi)=-1.0frac(-3.71)=-0.71

int(-3.71)=-3.0sqr(4)=16sqrt(4)=2

2.标準函數

函數标識符自變量類型意義結果類型

odd 整型判斷奇數布爾型

pred離散類型求前趨同自變量

succ離散類型求後繼同自變量

例:odd(1000)=falsepred(2000)=1999succ(2000)=2001

odd(3)=truepred('x')='wsucc('x')='y'

3.轉換函數

函數标識符自變量類型意義 結果類型

chrbyte自變量對應的字符 字符型

ord離散類型自變量對應的序号longint

round實型四舍五入longint

trunc 實型截斷取整longint

例:chr(66)='B'ord('A')=65round(-4.3)=-5trunc(2.88)=2

4.雜類函數

函數标識符自變量類型意義結果類型

random 無自變量 [0,1間的随機實數real

random word [0,自變量間的随機整數) word

randomize  無自變量初始化内部随機數産生器longint

upcase 字符型 使小寫英文字母變為大寫字符型

downcase 字符型 使小寫英文字母變為大寫字符型

2.5運算符和表達式

1.運算符和優先級

(1)運算符

是實型,如果全部的運算對象都是整型并且運算不是除法,則結果為整型,若運算是除法,則結果是實型a.算術運算符

運算符運算運算對象結果類型

+加整型、實型隻要有一個運算對象是實型,結果就

-減整型、實型是實型,如果全部的運算對象都是整

*乘整型、實型型并且運算不是除法,則結果為整型,

/除整型、實型若運算是除法,則結果是實型。

div整除整型整型

mod取餘整型整型

b.邏輯運算符

運算符運算運算對象結果類型

not邏輯非布爾型布爾型

and邏輯與布爾型布爾型

or邏輯或布爾型布爾型

xor邏輯異或布爾型布爾型

c.關系運算符

運算符運算運算對象結果類型

=等于簡單類型布爾型

<> 不等于 簡單類型布爾型

<小于簡單類型布爾型

>大于簡單類型布爾型

<=小于等于簡單類型布爾型

>=大于等于簡單類型布爾型

(2)優先級

運算符優先級

not1(高)

*,/,div,mod,and2

xor,+,-,or 3

in,=,<>,>=,<=,<>4(低)

2.表達式

(1)算術表達式:算術表達式是由算術運算符連接常量、變量、函數的式子。算術表達式中各個運算符的次序為:()-->函數-->*,/,div,mod-->+,1

(2)布爾表達式:TurboPascal提供給布爾表達式以下基本操作:邏輯運算和關系運算。

(3)數學上的表達式與pascal語言表達式的區别

數學表達式PASCAL表達式注意

2a2*a*号不能省略

a÷ba/b除号的寫法

a≠ba<>b不等号的寫法

a≤ba<=b 小于等于号的寫法

a≥ba>=b大于等于号的寫法

主要語句:

讀入:Read/ReadLn:讀入内容/讀入内容并将讀入指針轉到下一行。

輸出:Write/WriteLn:輸出内容/輸出内容并将輸出指針轉到下一行。

賦值:<變量>:=<表達式>

判斷:ifcase

循環:forwhileuntil

退出:break(跳出循環),exit(跳出過程/函數).halt(終止程序)

程序設計

單元:

PASCAL語言的程序中,通過在開頭使用uses命令,說明使用的單元,語法是:

uses<單元名稱>

标準庫單元:System、DOS、CRT、Printer、Graph、Graph3、Turbo3、Overlay

單元的結構

單元的程序類似于一般的源程序,結構一般如下:

unit<單元名稱>

interface

uses<單元名稱表>;

<公用說明>

implementation

uses<單元名稱表>;

<私有說明>

<過程和函數程序段>

begin<開始>

...<語句>

end.<結束>

可以看出,interface一節接就相當于C++中類的public部分,uses相當于類的繼承,implementation相當于private部分,初始化部分相當于構造函數。

面向對象的程序設計:

面向對象的程序設計就是利用pascal的單元進行設計。

pascal有object關鍵字,就是用于面向對象的程序設計,使用起來,程序的結構更加清晰。

語法:

object

Field;

Field;

...

Method;

Method;

end;

相關詞條

相關搜索

其它詞條