複製鏈接
請複製以下鏈接發送給好友

Pascal

(結構化編程語言)

鎖定
Pascal是一種過程式編程語言,由Niklaus Wirth於1968年設計並於1970年發佈,並以法國數學家和哲學家Blaise Pascal的名字命名。Pascal可以運行在多種平台上,例如Windows、Mac OS和各種版本的UNIX/Linux。 [3] 
軟件名稱
Pascal
軟件平台
Windows、Mac OSUNIXLinux [4] 
上線時間
1971年
軟件語言
Pascal
開發商
Niklaus Wirth [5] 

Pascal產生背景

Pascal由瑞士蘇黎世聯邦工業大學Niklaus Wirth教授於六十年代末設計並創立。1971年,以電腦先驅帕斯卡pascal的名字為之命名 [1]  。Pascal語言語法嚴謹,一出世就受到廣泛歡迎,迅速地從歐洲傳到美國。Pascal基於ALGOL編程語言,為紀念法國數學家和哲學家布萊茲·帕斯卡而命名。維爾特後來開發了類似Pascal的Modula-2和Oberon。在開發Pascal之前,維爾特開發了語言Euler,然後開發了Algol-W。
Pascal是最早出現的結構化編程語言,具有豐富的數據類型和簡潔靈活的操作語句。高級語言發展過程中,Pascal是一個重要的里程碑。Pascal語言是第一個系統地體現了E.W.Dijkstra和C.A.R.Hoare定義的結構化程序設計概念的語言。
最初,Pascal在很大程度上但不是完全地為了教授學生結構化編程。很多代學生已使用Pascal作為本科課程的入門語言。Pascal的變種也逐漸地用於從研究項目到PC遊戲嵌入式系統的所有領域。更新的Pascal編譯器存在於廣泛使用它的領域。
GCC,Gnu C編譯器,最初是用Pascal的一種方言Pastel編寫的(見GCC#概觀)。Pascal是Apple Lisa和早期Mac開發使用的高級語言;最初Macintosh操作系統的部分是從Pascal源代碼手工翻譯成Motorola 68000彙編語言的。流行的排版系統TeX是由高德納使用基於DEC PDP-10 Pascal的最初文學編程系統WEB編寫的,而像Total Commander的應用是使用Delphi(即Object Pascal)編寫的。
Object Pascal仍然廣泛用於開發像Skype這樣的Windows應用。

Pascal語言特點

Pascal特點

豐富的數據結構和構造數據結構的方法。除了整型、實型、布爾型和數組外,還提供了字符、枚舉、子域、記錄、集合、文件、指針等類型。由這些數據結構可以方便地描述各種事務元
簡明靈活的控制結構。具體的結構語句有複合語句、如果語句、情況語句、While 語句、Repeat
語句、For 語句和處理記錄變量的分量的縮寫形式———With 語句。
它可稱為第一個結構化程序設計語言
編譯運行效率高。
有利於書寫程序設計語言的編譯程序
嚴格的結構化形式。 [2] 
查錯能力強。
Pascal強調的結構化編程帶來了非結構化語言Fortran之流無法比擬的美和樂趣,Unix崇尚的“小即是美”、“沒有消息就是好消息”。
正因為上述特點,Pascal語言可以被方便地用於描述各種算法與數據結構。尤其是對於程序設計的初學者,Pascal語言有益於培養良好的程序設計風格和習慣。
高級語言發展過程中,PASCAL是一個重要的里程碑。1971年,瑞士聯邦技術學院尼克勞斯·沃爾斯(N.Wirth)教授發明了另一種簡單明晰的電腦語言,這就是以電腦先驅帕斯卡的名字命名的PASCAL語言。PASCAL語言語法嚴謹,編程語言。沃爾斯一生還寫作了大量有關程序設計、算法和數據結構的著作,因此,他獲得了1984年度“圖靈獎”。
⒈ 結構化
Pascal可以方便地書寫出結構化程序,保證了程序的正確性和易讀性。在結構化這一點上,Pascal比其它算法語言更好。
⒉ 數據類型豐富
Pascal是一種強類型語言。它提供了整數型、實數型、字符型、布爾型、枚舉型、子界型以及由以上類型構成的數組類型、集合類型、記錄類型和文件類型。此外,還提供了其它許多語言中所沒有的指針類型。豐富的數據結構和上述的結構化性質,使得Pascal可以被方便地用來描述複雜的算法。
適用性
既適用於數值運算,也適用於非數值運算領域。有些語言只適用於數值計算,有些語言則適用於商業數據處理和管理領域。Pascal的功能較強,能廣泛應用於各種領域。
⒋ 書寫較自由
得益於語句末的分號做分隔符,Pascal允許一行寫多個語句,一個語句可以分寫在多行上,這樣就可以使Pascal程序寫得象詩歌格式一樣優美,便於閲讀,但一行不可超過257個字符。
由於以上特點,許多學校選Pascal作為程序設計課程中的一種主要的語言。它能給學生嚴格而良好的程序設計的基本訓練,培養學生結構化程序設計的風格。

Pascal缺點

傳統PASCAL的標準庫中缺乏對網絡編程的支持,並且僅通過自帶的graph單元難以實現較好的圖形界面(GUI),這些缺點大多需要嵌入彙編語言代碼才能得到解決,缺乏與機器語言的接口。
另一方面,作為一個面向過程的編程語言,和90年代興起的面向對象的語言相比,不利於大型軟件的開發。
儘管Pascal非常流行(然而在八十到九十年代時比21世紀更加流行),依據維爾特的對這種語言的定義來構建Pascal,使它不適合在非教學的場合使用,這遭到了廣泛的批評。 推廣了C語言的Brian Kernighan早在1981年就在他的論文《Why Pascal Is Not My Favourite Programming Language》對Pascal提出了嚴厲的抨擊。

Pascal主要版本

在Pascal問世以來的三十餘年間,先後產生了適合於不同機型的各種各樣版本。其中影響最大的莫過於Turbo Pascal系列軟件。它是由美國Borland公司設計、研製的一種適用於微機的Pascal編譯系統。該編譯系統由1983年推出1.0版本發展到1992年推出的7.0版本,其版本不斷更新,而功能更趨完善。應用最廣泛的是Free Pascal 2.04。
Pascal有6個主要的版本,分別是Action Pascal 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的基礎上增加了一些用以支持面向對象程序設計的特性,但它屬於非正式的標準。
Action 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基本符號

Pascal語言在 OEM-美國 編碼下只能使用以下幾類基本符號
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
數字
1 2 3 4 5 6 7 8 9 0
其他符號
+ - * / = <> <= >= > < ( ):= , . ; : .. ‘ ’ ^ @$ div mod shr shl
運算符
優先級
not,(,)
1(最優先)
*,/,div,mod,and
2
xor,+,-,or
3
不等號<>
4(末優先)
注:Pascal語言除了可以使用以上規定的字符外,不得使用其他任何符號;
注:Pascal中div是整除,mod是求餘;
Free Pascal 中,大寫字母小寫字母沒有區別,只是除了字符串中的字母,即是説:A與a被認作同一個字母。
Pascal中,字符代碼是由ASCII(American Standard Code for Information Interchange,美國信息互換標準代碼)碼進行轉換的。由函數chr(x) (求編號x對應的字符)和ord(x) (求字符x或枚舉型X對應的編號)進行轉換執行。

Pascal開發工具

Turbo Pascal
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提供對OLE應用的支持
1995
Delphi (Object Pascal)
開發Object pascal語言,使能應用於網絡編程操作

Visual Pascal


Free Pascal

2005
DEV Pascal 1.9.2

2008
super pascal

2010
CP Pascal Editor 3.5
可輸入中文,支持一些Free pascal不支持的過程
2011
lazarus 0.9.30
圖形應用程序編輯
2012
Lazarus 1.0
功能更加強大
Pascal是一門編程語言,而Turbo Pascal/Free Pascal是Pascal程序的編譯系統
Turbo Pascal是DOS下的一種16位編程工具,在Delphi出現之前,它是世界上最多人使用的Pascal編程工具,擁有編譯速度極快的先進編譯器和功能強大而又簡便易用的集成開發環境(IDE),在微機程序員中廣為流行,正是它的出現奠定了Pascal在DOS/Windows平台上不可動搖的根基,現常見的版本有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下的最後版本。
Free Pascal
Free Pascal是由一個國際組織開發的32/64位Pascal編程工具,屬於自由軟件,可用於各種操作系統。根據編譯選項的不同,它可以使用Turbo Pascal兼容語法、Delphi 語法或者其它語法進行編寫程序。由於它擁有32/64位的編譯器,而且一直在更新發展中,因此它的功能比Borland Pascal更加強大,擁有許多現代程序設計的特徵。但它對程序員的吸引力比不上擁有VCL和CLX的Delphi和Kylix
Free Pascal是一個在多種版本Pascal和Delphi下的產物,比較成熟的版本是由FreePascal. org發佈的2.2.4版本(最新版本為3.0.0),由於是Pascal上的改版,在FP里加入了很多以前沒有的東西,例如:FillChar系列內存塊賦值語句,用Power代替了**(乘方),但是**還是可以使用。
另外FP加強了與內存的互容性,增大對內存的支持,FP裏的內存限制是TP和BP裏的將近上萬倍。
FP還進一步加強了單元支持、面向對象程序設計的支持、顯卡(聲卡)的支持、圖形高級覆蓋的支持、Windows\Linux\OS/2\..等眾多系統的支持。在FP的較穩定版本中,可以方便的利用Win32編譯模式,編譯出Windows應用程序,與Delphi的功能相當。同時對動態連接庫、控件、數據庫、文件、網絡、OpenGL的深入支持,使得 FP 在各種 Pascal編譯系統中脱穎而出。
更值得提出的是,FP支持Delphi及C++的部分語言,例如:A+=2這樣的C Style語言,在FP裏完美支持。
FP中支持單目、雙目操作符,即所有版本的Pascal的符號和“@”等特殊符號
FP 支持運算符重載,即可以重新自己定義運算符
FP現為競賽推薦工具。
最新發布版本為 2014 年3 月11 日發佈的 2.6.4。
最新 bugfix 版本為 svn repo 裏的 2.4.3。
最穩定版本為2.4.4。
Free Pascal與Turbo Pascal的區別Free Pascal使用的是跨平台的32位編譯器,最大可以利用4GB的內存。而對於Turbo Pascal來説,由於是16位的編譯器,數據類型和變量不能超過64 KB,而且只限在Windows上使用。這使得Free Pascal與Turbo Pascal存在着如下差別:
1. 表達式執行的順序是不確定的。比如表達式a:=f(1)+g(2);不保證f(1)一定在g(2)之前執行;
2. 布爾表達式不一定要全部計算,只要最終結果已經能夠確定,就不再計算其他部分;
3. 乘方x^y可以表示成x**y。但x是實數且y是整數的時候不能這樣表示。一般還是用換底公式(exp(y*ln(x)))來計算x^y;
4. 因為在Free Pascal中添加了函數重載功能,所以函數和過程在使用時,參數的類型必須和定義的完全一致。函數可以返回複雜的類型,比如記錄和數組;
5. 在Free Pascal中,集合中的元素都是4個字節長的;
6. Free Pascal在程序結束之前一定要關閉輸出文件,否則輸出文件可能不能被正確地寫入;
7. Free Pascal支持長文件名。在Windows系統中文件名的大小寫是無關的。由於信息學競賽的評測系統是Linux,而Linux對文件名區分大小寫,所以程序中用到的文件名必須和系統中的文件名完全一致。
最後,如果代碼遵守ANSI Pascal標準,就完全可以從Turbo Pascal移植到Free Pascal中使用。
Lazarus
Lazarus是一個用於Free Pascal快速應用開發(RAD)的面向對象的Pascal集成開發環境(IDE)。Lazarus 對於窗口管理來説是中性的。可以工作在KDE(1.13版本)下,也可以工作在GNOME(1.23版本)或其他窗口管理器(MVM、WindowMaker)。Lazarus的設計目標是應用Free Pascal,所以所有凡是Free Pascal能運行的平台,Lazarus也可以運行。最新版本能運行於Linux,Win9x/2000/xp/win7和FreeBSD。21世紀,已提供32位和64位版本支持。Lazarus的工作界面、外觀和操作和Borland 的Delphi IDE非常相似,所不同的是Lazarus 是完全的自由軟件。Lazarus 可以直接移植Delphi的代碼。Lazarus的編程語言是以Pascal為基礎的。Pascal語言具有可讀性好、編寫容易的特點,這使得它很適合作為基礎的開發語言。同時,使用編譯器創建的應用程序只生成單個可執行文件(.EXE,但生成的可執行文件體積相對Delphi的來説有點大,只包含一個空窗體的工程生成的可執行文件就達到了10多M。這裏,可以通過編譯選項來減小可執行文件的大小,可以減為1M多點,然後通過UPX壓縮,可以減為600多K。)。正是這種結合,使得Pascal成為Lazarus這種先進開發環境的編程語言。Lazarus的最新版本為1.2.4。
CP Pascal Editor
CP Pascal Editor 有兩大特色,第一,它含有一個初學者知識庫,在代碼的任意關鍵字處雙擊鼠標左鍵,提示面板上將會顯示與該關鍵詞相關的知識,例如數據類型範圍等。另外,CP Pascal Editor含有CP代碼快速輸入模式,這項功能使您可以在編寫程序時使用來自其他語言的語法,甚至一些偽代碼表達方式。當您完成輸入時,CP會自動將這些代碼轉換為Pascal代碼,而且支持中文,彌補了Free Pascal不支持中文的缺陷。
在 CP Pascal Editor 中含有中文錯誤提示信息,並大幅度提高編輯速度,而且它的穩定性好,支持語法高亮,支持代碼中輸入中文,還具有Math與Crt等常用單元。雖然它的界面還停留在傳統的pascal編程界面,有些老套,但從功能上來看十分適合Pascal語言編寫者使用。

Pascal語言結構

任何程序設計語言都有一定的規則。使用Pascal語言必須遵循其本身所規定的規則來編寫程序。儘管不同版本的Pascal語言所採用的符號的數量、形式不盡相同,但其基本成分一般都符合標準Pascal的規定。下面我們首先來了解Pascal語言的程序基本結構
為了明顯起見,先舉一個最簡單的Pascal程序例子:
【例1】
programli1(input,output);//程序首部
var
r,l,s:real;//定義變量
begin
write('inputr:');
readln(r);
s:=pi*r*r;
//pi是pascal系統定義的常量,即圓周率,FP中按實數輸出為3.1415926535897932E+0000
l:=2*pi*r;
writeln('s=',s:0:6);
//":0:6"是雙場寬,用於實型變量的輸出,":0"是場寬,":6"是小數部分長度
writeln('l=',l:0:6);
end.//結束
從這個簡單的程序可以看到:
⒈ 一個Pascal程序分為兩個部分:程序首部和程序體(或稱分程序)。
⒉ 程序首部是程序的開頭部分,它包括:
⑴程序標誌。用"program"來標明這是一個Pascal 程序。Pascal規定任何一個控制枱Pascal程序的首部都必須以此字開頭。在Free Pascal中,首部也可省略。
⑵程序名稱。由程序設計者自己定義,如例中的li1。在寫完程序首部之後,應有一個分號。
⒊ 程序體是程序的主體,在有的書本里也稱"分程序"。程序體包括説明部分(也可省略)和執行部分兩個部分。
⑴説明部分用來描述程序中用到的標號、常量、類型、變量、函數、過程等。正如示例中的“var”標註定義變量的名稱、類型,其它的標註字段為:label(標號)、const(常量)、type(類型)、var(變量)、function(函數)、procedure(過程)。
Pascal規定,凡程序中用到的所有變量、符號常量、數組、過程與函數、記錄、文件等數據都必須"先説明,再使用"。
⑵執行部分的作用是給出需要計算機執行的操作。
執行部分以"begin"開始,以"end"結束,其間有若干個語句,一般為了易於閲讀,begin..end中的語句應空2格(不包括“begin”和“end”),語句之間以分號隔開。執行部分之後有一個句點,表示整個程序結束
⒋ Pascal程序的書寫方法比較靈活。書寫程序應結構清晰、容易閲讀理解。在編寫程序時希望讀者儘量模仿本書中例題程序格式和縮進(兩個空格或一個Tab)。
⒌ 在程序中,一對大括號間的文字稱為註釋(也可用(*、*))。註釋的內容由人們根據需要書寫,可以用英語或漢語表示。註釋可以放在任何空格可以出現的位置。編譯器對註釋不予理睬。
1、程序首部
程序首部是程序的開頭部分,由保留字program後,接程序名及程序參數表組成,結束時一定要有分號。程序名yzhch是用户自己定義的標識符,參數表一般是文件變量名,用於該程序與外界的數據交流。最常用的參數為input和output。Turbo Pascal程序首部中參數表可以省略。
2、程序説明部分
Pascal語言要求用户將在程序中所使用的標號、常量、類型、變量、記錄、文件、以及過程和函數除了Pascal自己預先定義的標準量之外,都必須在説明部分説明後才能在程序執行部分使用。但各個內容部分是可選的,只有執行程序部分需要的時候才進行説明。
3、程序執行部分
緊接着説明部分的begin和end之間的部分為程序的執行部分。它由一系列語句組成,一條語句執行一定的功能,所有語句完成程序設計的任務。語句之間用“;”隔開,允許一行寫多個語句,也允許一個語句寫多行。最後一行的end後加“.”號表示結束。所跟其後的語句將無任何作用。Begin與end應配對出現,這是每一個Turbo Pascal程序都必須的。
注意:後面將學習到的語句中,也需要引用begin和end作為程序段的分隔標記,但其必須遵守語句規則。
數據類型、常量的變量
概念
計算機處理數據對象是一個廣義的概念。例如,125、12.76是數據,’xiang qj zhong’這一串字符也是數據。前者是數值數據,後者是字符串數據,是非數值數據。顯然,為了表示這些數據,它們在內存中必須以不同方式存放。為處理這些數據,計算機對它們施加的運算也不同。為此,Turbo Pascal語言建立了數據類型的概念,對描述的數據進行分類。每一種數據類型定義了一個具有相同性質的數據集合。各種數據類型的數據具有不同的性質。程序中所用到的每一個數據,包括常量和變量都有一個和它相聯繫的類型。由此決定了數據所具有的值,也決定了對該數據所能進行的操作。
Pascal語言中數據具有豐富的類型,按它們的特點可以分為簡單類型構造類型、指針類型和過程類型四大類,如圖下所示。
其中,標準類型用語言系統預先定義的標準標識符表示,整型integer表示,實型用real表示,布爾型用boolean表示,字符型用char表示。
二、常量
常量是指在程序中使用的一些具體的整型數、實型數和字符串。
(1)整型數:如9、3、-5、0等。
(2)實型數:如3.1、-6.1E+20等。
(3)字符串:是用單引號括起來的一串字符,如,’book’、’96·5’、’ABC’等。
以上列舉的都可以作為常量在程序中使用。為了提高程序的可讀性並使程序便於修改,在程序中往往用一些標識符來代表具體的常量。
在Turbo Pascal語言中,可以給一些常量取個名字用一個標識符代表它,這就是常量定義。例如,Cost=60;Blank=’ ’。
經常量定義的標識符又稱為常量標識符。
在Turbo Pascal語言中,常量定義要寫在常量定義部分中。
常量定義部分的一般形式:
Const
(常量標識符1)= (常量1);
(常量標識符2)=(常量2);
(常量標識符n)=(常量n);
Const是保留字,表示開始一個常量定義部分,其後可以有若干個常量定義,這些
常量定義之間要用“;”號分隔。例如:
Const
Cost=60;
A=Cost+30;
Pi =3.14159;
Turbo Pascal語言對常量定義有如下要求:
(1)常量定義要放在程序的常量定義部分,即程序首部之後,執行部分之前。
(2)必須遵循先定義後使用的原則,即只有已經定義的常量標識符,才能在程序中
使用。
三、變量
在程序執行過程中其值可以改變的數據,稱為變量。每個變量都要有一個名稱,這就是變量名。變量名由用户自己定義,但必須符合標識符的規定。
在一個程序中,一個變量只能屬於一種確定的數據類型。因此,程序中出現的每個變量都必須説明其數據類型,這樣就規定了該變量的取值範圍,也決定了對該變量所能執行的運算操作。
變量的類型,可以是標準數據類型integer、real、boolean和char,也可以是用户自定義的各種類型。
變量説明形式是:一個變量標識符或由逗號隔開的多個變量標識符在它的冒號":"後面説明其數據類型。
在Turbo Pascal程序中,變量説明要寫在變量説明部分中。
變量説明部分的一般形式:
var
(變量説明1);
(變量説明2);
……(變量説明n);
其中var是保留字,表示一個變量説明部分開始。一個var可以含有多個不同的變量説明,每個變量説明之間用分號隔開,有時稱被分號隔開的變量説明為變量説明項。例如:
varx,y:real;chl:char;t,f:boolean;
注意:不同類型的變量一般不能互相串用。
這裏還應指出,變量一經説明系統就在計算機內存中為其分配一個存貯空間。在程序中使用到變量時,就在相應的內存中存入數據或取出數據,這種操作稱為變量的訪問。
標準數據類型
Pascal向程序設計者提供了豐富的數據類型,它們用於專門的目的,但卻都是由簡單的、非構造型的數據類型所構成的。本節介紹Turbo Pascal中最為基本的幾種數據類型:整型、實型、布爾型和字符型。它們都是系統定義的簡單數據類型,稱為標準數據類型,其對應的名字稱為標準標識符。
1、整型
一個整型數據用來存放整數,整型數據可以是正整數負整數和整數零。
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 1000= 8 (千位數)
利用 a Mod b可以判斷a能否被b整除。當a Mod b = 0時,a能被b整除。
2、實型
一個實型數據用來存放實數。實型數據可以是正實數、負實數和實數零。實型數據一般用小數或指數形式(亦稱科學表示法)表示。例如:
+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
3、字符型
用標準標識符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的序號為0,TRUE的序號為1。
邏輯運算的結果只有兩個: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
③自增函數:Inc (x)的函數值亦為x+1,例如:
Inc(24)=25 Inc(-36)=-35
④自減函數:Dec(x)的函數值亦為x-1,例如:
Dec(45)=44 Dec(-46)=-47
絕對值函數:Abs (x)的函數值為︱X︱,例如:
Abs (-119)=119 Abs (101)=101
平方函數:Sqrt(x)的函數值為X2,例如:
Sqrt(-5)=25 Sqrt (10)= 100
以上四個函數的結果仍是整型數。
奇函數:Odd (x),函數的結果為布爾型。當X為奇數時,函數值為true;當X為偶數時,函數值為false。例如:
Odd (13)= True Odd (16)= False
字符函數Chr (X),函數值是序號的ASCII字符,屬字符型。例如:
Chr (65)=’A’ Chr (32)=’ ’
⑦序號函數:Val(X),函數值是ASCII字符所對應的序號,屬整型。例如:
Val('+')=43 Val('_')=95
二、實數類型函數
在下列算術函數中,X可以是實型或整型數的表達式。對於函數Abs和Sqr,其結果類型和變量X的類型相同,其他算術函數的結果類型都是實型。
絕對值函數Abs(x):函數值為x的絕對值
平方函數Sqr (x):函數值為x的平方
小數函數Frac (x):函數值為x的小數部分
整數函數Int (x):函數值為x的整數部分
正弦函數Sin (x):函數值為x的正弦,其申,x的單位為弧度
餘弦函數Cos (x):函數值為x的餘弦,其中,x的單位為弧度
指數函數Exp (x):函數值為e*x
對數函數Ln (X):函數值為x的自然對數
平方根函數的Sqrt (x):函數值為x的平方根
反正切函數Arctan(x):函數值為x的反正切,單位為弧度
隨機函數Random:無自變量時,函數值取(0,1)間的隨機小數;有自變量且為Word類型時,函數值取(0,自變量)間的隨機整數。
三、字符類型函數
Turbo Pascal語言提供如下自變量為字符型的標準函數,其中Ch為字符型。
後繼函數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=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
④ ③ ① ② ⑤
2.1 Pascal字符與符號
(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,UNTILVAR,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.2 Pascal數據類型
數據是程序設計的一個重要內容,其重要特徵----數據類型,確定了該數據的形、取值範圍以及所能參與的運算。
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浮點模式下運行。
一個布爾型數據用來存放邏輯值(布爾值)。布爾型的值只有兩個:false和true,並且false的序號是0,true的序號是1。false 和true都是預定義常數標識符,分別表示邏輯假和邏輯真。並且true<false。boolean是布爾型的標識符。
4.字符型
字符型用char作為標識符。字符型必須用單引號括起來,字母作為字符型時,大小寫是不等價的,並且字符型只允許單引號中有一個字符,否則就是字符串。
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;
1.算術函數
函數標識符  自變量類型 意義 結果類型
abs 整型、實型 絕對值 同自變量
arctan 整型、實型 反正切 實型
cos 整型、實型 餘弦 實型
exp 整型、實型 指數 實型
frac   整型、實型 小數部分 實型
int 整型、實型 整數部分 實型
ln 整型、實型 自然對數 實型
pi  無自變量 圓周率 實型
sin 整型、實型 正弦 實型
sqr 整型、實型 平方 同自變量
sqrt  整型、實型 平方根 實型
例:abs(-4)=4 abs(-7.49)=7.49 arctan(0)=0.0
sin(pi)=0.0 cos(pi)=-1.0 frac(-3.71)=-0.71
int(-3.71)=-3.0 sqr(4)=16 sqrt(4)=2
2.標準函數
函數標識符 自變量類型 意義 結果類型
odd  整型 判斷奇數 布爾型
pred 離散類型 求前趨 同自變量
succ 離散類型 求後繼 同自變量
例:odd(1000)=false pred(2000)=1999 succ(2000)=2001
odd(3)=true pred('x')='w succ('x')='y'
3.轉換函數
函數標識符 自變量類型 意義  結果類型
chr byte 自變量對應的字符 字符型
ord 離散類型 自變量對應的序號 longint
round 實型 四捨五入 longint
trunc 實型 截斷取整 longint
例:chr(66)='B' ord('A')=65 round(-4.3)=-5 trunc(2.88)=2
函數標識符 自變量類型 意義 結果類型
random 無自變量 [0,1間的隨機實數 real
random word [0,自變量間的隨機整數)  word
randomize  無自變量 初始化內部隨機數產生器 longint
upcase 字符型 使小寫英文字母變為大寫 字符型
downcase 字符型 使小寫英文字母變為大寫 字符型
2.5 運算符和表達式
1.運算符和優先級
是實型,如果全部的運算對象都是整型並且運算不是除法,則結果為整型,若運算是除法,則結果是實型 a.算術運算符
運算符 運算 運算對象 結果類型
+ 加 整型、實型 只要有一個運算對象是實型,結果就
- 減 整型、實型 是實型,如果全部的運算對象都是整
* 乘 整型、實型 型並且運算不是除法,則結果為整型,
/ 除 整型、實型 若運算是除法,則結果是實型。
div 整除 整型 整型
mod 取餘 整型 整型
運算符 運算 運算對象 結果類型
not 邏輯非 布爾型 布爾型
and 邏輯與 布爾型 布爾型
or 邏輯或 布爾型 布爾型
xor 邏輯異或 布爾型 布爾型
運算符 運算 運算對象 結果類型
= 等於 簡單類型 布爾型
<>  不等於 簡單類型 布爾型
< 小於 簡單類型 布爾型
> 大於 簡單類型 布爾型
<=  小於等於 簡單類型 布爾型
>=  大於等於 簡單類型 布爾型
(2)優先級
運算符 優先級
not 1(高)
*,/,div,mod,and 2
xor,+,-,or  3
in,=,<,>,>=,<=,<> 4(低)
2.表達式
(1)算術表達式:算術表達式是由算術運算符連接常量、變量、函數的式子。算術表達式中各個運算符的次序為: ( )-->函數-->*,/,div,mod-->+,1
(2)布爾表達式:Turbo Pascal提供給布爾表達式以下基本操作:邏輯運算和關係運算
(3)數學上的表達式與pascal語言表達式的區別
數學表達式PASCAL表達式注意
2a 2*a *號不能省略
a÷b a/b 除號的寫法
a≠b a<>b 不等號的寫法
a≤b a<=b 小於等於號的寫法
a≥b a>=b 大於等於號的寫法
主要語句:
讀入:Read/ReadLn:讀入內容/讀入內容並將讀入指針轉到下一行。
輸出:Write/WriteLn:輸出內容/輸出內容並將輸出指針轉到下一行。
賦值:<變量>:=<表達式>
判斷:ifcase
循環:forwhileuntil
退出:break(跳出循環), exit(跳出過程/函數). halt(終止程序)
其它參見Pascal 大小寫
標識符的首字母和後面連接的每個單詞的首字母都大寫。可以對三字符或更多字符的標識符使用Pascal 大小寫。例如:
BackColor
但pascal實際並不區分大小寫。
在字符操作中,大小寫有區分。比如'a'<>'A'。
程序框架program {程序名} {程序參數表};label//一般省略{標號説明};const{常量説明};type{類型説明};var{變量説明};operator {符號名+參數}beginend;function {(函數名+形參(形參可省略)):函數類型}begin{函數説明};end;procedure {(過程名+形參(形參可省略))}begin{過程説明};end;begin{程序語句};end。

Pascal保留字

Pascal語言中保留字可分為如下6種類型:
  1. 程序、函數、過程的符號:program、function、procedure;
  2. 説明部分的專用定義符號:array、const、file、lable、packed、var、record、set、type、of;
  3. 語句專用符號:case、do、downto、else、for、goto、if、repeat、then、to、until、while、with、forward;
  4. 運算符號:and、not、or、in、div、mod;
  5. 分隔符號:begin、end;
  6. 空指針常量:NULL。

Pascal標識符

  • 標準常量:false,true,maxint.
  • 標準類型:integer,real,char,string,boolean,text.
  • 標準文件:input,output.
  • 標準函數:abs,arctan,chr,cos,eof,eoln,exp,ln,odd,ord,pred,round,sin,sqr,sqrt,succ,trunc.
  • 標準過程:get,new,pack,page,put,read,readln,reset,rewrite,unpack,write,writeln.
  • real 實數
  • integer 整型
  • longint 長整型
  • shortint 短整型
  • int64 超長整型
  • single 單精度
  • double 雙精度
  • char 單個字符
  • string字符串型
  • ansistring內存字符串型
  • int64 -2^63-2^63-1的整數類型
  • qword無符號的整型(0~2^64-1)
  • begin 開始
  • end 結束
  • if 如果
  • for ... to .... do 循環
  • read 輸入 (readln 輸入並換行)
  • write 輸出(writeln 並換行輸出)
  • then 那麼(常與if連用)
  • else 否則 (常與if和then連用,當if後面的條件為假時,程序就會執行else後的語句)
  • boolean布爾型
  • true 真
  • false 假

Pascal錯誤代碼

常見錯誤
  • 1無效DOS功能號
  • 2文件未找到
  • 3路徑未找到
  • 4打開文件過多
  • 5禁止文件存取
  • 6無效文件句柄
  • 12無效文件存取代碼
  • 15無效驅動器號
  • 16不能刪除當前目錄
  • 17不能跨驅動器改文件名
  • 100磁盤讀錯誤
  • 101磁盤寫錯誤
  • 102文件變量未賦值
  • 103文件未打開
  • 104文件未用輸入方式打開
  • 105文件未用輸出方式打開
  • 106無效數字格式
  • 151未知單元
  • 152驅動器未準備好
  • 153未知命令
  • 154數據CRC校驗錯
  • 155驅動器請求的結構長度錯
  • 156磁盤定位錯
  • 157未知媒介類型
  • 158扇區未找到
  • 159打印機缺紙
  • 160設備寫失敗
  • 161設備讀失敗
  • 162硬件故障
  • 200被零除
  • 201範圍檢查錯
  • 202堆棧溢出錯
  • 203堆溢出錯
  • 204無效指針操作
  • 205浮點上溢出
  • 206浮點下溢出
  • 207無效浮點運算
  • 208未安裝覆蓋管理程序
  • 209覆蓋文件讀錯
  • 210對象未初始化
  • 211調用抽象方法
  • 212流登計錯
  • 214**溢出
  • 215算術上溢錯誤
  • 216存取非法
  • 217控制-C
  • 218授權指令
  • 219無效的TYPECAST
  • 220無效的變體TYPECAST
  • 221無效的變體操作
  • 222沒有變體方法調用DISPATCHER
  • 223不能建立變體數組
  • 224變體不包含數組
  • 225變體數組邊界錯誤
錯誤類型
  • 2缺標識符
  • 3標識符未定義
  • 4標識符重定義
  • 5語法錯誤
  • 6實型常量錯
  • 7整型常量錯
  • 9文件嵌套過多
  • 10非正常文件結束
  • 11行過長
  • 12缺類型標識符
  • 13打開文件過多
  • 14無效文件名
  • 15文件未找到
  • 16磁盤滿
  • 17無效編譯指示
  • 18文件過多
  • 19指針定義中未定義類型
  • 20缺變量標識符
  • 21類型錯誤
  • 22結構過長
  • 24文件分量不能為文件
  • 25無效字符串長度
  • 27無效子界基類型
  • 28下界大於上界
  • 29缺有序類型
  • 30缺整型常數
  • 31缺常數
  • 32缺整型或實型常數
  • 33缺指針類型標識符
  • 34無效的函數結果類型
  • 35缺標號標識符
  • 36缺BEGIN
  • 37缺END
  • 38缺整型表達式
  • 39缺有序表達式
  • 40缺布爾表達式
  • 41操作數類型與操作符不匹配
  • 43非法賦值
  • 44缺字段標識符
  • 45目標文件過長
  • 46未定義外部標識符
  • 47無效*.OBJ文件記錄
  • 48代碼段過長
  • 49數據段過長
  • 50缺DO
  • 51無效PUBLIC定義
  • 52無效EXTRN定義
  • 53EXTRN定義過多
  • 54缺0F
  • 55缺INTERFACE
  • 56無效重定位引用
  • 57缺THEN
  • 58缺T0或DOWNTO
  • 59未定義的向前引用
  • 60過程過多
  • 61無效類型轉換
  • 62被零除
  • 63無效文件類型
  • 64不能讀寫該類型的變量
  • 66缺字符串變量
  • 67缺字符串表達式
  • 68單元循環引用
  • 69單元名不匹配
  • 70單元版本不匹配
  • 71單元重名
  • 72單元文件格式錯誤
  • 73缺IMPLEMENTATI0N
  • 74常數與CASE類型不相匹配
  • 75缺記錄變量
  • 76常數越界
  • 77缺文件變量
  • 79缺整型或實型表達式
  • 80標號不在當前塊中
  • 81標號已定義
  • 82標號未定義
  • 83無效參數
  • 84缺UNIT
  • 85缺“;”
  • 86缺“:”
  • 87缺“,”
  • 88缺“(”
  • 89缺“)”
  • 90缺“=”
  • 91缺“:=”
  • 92缺“[”或“(.”
  • 93缺“]”或“.)”
  • 94缺“.”
  • 96變量過多
  • 97無效FOR控制變量
  • 99此處不允許用文件
  • 100字符串長度不匹配
  • 101無效字順序
  • 102缺字符串常數
  • 103缺整型或實型變量
  • 104缺有序變量
  • 105INLINE錯
  • 106缺字符表達式
  • 107重定位項過多
  • 112CASE常量越界
  • 113語句錯
  • 114不能調用中斷過程
  • 116必須在8087方式下編譯
  • 117未找到目標地址
  • 118此處不允許包含文件
  • 120缺NIL
  • 121無效限定符
  • 122無效變量引用
  • 123符號過多
  • 124語句部分過長
  • 126文件必須為變量參數
  • 127條件符號過多
  • 128條件指令錯位
  • 130初始條件定義錯
  • 131過程和函數頭與前面定義的不匹配
  • 132嚴重磁盤錯誤
  • 133不能計算該表達式
  • 134表達式錯誤結束
  • 135無效格式説明符
  • 136無效間接引用
  • 137此處不允許結構變量
  • 138無SYSTEM單元不能計算
  • 139不能存取該符號
  • 140無效浮點運算
  • 141不能將覆蓋編譯至內存
  • 142缺過程和函數變量
  • 143無效過程或函數引用
  • 144不能覆蓋該單元
  • 147缺對象類型
  • 148不允許局部對象類型
  • 149缺VIRTUAL
  • 150缺方法標識符
  • 151不允許虛擬構造方法
  • 152缺構造方法標識符
  • 153缺釋放方法標識符
  • 154FAIL只允許在構造方法內使用
  • 155無效的操作符和操作數組合
  • 156缺內存引用
  • 157不能加減可重定位符號
  • 158無效寄存器組合
  • 159未激活286/287指令
  • 160無效符號引用
  • 162缺ASM

Pascal運用

Turbo Pascal系列軟件作為開發系統軟件與就任軟件及實施科學計算和教學的有力工具,下發揮着越來越大的作用。也是國際和全國青少年信息學奧林匹克競賽指定的語言之一。從歷屆信息學競賽的情況看,它是最能出成績和選手最歡迎的語言。以後的例子就以Turbo Pascal 7.0進行程序設計。
下面我們就以一個實例來看一看Pascal程序的結構,從中認識到Pascal語言程序的書寫方式,以及其規範的標準設計方式。
例1:輸入一個圓的半徑,求出其圓周長
設圓的半徑為R,周長為L,我們知道公式如下:
L=2πR
它的Pascal程序如下:
programyzhch(input,output);{程序首部}

const{常量説明}
pi=3.14159

var{變量説明}

l,r:real;

begin{程序開始}

readln(r);{輸入半徑}

l:=2*pi*r;{計圓周長}

writeln('l=',l);{輸出圓周長}

end.{結束程序}
從以上簡單的例子可以看出,Pascal程序是由程序首部、程序説明部分和程序執行部分組成。具體如下所示:
program程序名;{程序首部}

説明部分{説明部分}

begin{程序開始}

語句1;{執行語句}

語句2;{執行語句}

……
{執行語句}

end.{結束程序}
參考資料