Pascal歌手资料
基本简介
Pascal是一种计算机通用的高级程序设计语言。Pascal的取名是为了纪念十七世纪法国著名哲学家和数学家Blaise Pascal。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。
特点介绍
以法国数学家命名的Pascal语言现已成为使用最广泛的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。 Pascal强调的结构化编程带来了非结构化语言如Fortran之流无法比拟的美和乐趣,Unix崇尚的“小即是美”、“没有消息就是好消息”。
正因为上述特点,Pascal语言可以被方便地用于描述各种算法与数据结构。尤其是对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一,NOI(全国奥林匹克信息学竞赛)把Pascal语言和c语言、c++语言作为竞赛使用程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的教学语言。
发展历程
ps:高级语言发展过程中,Pascal是一个重要的里程碑。Pascal语言是第一个系统地体现了E.W.Dijkstra和C.A.R.Hoare定义的结构化程序设计概念的语言。
在Pascal问世以来的三十余年间,先后产生了适合于不同机型的各种各样版本。其中影响最大的莫过于Turbo Pascal系列软件。它是由美国Borland公司设计、研制的一种适用于微机的Pascal编译系统。该编译系统由1983年推出1.0版本发展到1992年推出的7.0版本,其版本不断更新,而功能更趋完善。
版本简介
Pascal有5个主要的版本,分别是Unextended Pascal、Extended Pascal、Object-Oriented Extensions to Pascal、Object Pascal 和 Delphi。其中,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的基础上增加了一些用以支持面向对象程序设计的特性,但它属于非正式的标准。Delphi 是由Borland公司专门为其开发的编译工具(也叫Delphi)设计的Pascal语言, Delphi 不是正式的Pascal标准,具有专利性。但由于Turbo Pascal系列和Delphi功能强大并且广为流行,Delphi 已自成为一种标准,为许多人所熟悉。
缺点介绍
传统PASCAL的标准库中缺乏对网络编程的支持,并且仅通过自带的graph单元难以实现较好的图形界面(GUI),这些缺点大多需要嵌入汇编语言代码才能得到解决,缺乏与机器语言的接口。另一方面,作为一个面向过程的编程语言,和90年代兴起的面向对象的语言相比,不利于大型软件的开发。
尽管Pascal非常流行(然而在八十到九十年代时比现 在更加流行),依据维尔特的对这种语言的定义来构建Pascal,使它不适合在非教学的场合使用,这遭到了广泛的批评。 推广了C语言的Brian Kernighan早在1981年就在他的论文《Why Pascal Is Not My Favorite Programming Language》对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
注意,Pascal语言除了可以使用以上规定的字符外,不得使用其他任何符号。
注:pascal中div是整除,mod是求余。
Free Pascal 中,大写字母与小写字母没有区别,只是除了字符串中的字母,即是说:A与a被认作同一个字母。
ACSII 码
pascal中,字符代码是由ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)码进行转换的。由函数chr(x) (求编号x对应的字符)和ord(x) (求字符x对应的编号)进行转换执行。
保留字
作为一种高级语言,Pascal给一些英文单词赋予了特定的含义,这些特定符号叫做保留字或关键字。标准Pascal中的保留字一般有36个。下面是Pascal的36个保留字:
开头:program、function、procedure
说明: array、const、file、 label、packed、var、record、set、type
语句:case、do、downto、else、 for、goto、if、of、repeat、then、to、until、while、with、forward
运算:and、div、in、mod、not、or
指针:nil
程序首尾:begin、end
编程工具
Turbo Pascal
Turbo Pascal 它提供了一个集成环境的工作系统,集编辑、编译、运行、调试等多功能于一体。
编年史
Pascal是一门编程语言,而Turbo Pascal/Free Pascal是Pascal程序的编译系统.。
Pascal只是一门语言,而Turbo Pascal/Free Pascal是编译器,这两个是不能比较的 。
你可以把两个语言放在一起比较,或者两个编译器放在一起比较 。
在中国的信息学奥林匹克竞赛中,过去比较常用的Pascal编程工具是Turbo 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
现 在,随着Turbo Pascal逐渐被淘汰,全国信息学奥林匹克竞赛决赛(NOI)全国信息学奥林匹克联赛决赛(NOIP)和国际信息学奥林匹克竞赛(IOI)已经指定Free Pascal为比赛使用的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版本(最新版本为2.6.0),由于是Pascal上的改版,在FP里加入了很多以前没有的东西,例如:FillChar系列内存块赋值语句,用Power代替了**(乘方),但是**还是可以使用。
另外FP加强了与内存的互容性,增大对内存的支持,FP里的内存限制是TP和BP里的将近上万倍。
FP还进一步加强了单元支持、面向对象程序设计的支持、显卡(声卡)的支持、图形高级覆盖的支持、WindowsLinuxOS/2..等众多系统的支持。在FP的较稳定版本中,可以方便的利用Win32编译模式,编译出Windows应用程序,与Delphi的功能相当。同时对动态连接库、控件、数据库、文件、网络、OpenGL的深入支持,使得 FP 在各种 Pascal编译系统中脱颖而出。
更值得提出的是,FP支持Delphi及C++的部分语言,例如:A+=2这样的C Style语言,在FP里完美支持。
FP中支持单目、双目操作符,即所有版本的Pascal的符号和“@”等特殊符号。
FP 支持运算符重载。
FP现为竞赛推荐工具。
最新发布版本为 2013 年 2 月 24 日发布的 2.6.2。
最新 bugfix 版本为 svn repo 里的 2.4.3。
最稳定版本为2.4.4。
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。目前,已提供32位和64位版本支持。Lazarus的工作界面、外观和操作和Borland 的Delphi IDE非常相似,所不同的是Lazarus 是完全的自由软件。Lazarus 可以直接移植Delphi的代码。Lazarus的编程语言是以Pascal为基础的。Pascal语言具有可读性好、编写容易的特点,这使得它很适合作为基础的开发语言。同时,使用编译器创建的应用程序只生成单个可执行文件(.EXE,但生成的可执行文件体积相对Delphi的来说有点大,只包含一个空窗体的工程生成的可执行文件就达到了10多M。这里,可以通过编译选项来减小可执行文件的大小,可以减为1M多点,然后通过UPX压缩,可以减为600多K。)。正是这种结合,使得Pascal成为Lazarus这种先进开发环境的编程语言。目前Lazarus的最新版本为1.0.6。
CP Pascal Edtior
CP Pascal Editor 有两大特色,第一,它含有一个初学者知识库,在代码的任意关键字处双击鼠标左键,提示面板上将会显示与该关键词相关的知识,例如数据类型范围等。另外,CP Pascal Editor含有CP代码快速输入模式,这项功能使您可以在编写程序时使用来自其他语言的语法,甚至一些伪代码表达方式。当您完成输入时,CP会自动将这些代码转换为Pascal代码。
目前在 CP Pascal Editor 中含有中文错误提示信息,并大幅度提高编辑速度,而且它的稳定性好,支持语法高亮,支持代码中输入中文,还具有Math与Crt等常用单元。虽然它的界面还停留在传统的pascal编程界面,有些老套,但从功能上来看十分适合Pascal语言编写者使用。
优点:1、中文界面,有中文错误提示信息。2、稳定性好。
缺点:1、界面简陋。2、现已被证实使用crt单元时会出现PPU 100版本错误。
部分教程
一、Pascal语言的特点
信息学奥林匹克竞赛是一项益智性的竞赛活动,核心是考查参赛选手的智力和使用计算机编程解题的能力。信息学奥林匹克竞赛要求参赛选手有如下能力:针对竞赛题目中的要求构建数学模型,构造出有效的算法和选用相应的数据结构,写出高级语言程序,上机调试通过。程序设计是信息学奥林匹克竞赛的基本功,因此,青少年参与竞赛活动的第一步是必须掌握一门高级语言及其程序设计方法。
以纪念法国数学家而命名的Pascal语言是使用最广泛的计算机高级语言之一,被国际上公认为程序设计教学语言的典范。其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。正因为这些特点,Pascal语言可以被方便地用于描述各种数据结构和算法,编写出高质量的程序。尤其是对于青少年程序设计初学者,Pascal 语言有利于顺利入门,有益于从一开始培养良好的程序设计风格和习惯,越来越多的各类学校都把Pascal语言作为程序设计教学的第一语言。IOI(国际奥林匹克信息学竞赛)把Pascal语言规定为二种程序设计语言之一,?NOI(全国信息学奥林匹克竞赛)把Pascal语言定为唯一提倡的程序设计语言,NOIp(全国信息学奥林匹克联赛)把Pascal定为最主要的程序设计语言。
语言知识
Pascal 语言概述
Pascal语言是一种算法语言,它是瑞士苏黎世联邦工业大学的沃思教授于1968年设计完成的,1971年正式发表。Pascal语言是在ALGOL60的基础上发展而成的。它是一种结构化的程序设计语言。它的功能强、编译程序简单,是70年代影响最大一种算法语言。
从使用者的角度来看,Pascal语言有以下几个主要的特点:
⒈ 结构化
Pascal可以方便地书写出结构化程序。这就保证程序的正确性和易读性。在结构化这一点上,比其它算法语言更好一些。
⒉ 数据类型丰富
Pascal提供了整数型、实数型、字符型、布尔型、枚举型、子界型以及由以上类型构成的数组类型、集合类型、记录类型和文件类型。此外,还提供了其它许多语言中所没有的指针类型。丰富的数据结构和上述的结构化性质,使得Pascal可以被方便地用来描述复杂的算法。
⒊ 适用性好
既适用于数值运算,也适用于非数值运算领域。有些语言只适用于数值计算,有些语言则适用于商业数据处理和管理领域。Pascal的功能较强,能广泛应用于各种领域。
⒋ 书写较自由
不象有些算法语言那样对程序的书写格式有严格的规定。Pascal允许一行写多个语句,一个语句可以分写在多行上,这样就可以使Pascal程序写得象诗歌格式一样优美,便于阅读,但一行不可超过257个字符。
由于以上特点,许多学校选Pascal作为程序设计课程中的一种主要的语言。它能给学生严格而良好的程序设计的基本训练。培养学生结构化程序设计的风格。
Pascal语言程序的基本结构
任何程序设计语言都有一定的规则。使用Pascal语言必须遵循其本身所规定的规则来编写程序。尽管不同版本的Pascal语言所采用的符号的数量、形式不尽相同,但其基本成分一般都符合标准Pascal的规定。下面我们首先来了解Pascal语言的程序基本结构。
⒈ 一个Pascal程序分为两个部分:程序首部和程序体(或称分程序)。
⒉ 程序首部是程序的开头部分,它包括:
⑴程序标志。用"program"来标明这是一个Pascal 程序。Pascal规定任何一个控制台Pascal程序的首部都必须以此字开头。在Free Pascal中,首部也可省略。
⑵程序名称。由程序设计者自己定义,如例中的li1。在写完程序首部之后,应有一个分号。
⒊ 程序体是程序的主体,在有的书本里也称"分程序"。程序体包括说明部分(也可省略)和执行部分两个部分。
⑴说明部分用来描述程序中用到的变量、常量、类型、过程与函数等。本程序中第二行是"变量说明",用来定义变量的名称、类型。
Pascal规定,凡程序中用到的所有变量、符号常量、数组、过程与函数、记录、文件等数据都必须"先说明,再使用"。
⑵执行部分的作用是给出需要计算机执行的操作。
执行部分以"begin"开始,以"end"结束,其间有若干个语句,一般为了易于阅读,begin..end中的语句应空2格(不包括“begin”和“end”),语句之间以分号隔开。执行部分之后有一个句点,表示整个程序结束。
⒋ Pascal程序的书写方法比较灵活。书写程序应结构清晰、容易阅读理解。在编写程序时希望读者尽量模仿本书中例题程序格式。
⒌ 在程序中,一对大括号间的文字称为注释(也可用/*、*/)。注释的内容由人们根据需要书写,可以用英语或汉语表示。注释可以放在任何空格可以出现的位置。执行程序时计算机对注释不予理睬。
Free Pascal语言系统的使用
目前,信息学竞赛使用的Pascal语言系统是Free Pascal,下面我们就来学习Free Pascal的使用。
1.系统的启动
在运行系统目录下的启动程序fp.EXE,即可启动系统。屏幕上出现如图1所示的集成环境。
2.Free Pascal系统集成环境简介
最顶上一行为主菜单。中间蓝色框内为编辑窗口,在它个编辑窗口内可以进行程序的编辑。最底下一行为提示行,显示出系统中常用命令的快捷键,如打开一个文件的快捷键为F3,将当前编辑窗口中文件存盘的快捷键为F2,获得系统帮助的快捷键为F1,等等。
3.新建程序窗口
按F10进行主菜单,选择FILE菜单,执行其中New命令。就可建立一个新的程序窗口(默认文件名为Noname00.pas或Noname01.pas等)。
4.程序的输入、编辑与运行
在当前程序窗口中,一行一行的输入程序。程序窗口是一个编辑器。所以对程序的编辑与其它编辑器相似,类似记事本程序。
当程序输入完毕之后,一般要先按Alt+F9(或执行compile菜单中compile命令)对程序进行编译。如果程序有语法错误,则会在程序窗口的下方显示错误信息。若无语法错误,则窗口正中央会出现一个对话框,提示编译成功。接下来,我们可以运行程序了。
程序的运行可以通过按ALT+R打开RUN菜单中的RUN命令,或直接按快捷键CTRL+F9。则可以在用户窗口中输出运行结果。通常在程序运行结束后系统回到Pascal系统的集成环境,因此要查看运行结果,要按ALT+F5将屏幕切换到用户屏幕。
5.程序的保存与打开
当我们想把程序窗口中的程序存入磁盘时,可以通过按F2键(或执行File菜单中的save命令)来保存程序。第一次保存文件时屏幕上会出现一个对话框要求输入文件名(默认扩展名为.pas)。
当我们要将磁盘上的程序文件中的Pascal程序装入窗口时,可按F3(或执行File菜单中的Open命令)来装入程序,此时系统也会弹出一个对话框要求输入要打开的文件名,或直接在文件对话框列表中选择所要的文件,然后回到打开文件。(.pas文件,可以由记事本打开)
标识符
标准常量: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无效数字格式
150磁盘写保护
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流登计错
213**下标越界
214**溢出
215算术上溢错误
216存取非法
217控制-C
218授权指令
219无效的TYPECAST
220无效的变体TYPECAST
221无效的变体操作
222没有变体方法调用DISPATCHER
223不能建立变体数组
224变体不包含数组
225变体数组边界错误
226TLS初始化错误
pascal编译错误代码表
1内存溢出
2缺标识符
3标识符未定义
4标识符重定义
5语法错误
6实型常量错
7整型常量错
8字符串常量跨行
9文件嵌套过多
10非正常文件结束
11行过长
12缺类型标识符
13打开文件过多
14无效文件名
15文件未找到
16磁盘满
17无效编译指示
18文件过多
19指针定义中未定义类型
20缺变量标识符
21类型错误
22结构过长
24文件分量不能为文件
25无效字符串长度
26类型不匹配
27无效子界基类型
28下界大于上界
29缺有序类型
30缺整型常数
31缺常数
32缺整型或实型常数
33缺指针类型标识符
34无效的函数结果类型
35缺标号标识符
36缺BEGIN
37缺END
38缺整型表达式
39缺有序表达式
40缺布尔表达式
41操作数类型与操作符不匹配
42表达式错
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不能读写该类型的变量
65缺指针变量
66缺字符串变量
67缺字符串表达式
68单元循环引用
69单元名不匹配
70单元版本不匹配
71单元重名
72单元文件格式错误
73缺IMPLEMENTATI0N
74常数与CASE类型不相匹配
75缺记录变量
76常数越界
77缺文件变量
78缺指针变量
79缺整型或实型表达式
80标号不在当前块中
81标号已定义
82标号未定义
83无效参数
84缺UNIT
85缺“;”
86缺“:”
87缺“,”
88缺“(”
89缺“)”
90缺“=”
91缺“:=”
92缺“[”或“(.”
93缺“]”或“.)”
94缺“.”
96变量过多
97无效FOR控制变量
98缺整型变量
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无效符号引用
161代码生成错
162缺ASM
其它参考
Pascal的其他释义
布莱士·帕斯卡压强
命名规范
我们在表命名,字段命名,或者程序命名方面要按照一定的规则。free pascal的默认文件名为noname01.pas,若想重命名,要从菜单栏的File选项卡中点击Save(Save As)再输入就可以了(而且顺便保存了)
Pascal 大小写
将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用Pascal 大小写。例如:BackColor
但pascal实际并不区分大小写。
在字符操作中,大小写有区分。比如'a'<>'A'。
完全的Pascal程序框架