种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

Turbo Pascal

(2019-04-27 03:22:46) 百科综合
Turbo Pascal

Turbo Pascal

Turbo Pascal系列软体作为开发系统软体与就任软体及实施科学计算和教学的有力工具,发挥着越来越大的作用。也是国际和全国青少年信息学奥林匹克竞赛指定的语言之一。从历届信息学竞赛的情况看,它是最能出成绩和选手最欢迎的语言。以后的例子就以Turbo Pascal 7.0进行程式设计。

基本介绍

  • 软体名称:Turbo Pascal
  • 开发商:美国Borland公司
  • 软体平台:微机的Pascal编译系统
  • 软体版本:7.0版本
  • 创始人:Niklaus Wirth教授
  • 主要特点:结构化形式,丰富完备的数据类型

软体简介

Pascal是一种计算机通用的高级程式设计语言。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。
以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行程式时变数(存储单元)自动初始化,省去了麻烦;运行效率高;查错能力强。
正因为上述特点,Pascal语言可以被方便地用于描述各种算法与数据结构。尤其是对于程式设计的初学者,Pascal语言有益于培养良好的程式设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程式设计语言之一, NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程式设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的教学语言。 现在由于着作权等问题,在NOIP中使用Free Pascal,而在NOI和IOI中使用Lazarus 0.9.10和Linux系统。
在Pascal问世以来的三十余年间,先后产生了适合于不同机型的各种各样版本。其中影响最大的莫过于Turbo Pascal系列软体。它是由美国Borland公司设计、研製的一种适用于微机的Pascal编译系统。该编译系统由1983年推出1.0版本发展到1992年推出的7.0版本,其版本不断更新,而功能更趋完善。

语言入门

Pascal是由瑞士Niklaus Writh教授于60年代末设计并创立。它是一种计算机通用的高级程式设计语言,是一种优良的程式设计教学语言,整个语言紧凑整齐,概念简洁,数据结构和控制结构比较丰富,程式可读性好,查错能力强,有利于培养学生严谨、清析的程式设计风格和良好习惯,并使他们从中领会和理解精细的程式设计技巧。尤其引入了结构化程式设计的思路,充分考虑了算法设计中的自顶向下、由粗到精的模组化思想,以及总可以将算法步骤剖解为顺序、分支、重複三种基本结构流程的结构化原则,提供了丰富的数据类型和清晰的描述模组化的语句。
下面我们就以一个实例来看一看Pascal程式的结构,从中认识到Pascal语言程式的书写方式,以及其规範的标準设计方式:
program lt1;{程式首部}
var {说明部分}
a,b:integer;
sum:integer;
begin {执行部分}
read(a,b);
sum:=a+b;
writeln('sum=',sum);
end.

发展

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已自成为一种标準,为许多人所熟悉

数据格式

例1:判断这个数是奇数还是偶数。
它的Pascal程式如下:
program e5_1( input, output) ; {程式首部}
var {变数说明}
a:longint {在tp7中,规定pi约等于3.1415926536}
begin {程式开始}
readln(a); {打入数字}
if a mod 2 <>0{判断是否为奇数}
then writeln(a"-jishu")
else writeln(a"-oushu");{输出a-jishu或a-oushu}
end. {结束程式}
从以上简单的例子可以看出,Turbo Pascal程式是由程式首部、程式说明部分和程式执行部分组成。具体如下所示:
program 程式名; {程式首部,可省略}
说明部分 {说明部分}
begin {程式开始}
语句1; {执行语句}
语句2; {执行语句}
…… {执行语句}
End. (End;){结束程式}
上面程式由如下两部分组成:
1、程式首部
程式首部是程式的开头部分,由保留字program后,接程式名及程式参数表组成,结束时一定要有分号。程式名yzhch是用户自己定义的标识符,参数表一般是档案变数名,用于该程式与外界的数据交流。最常用的参数为input和output。Turbo Pascal程式首部中参数表可以省略。
2、程式说明部分
Pascal语言要求用户将在程式中所使用的标号、常量、类型、变数、记录、档案、以及过程和函式除了Pascal自己预先定义的标準量之外,都必须在说明部分说明后才能在程式执行部分使用。但各个内容部分是可选的,只有执行程式部分需要的时候才进行说明。
3、程式执行部分
紧接着说明部分的begin和end之间的部分为程式的执行部分。它由一系列语句组成,一条语句执行一定的功能,所有语句完成程式设计的任务。语句之间用“;”隔开,允许一行写多个语句,也允许一个语句写多行。最后一行的end后加“.”号表示结束。所跟其后的语句将无任何作用。Begin与end应配对出现,这是每一个Turbo Pascal程式都必须的。
注意:后面将学习到的语句中,也需要引用begin和end作为程式段的分隔标记,但其必须遵守语句规则。

字元集和符号

基本字元

(1)字母:A到Z,a到z和_(下划线)
(2)数字:0、1、2、3、4、5、6、7、8、9
(3)特殊字元:+、-、*、/、=、^、<、>、(、)、[、]、{、}、.:;、'、#、$、@
赋值运算符::=
关係运算符:>、<、<>、=、>=、<=
子界分隔设定:..
括弧:[]
注释号:{}

符号

(一)保留字
保留字是由字母拼成的字,Turbo Pascal语言预先规定了他们的意义,不允许被再定义。因此,不能作为用户自定义的标示符,否则Turbo Pascal编译器将提示出错信息。Turbo Pascal共有保留字50多个,如下表所示。
保留字
含义
保留字
含义
And
逻辑“与”运算
Mod
求余运算
Asm
彙编语句调用
Nil
空指针
Array
定义数组
Not
逻辑“非”运算
Begin
複合语句结构部分
Object
对象定义符
Case
情况语句结构部分
Or
逻辑“或”运算
Constructor
构造对象定义
Packed
紧缩数组定义
Destrutor
销毁对象定义
Procedure
过程说明符
Div
整除运算
Program
程式首部定义
Do For
循环语句结构部分
Record
记录定义
Downto For
循环语句结构部分
Repeat Repeat
循环语句结构部分
Else
条件语句结构部分
Set
集合定义
End
複合语句结构部分
Shl
二进制左移运算符
Exports
动态程式库输出项目定义
Shr
二进制右移运算符
File
档案定义
String
字元串定义
For For
循环语句结构部分
Then
条件语句结构部分
Function
函式定义
To For
循环语句结构部分
Goto
无条件转移语句
Type
类型说明
If
条件语句结构部分
Unit
多个程式模组说明
Implementation
单位实现部分起始标识符
Until Repeat
循环语句结构部分
In
属于
Uses
单元说明
Inherited
对象继承说明符
Var
变数定义
Inline
机器代码插入指令
While While
循环语句结构部分
Interface
外挂单元档案接口说明
With
开域语句结构部分
Label
标号定义
Xor
逻辑“异或”运算
Library
动态程式库DLL编译指令

类型常量变数

数据类型概念

计算机处理数据对象是一个广义的概念。例如,125、12.76是数据,’xiang qj zhong’这一串字元也是数据。前者是数值数据,后者是字元串数据,是非数值数据。显然,为了表示这些数据,它们在记忆体中必须以不同方式存放。为处理这些数据,计算机对它们施加的运算也不同。为此,Turbo Pascal语言建立了数据类型的概念,对描述的数据进行分类。每一种数据类型定义了一个具有相同性质的数据集合。各种数据类型的数据具有不同的性质。程式中所用到的每一个数据,包括常量和变数都有一个和它相联繫的类型。由此决定了数据所具有的值,也决定了对该数据所能进行的操作。
Turbo 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可以含有多个不同的变数说明,每个变数说明之间用分号隔开,有时称被分号隔开的变数说明为变数说明项。例如:
var
x,y:real;
chl:char;
t,f:boolean;
注意:不同类型的变数一般不能互相串用。
这里还应指出,变数一经说明系统就在计算机记忆体中为其分配一个存贮空间。在程式中使用到变数时,就在相应的记忆体中存入数据或取出数据,这种操作称为变数的访问。

标準数据类型

类型简介

Pascal向程式设计者提供了丰富的数据类型,它们用于专门的目的,但却都是由简单的、非构造型的数据类型所构成的。本节介绍Turbo Pascal中最为基本的几种数据类型:整型、实型、布尔型和字元型。它们都是系统定义的简单数据类型,称为标準数据类型,其对应的名字称为标準标识符。

整型

一个整型数据用来存放整数,整型数据可以是正整数、负整数和整数零。
Turbo Pascal中的整型常数必须按规定严格书写。
Turbo Pascal支持六种预定义整型,它们是短整型(Shortint)、整型(Integer)、长整型 (Longint)、64位整形(int64)、位元组型(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 Mod l000 = 8 (千位数)
利用 a Mod b可以判断a能否被b整除。当a Mod b = 0时,a能被b整除。

实型

一个实型数据用来存放实数。实型数据可以是正实数、负实数和实数零。实型数据一般用小数或指数形式(亦称科学表示法)表示。例如:
+1993,33,3.5E+5(=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’。(此时readln只能读一个字元,read能读一句句子)
由于採用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(逻辑或)
运算关係

函式

标準函式

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):函式值为e(x)
对数函式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

表达式

表达式简介

运算是对数据进行加工处理的过程,得到运算结果的数学公式或其它式子统称为表达式。表达式可以是常量也可以是变数或算式,在表达式中又可分为:算术表达式、逻辑表达式和字元串表达式。

算术表达式

算术表达式是最常用的表达式,又称为数值表达式。它是通过算术运算符来进行运算的数学公式。我们先来看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表达式
注:Turbo Pascal中没有乘方函式,但乘方运算可通过指数函式Exp (x)进行,如计算x^y,有
x^y=e^(y*lnx)=Exp(y*Ln(x))

逻辑运算

逻辑运算的结果只有两个:True(真)和False(假)。Visual Basic提供了六种关係运算符和三种逻辑运算符:
=(等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、<>(不等于)
NOT(非)、AND(与)、OR(或)
运算关係
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。

优先顺序

在进行表达式的转换过程中,必须了解各种运算的优先顺序,使转换后的表达式能满足数学公式的运算要求。运算优先顺序为:
括弧→函式→乘、除→加、减→字元连线运算符→关係运算符→逻辑运算符
如果同级的运算是按从左到右次序进行;多层括弧由里向外。
例:
(10+6)*3^2*COS(1)/2*8+7
① ④ ③ ⑤ ② ⑥ ⑦ ⑧
Sqrt(Abs(p/n-1))+1
④ ③ ① ② ⑤

主要语句

赋值语句:<变数>:=<表达式>;
输入语句;Read([<档案>,]<变数1>,[<变数2>,[…]]);或ReadLn([<档案>,][<变数1>,[<变数2>,[…]]]);
输出语句:格式同上,Write Writeln
判断语句;if <Boolean表达式> then <语句块1> else <语句块2>

常见错误

1 无效DOS功能号
2 档案末找到
3 路径未找到
4 打开档案过多
5 禁止档案存取
6 无效档案句柄
12 无效档案存取代码
15 无效驱动器号
16 不能删除当前目录
17 不能跨驱动器改档案名称
100 Disk read error 磁碟读错误
101 Disk write error 磁碟写错误
102 档案变数末赋值
103 File not open 档案未打开
104 File not open for input 档案未用输入方式打开
105 File not open for output 档案末用输出方式打开
106 Invalid numeric format 无效数字格式
150 磁碟防写
151 未知单元
152 驱动器未準备好
153 未知命令
154 数据CRC校验错
155 驱动器请求的结构长度错
156 磁碟定位错
157 未知媒介类型
158 扇区末找到
159 印表机缺纸
160 设备写失败
161 设备读失败
162 硬体故障
200 Division by zero 被零除
201 Range check error 数据範围检查错
202 Stack overflow error 堆叠溢出错
203 Heap overflow error 堆溢出错
204 Invalid pointer operation 无效指针操作
205 Floating point overflow 浮点上溢出
206 Floating point underflow 浮点下溢出
207 Invalid floating point operation 无效浮点运算
208 未安装覆盖管理程式
209 覆盖档案读错
210 Object not initialized 对象未初始化
211 Call to abstract method 调用抽象方法
212 Stream registration error 流登计错
213 Collection index out of range 集合下标越界
214 Collection overflow error集合溢出
215 Arithmetic overflow error 算术上溢错误
216 General protection fault 存取非法
217 控制-C
218 授权指令
219 无效的TYPECAST
220 无效的变体TYPECAST
221 无效的变体操作
222 没有变体方法调用DISPATCHER
223 不能建立变体数组
224 变体不包含数组
225 变体数组边界错误
226 TLS初始化错误
这些是编译错误:
l记忆体溢出
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被零除D
63无效档案类型
64不能读写该类型的变数
65缺指针变数
66缺字元串变数
67缺字元串表达式
68单元循环引用
69单元名不匹配
70单元版本不匹配
71单元重名
72单元档案格式错误
73缺IMPLEMENTATl0N
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初始条件定义错
13l过程和函式头与前面定义的不匹酉
132严重磁碟错误
133不能计算该表达式
134表达式错误结束
l35无效格式说明符
136无效间接引用
137此处不允许结构变数
138无SYSTEM单元不能计算
l39不能存取该符号
140无效浮点运算
141不能将覆盖编译至记忆体
142缺过程和函式变数
143无效过程或函式引用
144不能覆盖该单元
147缺对象类型
148不允许局部对象类型
149缺VIRTUAL
150缺方法标识符
151不允许虚拟构造方法
152缺构造方法标识符
153缺释放方法标识符
154FAIL只允许在构造方法内使用
155无效的操作符和运算元组合
156缺记忆体引用
l57不能加减可重定位符号
158无效暂存器组合
159未激活286/287指令
160无效符号引用
161代码生成错
162缺ASM

单元库

单元名称
主要功能
system
Turbo Pascal的运行库,包括常用的标準函式和过程,可以在程式中直接使用,不需要uses语句说明。
dos
具有日期、时间、目录查找、程式执行等功能。
crt
具有萤幕模式控制、拓展键盘码、颜色、视窗、声音等功能。
printer
支持列印输出操作。
graph
高级图形软体包,支持多种图形适配器。
graph3
实现Turbo Pascal 3.0 的图形软体包。
turbo3
兼容Turbo Pascal 3.0 的源程式。
overlay
实现高级覆盖管理。

标準函式

自变数类型→
函式值类型↓
integer
整数
real
实数
char
字元
boolean
布尔
integer
整数
abs
sqr
pred
succ
trunc
round
ord
ord
real
实数
sin
cos
arctan
ln
exp
sqrt
sin cos
arctan
ln
exp
sqrt
abs
char 字元
char
pred
succ
boolean 布尔
odd

ASCII码

常用字元ASCII码
字元
ASCII
字元
ASCII
(nul)
0
:
58
(enter)
10
;
59
(spacebar)
32
<
60
!
33
=
61
"
34
>
62
#
35
?
63
$
36
@
64
%
37
A~Z
65~90
&
38
[
91
'
39
\
92
(
40
]
93
)
41
^
94
*
42
_
95
+
43
a~z
96~122
,
44
{
123
-(减号)
45
|
124
.
46
}
125
/
47
~
126
0~9
48~57

循环结构

计数循环

Turbo Pascal循环结构
for/to/do语句
格式有两种:
格式一:for 控制变数 := 初值 to 终值 do
循环体语句;
格式二:for 控制变数 := 初值 downto 终值 do
循环体语句;
执行的过程是:
1.先将初值赋值给控制变数
2.比较控制变数和终值,如果超过(to为大于,downto为小于,需要注意)则不执行循环体语句,直接结束循环,否则执行循环体语句。
3.将控制变数的后继值(对于downto是前驱值)赋值给控制变数,并重複第2步骤。

当型循环

while/do语句
格式为:while 布尔表达式 do 语句;
执行的过程是:
先求布尔表达式的值,当其值为真时,重複执行指定语句,当其值为假时,终值循环。

直到型循环

repeat/until语句
格式为:
repeat
语句1;
语句2;
……
语句n;
until 是布尔表达式;
执行的过程是:
先执行指定的语句序列,然后判别条件,当条件不成立时,继续执行指定语句序列,直到条件成立才终止循环。

标 签

搜索
随机推荐

Powered By 种豆资源网||