Free Pascal

生活百科 2023-01-26 08:56生活百科www.aizhengw.cn

Free Pascal

Free Pascal(全称 FPK Pascal)是一个32位和64位专业Pascal编译器。它可以在多个处理器架构中运行Intel x86,AMD64/x86-64,PowerPC32/64, SPARC和 ARM。它支持的作业系统有Linux,FreeBSD,Haiku,Mac OS X/ iOS/Darwin,DOS,Windows32/64/CE,OS/2,MorphOS,Nintendo GBA,Nintendo DS和 Nintendo Wii。,在JVM,MIPS 和 Motorola 68k处理器架构或作业系统中使用的Free Pascal正在研发开发版本。

在全国信息学奥林匹克大赛(简称NOI)中,Pascal是被採用的三种程式语言之一。由于它具有良好的结构程式设计特性,特别适合于学生掌握自顶向下逐步求精的结构化程式设计思想和方法,并能构建出良好的程式设计风格和习惯,,Pascal是在NOI中最受选手青睐的语言。同样,许多大学都把Pascal作为一门重要的信息学语言来进行授课。

基本介绍

  • 外文名Free Pascal IDE
  • 语言标準ANSI Pascal
  • 支持平台Windows、Linux、Mac、FreeBSD等
  • 最新版本3.0.0

简介

Free Pascal是个由国际组织开发的完全的win32的pascal语言编译器,类似delphi,可编写windows程式。
此前被广泛使用的PASCAL编译器普遍为Turbo Pascal&Borland pascal。它们可用的空间十分有限。而Free Pascal理论上可以使用4GB记忆体。所以在利用Free Pascal编程的时候,可以改变原有思路,将大量时间转嫁给空间,提高效率。

区别

与 TP

虽然Free Pascal儘量设计得和Turbo Pascal接近,由于以下的两个原因,两者之间还是有一些区别的1.Free Pascal是一个32位的编译器,而Turbo Pascal只是16位编译器;
Free Pascal
2.Free Pascal是一个跨平台的编译器,而Turbo Pascal只在windows和DOS上使用。
如果你的代码遵守ANSI Pascal标準,那幺将代码从Turbo Pascal移植到Free Pascal是没有问题的。
下面是在Turbo Pascal上可以使用,在Free Pascal就不能使用的一些语言特性
1.函式和过程在使用时,参数的类型必须和定义时完全一致。原因是在Free Pascal中添加了函式重载功能(可以用完全相同的多个标识符定义多个函式,只要它们的参数不同,就是不同的函式;在没有此功能时,非整实型的实在参数可以与整形的形式参数赋值相容);
2.Protected、Public、Published、Try、Finally、Except、Raise成了关键字,不能作为标识符的名字;
3.Far、Near不再是关键字了,原因是Free Pascal是32位系统,不再需要这些关键字;
4.布尔表达式不一定要全部进行计算。只要最终结果已经能够确定,就不再计算其它还没有计算的部分了——比如布尔表达式exp1 and exp2 and exp3,如果已知exp1的结果是false,那幺怎幺表达式的结果肯定是false,exp2和exp3就不用进行计算了;
5.在Free Pascal中,集合中的元素都是4个位元组长的;
6.表达式执行的顺序是不确定的。比如对于表达式a:=g(2)+f(3); 不保证g(2)一定在f(3)之前执行;
7.如果用Rewrite打开档案,那幺档案就只能被写入了。如果需要读取这个档案,要对档案执行Reset;
8.Free Pascal在程式结束之前一定要关闭输出档案,否则输出档案可能不能被正确的写入;
9.Free Pascal理论上可以使用4GB的记忆体,实际上几乎可以使用系统中的所有剩余记忆体(除非系统中有记忆体限制),这是由于Free Pascal是32位的编译器。对于Turbo Pascal来说,由于是16位的编译器,不能定义大小超过64KB的数据类型和变数,并且在DOS实模式下可以使用的记忆体总数只有640KB。

扩充

1.函式可以返回複杂的类型,比如记录和数组。
2. 在函式中,函式的返回值通常可以作为一个变数来处理。比如
function a : longint;
begin
a:=12;
while a>4 do
begin
{...}
end;
end;
这个例子在Turbo Pascal中,a>4会被认为是函式的递归调用,在Free Pascal中会认为a只是一个变数。如果想在Free Pascal中实现递归调用,就要写成下面的形式
function a : longint;
begin
a:=12;
{ this is the recursive call }
if a()>4 then
begin
{...}
end;
end;
3. exit可以接受一个参数作为函式的返回值。比如
function a : longint;
begin
a:=12;
if a>4 then
begin
exit(a67); {函式的返回值就是a67 }
end;
end;
4. Free Pascal支持函式重载。可以用相同的名字定义不同的函式,只要这些函式的参数不同,就是不同的函式。比如
procedure DoSomething (a : longint);
begin
{...}
end;
procedure DoSomething (a : real);begin
Free Pascal
{...}
end;
可以使用不同的参数类型longint或者real来调用不同的DoSomething过程。
由于这个功能,函式的提前声明必须有完整的参数声明
procedure x (v : longint) : forward;
{...}
procedure x;{ 这里定义的过程x重载了前面声明的过程x。这里的两个x是不同的}
begin
{...}
end;
5. Free Pascal容许运算符重载。比如,可以自己为矩阵运算定义一个“+”运算。
6. Free Pascal在windows 95及其以上的windows版本上支持长档案名称。对于档案名称,由于windows系统对大小写不敏感,在程式中,档案名称的大小写是无关的。对于其它大小写敏感的系统,比如linux,程式中用到的档案名称必须和系统中的档案名称完全一致。由于信息学竞赛的评测系统一般是linux,要求程式中的档案名称和系统中的档案名称一样。

程式设计介绍

PASCAL语言是由瑞士的沃斯(N.Wirth)教授于1971年提出来的。它的命名是为了纪念法国数学家Pascal。它是世界上第一个结构化的高级程式设计语言。结构化程式设计主要由三种基本结构(顺序结构、选择结构、循环结构)组成。后来有人把函式和过程作为第四种基本结构。这四种结构对外看都只有一个入口和一个出口,结构清晰,避免了由GOTO语句所引起的混乱。在程式设计方法方面,主张採用自顶向下,逐步求精的方法。即将一个大的複杂问题,划分成若干少的易解决的问题。每个小问题,又可划分成一些更小的更易解决的问题。这样,只要把每个小问题都解决了,整个大问题也就解决了。这种方法也为多个人合作编程提供方便。
例1-1输入半径求圆的周长和面积?
program circle(input,output);
const
Pi=3.14;
var
r,L,s:real;
begin
write('r=');
readln(r);
L:=2pir;
s:=pirr;
writeln('R=',r:8:2,' L=',L:8:2,' S=',s:8:2);
end .

集成环境

编辑程式、保存程式
1. 请确定Turbo.exe档案所在磁碟目录。假如它是放在F盘的TP7资料夹(又称子目录)中。
2. 把您要保存程式档案的盘设为当前盘,并保存档案于当前盘的当前目录中。假如您的程式档案要存在H盘的当前目录,则在DOS方式提示符“>;”后输入下面命令。
> h←┘
3.调入并执行Turbo.exe,进入Turbo Pascal集成环境。
> f:\tp7\turbo.exe←┘
4.在程式编辑视窗中,输入例1-1程式。注意一个编辑视窗只能编辑一个程式档案。常用的编辑键有
← ↑ → ↓ 游标移动键。
Delete 删除游标所在字元。
←┘ 回车键,用于换行或在游标处插入一行之用。
5.程式编辑完后,按F10 键,执行主选单[File]中的[Save]项目选单保存程式到磁碟中,并试用“yz1-1.PAS”作为例1-1程式存档档案名称。

运行程式

观察运行结果、跟蹤调试程式
1. 按F10 键,执行主选单[ RUN ]中的[Run]项目选单,运行程式,然后在提示后输入一个调试用的半径值
r= 10←┘
2. 按F10 键,执行主选单[Debug]中的[ output ]项目选单,打开输出视窗观察到结果如下
R= 10.00 L= 62.80 S= 314.00
如果有错,请找出错误并修改它,重複第1步,再执行直到有正确输出结果。
3.重複第1步,运行程式,输入另一个园的半径值5,观察输出结果是否也正确,从而确定该程式能否正确解决不同半径的园的周长和面积的求解问题。
程式调试中我们常用的操作还有
双线框的视窗称为“当前活动视窗”。
F1 键得到游标所在位置的项目的帮助信息。
F4 键要求运行到当前游标处暂停。
F5 键放大或缩小当前活动视窗。
F6 键切换其它视窗为当前活动视窗。
F7 键单步执行程式并能跟蹤进入子程式(或开始单步执行)。
F8 键单步执行程式但不能跟蹤进入其子程式(或开始单步执行)。
F9键运行、编译程式。
F10 键在选单和活动视窗间转换。
CTRL + Break 键强制终止当前程式的运行。
其它功能按键请同学们以后自己查看英文帮助说明,出色的程式设计师都习惯查看英文帮助。
4.学习跟蹤调试方法,它可帮助我们检查分析出算法上存在的错误。
1. 按F10 键,执行主选单[Debug]中的[ Watch ]项目选单,打开监视视窗
(2) 按 Insert 键,输入常量pi ←┘
Insert 键,输入变数r ←┘
Insert 键,输入变数l ←┘
Insert 键,输入变数s ←┘
3. 请按F8 键或F7单步执行程式直到程式结束,观察上述常量和变数如何变化。
4. 观察程式执行过程中Watch监视视窗中常量和变数的值变化,分析算法是否正确。
说明如果想在程式还未结束前终止程式的单步执行或跟蹤调试,可按F10 键,执行主选单[Run]中的[ Program Reset ]项目选单。
1.1.5 关闭当前活动视窗、退出Turbo Pascal集成环境
1. 按 F6 键切换当前活动视窗,执行主选单[Windows]中的[Close]选单项关闭当前活动视窗,如果当前活动视窗是程式编辑窗,在关闭前可能因程式已修改过而提问用户是否需要保存编辑视窗中的被更改后的程式。试逐一关闭所有视窗。
2. 执行主选单[File]中的[Exit]选单项可退出Turbo Pascal集成环境,返回DOS提示符状态。
1.1.6 深入理解例1-1程式各语句意义

保留字

1. 在Pascal中有些词具有特定的含义,用户必须正确理解其含义和正确使用,否则会运行出错。这些具有特定含义的词称为“保留字”。“保留字”不能做常量名、变数名或程式名。在Turbo Pascal7.0编辑视窗中,保留字默认用白色显示。例1-1中的包含的保留字有program,const,var,begin,end,它们的特定含义分别是program 指出后面定义的是程式名;const指出后面定义的是程式将用到的常量;var指出后面定义的是程式将用到的变数;begin指出程式执行代码开始;end指出程式执行代码结束。用户必须了解其含义,以便正确的使用,否则会造成错误,这些具有特定含义的保留字不能作其它用途,如作变数名等。在Free Pascal 2.6.2中,保留字共有93个,默认用白色显示,保留字如下
Free Pascal 2.6.2用户手册附录-保留字
absolute,abstract,and,array,as,asm,assembler,begin,break,case,cdecl,class,const,constructor,continue,cppclass,deprecated,destructor,div,do,downto,else,end,except,exit,export,exports,external,experimental,fail,false,far,file,finally,for,forward,function,goto,if,implementation,in,index,inherited,initialization,inline,interface,interrupt,is,label,library,mod,name,near,nil,not,object,of,on,operator,or,otherwise,packed,popstack,private,procedure,program,property,protected,public,raise,record,reintroduce,repeat,self,set,shl,shr,stdcall,string,then,to,true,try,type,unimplemented,unit,until,uses,var,virtual,while,with,xor。

标识符

2. 除了保留字外,还用到标识符,用于表示常量、变数、类型、档案、函式、过程或程式的名字。标识符是以字母开头的字母、数字组合,标识符又分为标準标识符和用户自定义标识符。如例1-1中,用户自定义标识符有程式名为circle,常量pi,实数型变数r、l和s,它们由程式设计者定义的;标準标识符有实数标準类型名real,读数标準过程名readln,输出标準过程名write和writeln,标準输入档案input,标準输出档案output。在Pascal编译系统中,标準标识符也具有特殊的含义,我们定义标识符时也应儘量避免与标準标识符取相同名字。PASCAL中的保留字及标识符是不区分大小写的。
在PASCAL中有些标识符已定义了特定的含义,称为标準标识符,它们是
标準常量false,true,maxint等;
标準类型integer,real,char,boolean,string,text等;
标準档案input,output等;
标準函式abs,chr,cos,eof,eoln,round,trunc等;
标準过程read,readln,write,writeln,new,reset等;

书写格式

程式名说明program <;用户自定义的程式名>(input,output);其中圆括弧的内容称为程式的参数。程式参数指明程式与外部联繫的档案名称。input是标準输入档案,例如键盘;output是标準输出档案,例如萤幕、印表机等。对于标準设备常可省略(input,output)的说明,简写为program <;用户自定义的程式名>;;如例1-1可省略简写为“ program circle; ”
常量定义const [常量标识符]=[常量]
变数定义var [变数表][类型];
主程式语句部分
begin
[语句1];
[语句2];
......
[语句n]
end.
赋值语句[变数名标识符]=[表达式\变数常量\值];; 其意义是把右边=后面的表达式、变数常量或值送到左边变数名所对应的数据区中。
读数据标準过程(又称读语句)read(变数表)或readln,园括符内必须是已定义过的变数标识符,有多个时变数时可用逗号分隔构成变数表。read和readln的区别是readln完成所有必要的读取后会丢掉这一行的数据,不再进行读取.
输出数据标準过程(又称写语句)write(数据项表)或writeln(数据项表),有多个数据项时要用逗号分隔。数据项可以是字元串(如'L=',' S=')、变数(如l、s),如s:8:2,表示要求输出时数据保留2位小数位,总长度包括小数点为8位;write与writeln区别是writeln完成所有输出后自动换行。
1.2 PASCAL基本组成
1.2.1 PASCAL语言使用的几类基本符号(ASCII码)
(1) 大小写英文字母A,B,...Z,a,b,..z
(2) 数字0,1,2,3,4,5,6,7,8,9
(3) 其它符号+,-,,/,=,< >,>=,<=,<,>,(,),[,],:=,',,. :,..,∧ 等。
注意PASCAL的标识符及保留字定义只能採用上述基本符号,其它特殊符号。例如αβε∮∞≈,汉字等只能在字元型常量中使用。

常量与变数

程式中数据分为两类一类是在程式执行过程中其值保持不变的量,称为常量;另一类是在程式执行过程中,其值可以改变的,这类数据称为变数。根据使用方式的不同,常量又可以分为直接常量和用户定义常量两种。
1.直接常量
指程式中直接引用的常数,在PASCAL中经常使用的常量有整型常数,实型常数,字元型常数和布尔型常数等。
1.整型常数语法图如下
如100,+120,-199,0等。
2. 实型常数语法图如下
如100 , +120 ,2.5,0,0.005,+2.418,1.24E+3 ,-1.24E+3
这里E表示用科学记数法表示,1.24E+3相当于数学的1.24×10^(+3)。
3. 字元型常数语法图如下
如'A','a','?','4','aBbc','12.5'等。
4.布尔型常量
布尔型常量简称为布尔型常数,它只有两个true和false,分别表示逻辑判断的结果是真(True)和假(False)。
2.用户自定义常量
在程式中,如果一个常数反覆多次出现在程式中,用户可以通过说明语句来定义一个标识符来代表这个常量。常量说明语法图如下
如const
pi=3.14;
country='China';
success=true;
,还有一种“强型常量”定义方式,其语法为
CONST
<常量标示符>:<常量类型>=<常量值>;
CONST
a:real=12;
这说明a这个常量是实型常量,即a=1.2000000000E+001
而不是a=12(这个整型)。强型常量常常在与精确度有关的场合用得上!
3.变数说明
PASCAL程式中数值可以改变的量称为变数,由于变数可以取不同的值,变数必须通过标识符来代表。程式中出现的每个变数都必须在程式的变数说明部分进行类型说明.变数说明语法图如下
如var
x,y,z:real;
i,j,k:integer;
ch:char;
t,f:boolean;
name:string;

数据类型

数据的类型确定了该类数据的表示形式和取值範围,而且确定了其所能参加的各种运算。一个数存放在计算机中都要占用固定的存储空间,这决定了在计算机中的每种数据类型定义的数的大小是有限的,这点与数学中的定义不同,为了节省空间和提高处理速度,我们通常要根椐处理的数的最大可能决定选用不同的数据类型。Byte(位元组)为信息存储单位。PASCAL语言提供了丰富的数据类型,这里我们先介绍标準类型和部分构造类型,其它类型以后用到时才介绍。此处“占用存储空间”单位均为位元组(byte)。
1.整型
整型类型
名称类型标识符十进制数据表示範围2的整数幂数据表示範围占用存储空间
整型
integer
-32,768~+32,767
-2^15~+2^15-1
2
短整型
shortint
-128~+127
-2^7~+2^7-1
1
长整型
longint
-2,147,483,648~+2,147,483,647
-2^31~+2^31-1
4
64位长整型
int64
-9,223,372,036,854,775,808~+9,223,372,036,854,775,807
-2^63~+2^63-1
8
字型
word
0~65,535
0~+2^16-1
2
位元组型
byte
0~255
0~+2^8-1
1
双字型
qword
0~4,294,967,295
0~+2^32-1
4
longint
四字型
qword
0~18,446,744,073,709,551,615
0~+2^64-1
8
2.实型
实型类型
名称类型标识符2的整数幂数据表示範围有效位占用存储空间
实型
real
-2.910^39~+1.710^38
11~12
6
单精度型
single
-1.510^45~+3.410^38
7~8
4
双精度型
double
-5.010^324~+1.710^308
15~16
8
扩展精度型
extended
-1.910^4,932~+1.110^4,932
19~20
10
装配十进制型
comp
-2^63~+2^63-1
19~20
8
注在Free Pascal中,single,double,extended,comp需要计算机的数学协处理器支持,即要在程式首行加入编译开关{$N+},若计算机为486SX以下,没有协处理器,可採用仿真办法,即在程式首行加入编译开关{$N+,$E+}。
3.字元型和字元串型
字元型类型
名称类型标识符数据表示範围占用存储空间
字元型
char
ASCII码字元集中的全部字元
1
字元串型
string
长度不超过255的任一串字元
字元串长度
shortstring
长字元串型
ansistring
长度不超过2,147,483,647的任一串字元
开放字元串型
openstring
???
注char是标準类型,string是构造类型。string相当于packed array[x..y] of char。ansistring不能输入空格。
4. 布尔型
布尔型
名称类型标识符数据表示範围占用存储空间
布尔型
boolean
true,false(真,假)
1

运算符


在PASCAL中提供的运算符有算术运算符、关係运算符和逻辑运算符等。不同的运算符都规定了其运算对象的数据类型和运算结果的类型。如下表
运算符定义
运算符运算类型运算对象类型结果类型
+、-、(代表×)
算术运算
整型、实型
整型、实型
/(代表÷)
算术运算
整型、实型
实型
div(整除)、mod(求余)
算术运算
整型
整型
not(非)、and(与)、or(或)、xor(异或)
逻辑运算
布尔型
布尔型
<、>、<=、>=、=、<>
关係运算
所有标準类型
布尔型
注1逻辑运算的运算结果具体说明请看下表。
注2在关係运算中,整型与实型的比较点是数值大小,字元型的比较点是字元的ASCII码的值的大小,字元串型的比较点是从两个字元串的第一个字元起的ASCII码比较,若一样则往后,第二位,第三位类推。若前面都一样,其中一个字元串已没有可以继续比较的字元,那幺另一个字元串大。
其中,最基本情况的逻辑运算的运算结果如下表所示
基本逻辑运算的结果
ABnot AA and BA or BA xor B
true
true
false
true
true
false
true
false
false
fasle
true
true
false
true
true
false
true
true
false
false
true
false
false
false
备注and/or/xor也可对于integer进行计算,即按位进行and/or/xor计算

标準函式和过程

PASCAL中提供了很多标準函式和过程给用户直接使用,方便了我们编程,下面介绍一些常用的标準函式和标準过程,其它函式和过程可以在Trurbo Pascal的帮助档案中查阅。
(1) 算术标準函式
函式名称 X类型 结果类型 说明
abs(x) 绝对值整型,实型整型,实型 Abs(-25)=25
sqr(x) 平方值整型,实型整型,实型 Sqr(5)=25
sqrt(x) 平方根 整型,实型 实型 sqrt(25)=5.0000000000E+00
trunc(x) 取整整型,实型 整型 截取整数部分。trunc(-2.3)=-2
round(x) 取整整型,实型 整型 四捨五入取整。round(-2.6)=-3 round(-2.3)=-2
int(x) 取整整型,实型 实型 截取整数部分int(2.5)=2.0000000000E+00int(-2.5)=-2.000000000E+00
frac(x) 取小数整型,实型 实型 frac(2.5)=5.0000000000E-01
exp(x) 指数整型,实型 实型 例求e3 即,e为2.718exp(3)=2.0085536923E+01
ln(x) 对数整型,实型 实型 例求log10(2)ln(2)=6.9314718056E-01
random 随机数 无 实型 随机产生(0,1)间的随机数
random(x) 随机数整型整型 随机产生[0,x-1]间的随机数
其它函式还有正弦函式sin(x),余弦函式cos(x),反正切函式arctan(x),自然对数函等等,请需要时从Free Pascal中的英文帮助中查阅。
注在PASCAL中没有定义幂运算函式xn。但可採用下面式子计算exp(nln(x))。
(2) 算术标準过程
[1] dec(x) 相当于 x:=x-1
[2] dec(x,n) 相当于 x:=x-n
[3] inc(x) 相当于 x:=x+1
[4] inc(x,n) 相当于 x:=x+n
(3)字元处理标準函式
为了说明方便,设s,str,str1,str2为字元串型(string),ch为字元型(char)变数。
[1] concat(str1,str2)
作用把两字元串连线成新字元中串。
例concat('abc','def') 结果'abcdef'
[2] copy(str,a,b)
作用从字元串str的左边第a(整数)位开始截取b(整数)位字元串。
例copy('abcdef',2,4) 结果'bcde'
[3] length(str)
作用求字元串str的长度。
例length('abcdef') 结果6 ;length('') 结果0 ;length(' ') 结果1
[4] chr(x)
作用求x(x为整数1--255)表示的ASCII代码对应的字元
例chr(65) 结果'A' ;chr(66) 结果'B'
[5] ord(x)
作用求x的序号,其中x必须为有序类型。有序类型如字元型、布尔型、整型、枚举型、子界型等。
例ord('A') 即'A'的ASCII码值为65 ;ord('B') 即'B'的ASCII码值为66
ord(true) 结果1; ord(false)结果0
ord(1) 结果49;ord(0)结果48
[6] pos(str1,str2)
作用求字元串str1在字元串str2中的开始位置,结果为整数。
例pos('abc','efabcdg') 结果3 ;pos('abc','efabfgh') 结果0
[7] upcase(ch)
作用把ch对应的字元转为大写字母。
例upcase('a') 结果'A'
(4) 字元串处理标準过程
[1] delete(str,a,b)
作用从字元串str的左边第a(整数)个字元开始向右连续删除b(整数)位字元,并把剩余字元串赋给str
例str:='abcdefgh';delete(str,4,3); str结果为'abcgh'
str:='abcdef';delete(str,8,3); str结果为'abcdef'
[2] insert(str1,str,a)
作用把字元串str1插入字元串str中由第a(整数)位字元之前,并把新字元串赋给字元串变数str。
例str:='efghy';insert('abc',str,3);str结果为'efabcghy'
str:='efghy';insert('abc',str,8);str结果为'efghyabc'
[3] str(x,s)
作用将x(x为整数或实数)转化为数字字元串,结果存入S。
例str(12.4,s) s的结果为'1.2400000000E+01'
str(12.4:5:1,s) s的结果为' 12.4'。str(124,s) s的结果为'124'
[4] val(str,a,code)
作用将数字字元串转换成数字,并将该数字存入实型或整型变数a中,code为返回的错误代码,code=0 表示转换成功,无错误。
例val('12',a,code) 若a为实型,a的结果为1.2000000000E+01;若a为整型,a的结果为12
(5)布尔型标準函式
[1] odd(x)
作用判断自变数x的奇偶特性,其中x为整型。奇数为true,偶数为false。
例odd(13) 结果true ;odd(10)结果false。
[2] eof(x)
作用判断档案x是否处于结束状态。其中x为档案型变数。档案结束为true,否则为false。
[3] eoln(x)
作用判断档案x是否处于行结束状态。其中x为档案型变数。行结束为true,否则为false。
(6) 顺序类型函式
[1] pred(x)
作用求x的前一个量值,其中x为字元型、布尔型、整型、枚举型、子界型等有序类型。
例pred(6)=5 ;pred('b')='a' ;pred(true)=false ; pred(false)=true
[2] succ(x)
作用求x的后一个量值,其中x为字元型、布尔型、整型、枚举型、子界型等有序类型。
例succ(5)=6 ;pred('a')='b' ;pred(true)=false; pred(false)=true
(7) 标準单元中常用标準过程
Turbo Pascal中系统提供了八个标準单元,分别是system(系统单元)、printer(列印单元)、dos(dos单元)、crt(显示单元)、overlay(覆盖单元)、graph(图形单元)、turbo3(与3.0版兼容单元)、graph3(3.0海龟图形单元)。这些单元中分别定义了大量的函式和过程供用户使用。但注意在使用标準单元的函式和过程前,除system单元可省略说明外,其它要在程式开头说明。说明格式如下uses 标準单元; 或 uses 标準单元1,...,标準单元n;,前面介绍过的标準函式和过程都在system单元中。下面补充一些常用标準函式和过程。
[1] clrscr 过程 在crt单元
格式clrscr 作用清文本萤幕,并将游标移到萤幕左上角。
[2] delay 过程 在crt单元
格式delay(ms) 作用延迟ms毫秒数,其中ms为word型。
[2] gotoxy 过程 在crt单元
格式gotoxy(x,y) 作用称游标到y行x列上,其中x,y为byte型。
[3] sound 过程 在crt单元
格式sound(hz) 作用按hz(word型)指定的频率发音,调用该过程后会一直响,直到调用nosound过程将其关闭。
[4] nosound 过程 在crt单元
格式nosound 作用关闭扬声器。
[5] readkey函式在crt单元
格式readkey 作用从键盘读入一个字元,函式类型结果为char。
[6] exit 过程 在system单元
格式exit 作用退出当前过程或模组。
[7] halt 过程 在system单元
格式halt 作用停止程式执行。
[8] getdate 过程 在dos单元
格式getdate(y,m,d,dw) 作用返回当前日期(年,月,日,星期),其中y,m,d,dw为word型。1980<=y<=2099,1<=m<=12,1<=d<=31,0<=dw<=6(星期日为0)。
[9] gettime 过程 在dos单元
格式gettime(h,m,s,se) 作用返回当前时间(时,分,秒,毫秒),其中h,m,s,se为word型。0<=h<=24,0<=m<=59,0<=s<=59,0<=se<=99秒。
还有setdate(y,m,d,dw),settime(h,m,s,se),请读者查阅Turbo Pascal的帮助档案。
[10] read或readln过程 在system单元
格式read(f,v1,v2,...,vn)或readln(f,v1,v2,..vn) 其中f为档案型变数,标準输入档案input(如键盘输入)时可省,v1,v2,...,vn为变数名表。
作用从标準输入档案(如键盘输入)或磁碟档案中读入数据到变数中,多个变数时,要用逗号分隔。read与readln的区别是readln会掉丢当前输入行中多余的数据。而read不会,多余的数据可留待下一个read或readln使用。
[11] write或writeln过程 在system单元
格式write(f,v1,v2,...,vn)或writeln(f,v1,v2,...,vn) 其中f为档案型变数,标準输出档案OUTPUT(如显示器)可省,v1,v2,...,vn为表达式,且每个表达式的必须有唯一确定值,类型为标準类型。write与writeln区别是writeln输完所有数据项后,游标自动移动到下一行,即自动换行。
pascal函式集
abort函式引起放弃的意外处理
abs函式绝对值函式
addexitproc函式
将一过程添加到运行时库的结束过程表中
addr函式返回指定对象的地址
adjustlinebreaks函式
将给定字元串的行分隔设定调整为cr/lf序列
align 属性 使控制项位于视窗某部分
alignment 属性 控制项标籤的文字位置
allocmem函式在堆叠上分配给定大小的块
allowgrayed 属性 允许一个灰度选择
ansicomparestr函式比较字元串(区分大小写)
ansicomparetext函式比较字元串(不区分大小写)
ansilowercase函式将字元转换为小写
ansiuppercase函式将字元转换为大写
append函式以附加的方式打开已有的档案
arctan函式余切函式
assignfile函式给档案变数赋一外部档案名称
assigned函式测试函式或过程变数是否为空
autosize 属性 自动控制标籤的大小
backgrounddi2001.jpg 属性 背景色
beginthread函式
以适当的方式建立用于记忆体管理的执行绪
bevelinner 属性 控制项方框的内框方式
bevelouter 属性 控制项方框的外框方式
bevelwidth 属性 控制项方框的外框宽度
blockread函式读一个或多个记录到变数中
blockwrite函式从变数中写一个或多个记录
borderstyle 属性 边界类型
borderwidth 属性 边界宽度
break 命令 终止for、while、repeat循环语句
brush 属性 画刷
caption 属性 标籤文字的内容
changefileext函式改变档案的后缀
chdir函式改变当前目录
checked 属性 确定複选框选中状态
chr函式返回指定序数的字元
closefile 命令 关闭打开的档案
color 属性 标籤的颜色
columns 属性 显示的列数
comparestr函式比较字元串(区分大小写)
concat函式合併字元串
continue 命令 继续for、while、repeat的下一个循环
copy函式返回一字元串的子串
cos函式余弦函式
ctl3d 属性 是否具有3d效果
cursor 属性滑鼠指针移入后的形状
date函式返回当前的日期
datetimetofiledate函式
将delphi的日期格式转换为dos的日期格式
datetimetostr函式将日期时间格式转换为字元串
datetimetostring函式将日期时间格式转换为字元串
datetostr函式将日期格式转换为字元串
dayofweek函式返回星期的数值
dec函式递减变数值
decodedate函式将日期格式分解为年月日
decodetime函式
将时间格式分解为时、分、秒、毫秒
delete函式从字元串中删除子串
deletefile 命令删除档案
diskfree函式返回剩余磁碟空间的大小
disksize函式返回指定磁碟的容量
dispose函式释放动态变数所占的空间
disposestr函式释放字元串在堆叠中的记忆体空间
ditherbackgrounddi2001.jpg?
使背景色的色彩加重或减少50%
dragcursor 属性 当滑鼠按下时游标的形状
dragmode 属性 按动的作用方式
dropdowncount 属性 容许的显示数据项的数目
editmask 属性 编辑模式
enabled 属性 是否使标籤呈现打开状态
encodedate函式将年月日合成为日期格式
encodetime函式
将时、分、秒、毫秒合成为时间格式
endmargin 属性 末尾边缘
eof函式
对有类型或无类型档案测试是否到档案尾
eoln函式返回文本档案的行结束状态
erase 命令 删除外部档案
exceptaddr函式返回引起当前意外的地址
exclude函式从集合中删除一些元素
exceptobject函式返回当前意外的索引
exit 命令 立即从当前的语句块中退出
exp函式指数函式
expandfilename函式返回包含绝对路径的字元串
extendedselect 属性
是否允许存在选择模式,true时,multiselect才
有意义
extractfiledir函式返回驱动器和路径
extractfileext函式返回档案的后缀
extractfilename函式返回档案名称
extractfilepath函式返回指定档案的路径
fileage函式返回档案已存在的时间
fileclose 命令 关闭指定的档案
filecreate 命令 用指定的档案名称建立新档案
filedatetodatetime函式
将dos的日期格式转换为delphi的日期格式
fileexists函式检查档案是否存在
filegatattr函式返回档案的属性
filegetdate函式返回档案的dos日期时间标记
fileopen 命令 用指定的存取模式打开指定的档案
filepos函式返回档案的当前指针位置
fileread 命令 从指定的档案读取
filesearch 命令 在目录中搜寻指定的档案
fileseek函式改变档案的指针
filesetattr函式设定档案属性
filesetdate函式设定档案的dos日期时间标记
filesize函式返回当前档案的大小
filewrite函式对指定的档案做写操作
fillchar函式用指定的值填充连续位元组的数
findclose 命令 终止findfirst/findnext序列
findfirst命令 对指定的档案名称及属性搜寻目录
findnext 命令 返回与档案名称及属性匹配的下一入口
floattodecimal函式将浮点数转换为十进制数
floattostrf函式将浮点数转换为字元串
floattostr函式将浮点数转换为字元串
floattotext函式将给定的浮点数转换为十进制数
floattotextfmt函式将给定的浮点数转换为十进制数
flush函式
将缓冲区的内容刷新到输出的文本档案中
fmtloadstr函式
从程式的资源字元串表中装载字元串
fmtstr函式
格式化一系列的参数,其结果以参数result返回
font 属性 设定字型
format函式
格式化一系列的参数并返回pascal字元串
formatbuf函式格式化一系列的参数
formatdatetime 函式
用指定的格式来格式化日期和时间
formatfloat函式指定浮点数格式
frac函式返回参数的小数部分
freemem 函式
按给定大小释放动态变数所占的空间
getdir 返回指定驱动器的当前目录
getheapstatus 返回记忆体管理器的当前状态
getmem
建立一指定大小的动态变数,并将指针指向该处
getmemorymanager 返回记忆体管理器的入口点
glyph函式按钮上的图象
halt 停止程式的执行并返回到作业系统
hi 返回参数的高地址位
high 返回参数的上限值
hint 属性 提示信息
int 返回参数的整数部分
include 添加元素到集合中
insert 在字元串中插入子串
inttohex 将整型数转换为十六进制数
inttostr 将整型数转换为字元串
ioresult 返回最新的i/o操作完成状态
isvalidident 测试字元串是否为有效的标识符
items 属性 默认显示的节点
kind 属性 摆放样式
largechange属性 最大改变值
layout 属性 图象布局
length函式返回字元串的动态长度
lines 属性 预设显示内容
ln函式自然对数函式
lo函式返回参数的低地址位
loadstr 函式
从应用程式的执行档中装载字元资源
lowercase函式将给定的字元串变为小写
low函式返回参数的下限值
max 属性 最大值
maxlength 属性 最大长度
min 属性 最小值
mkdir 命令 建立一子目录
move函式从源到目标複製位元组
multiselect 属性 允许选择几个数据项
name 属性 控制项的名字
new函式
建立新的动态变数并设定一指针变数指向它
newstr函式在堆叠上分配新的字元串
now函式返回当前的日期和时间
odd 测试参数是否为奇数
onactivate 事件 焦点移到窗体上时触发
onclick 事件 单击窗体空白区域触发
ondblclick 事件 双击窗体空白区域触发
onclosequery 事件 使用者试图关闭窗体触发
onclose 事件窗体关闭后才触发
oncreate 事件窗体第一次创建时触发
ondeactivate 事件 用户切换到另一应用程式触发
ondragdrop 事件 滑鼠拖放操作结束时触发
ondragover 事件 有其他控制项从他上面移过触发
onmousedown 事件 按下滑鼠键时触发
onmouseup 事件 释放滑鼠键时触发
onmousemove 事件 移动滑鼠时触发
onhide 事件 隐藏窗体时触发
onkeydown 事件 按下键盘某键时触发
onkeypress 事件 按下键盘上的单个字元键时触发
onkeyup 事件 释放键盘上的某键时触发
onpaint 事件窗体上有新部分暴露出来触发
onresize 事件 重新调整窗体大小触发
onshow 事件 在窗体实际显示之前瞬间触发
ord 返回序数类的序数
outlinestyle 属性 类型
outofmemoryerror 引起outofmemory意外
pageindex 属性 页索引
pages 属性 页
paramcount函式
返回在命令行上传递给程式的参数数量
paramstr 函式 返回指定的命令行参数
pen 属性 画刷设定
pi函式返回圆周率pi
picture 属性 显示图象
pictureclosed 属性 设定closed点阵图
pictureleaf 属性 设定leaf点阵图
pictureminus 属性 设定minus点阵图
pictureopen 属性 设定open点阵图
pictureplus 属性 设定plus点阵图
pos函式在字元串中搜寻子串
pred函式返回先前的参数
random函式返回一随机函式
randomize 函式
用一随机数初始化内置的随机数生成器
read 函式
对有格式的档案,读一档案组件到变数中;对文本
档案,读一个或多个值到一个或多个变数中
readln函式执行read过程,然后跳到档案下一行
readonly 属性 唯读属性
reallocmem函式分配一动态变数
rename 函式重命名外部档案
renamefile函式对档案重命名
reset函式打开已有的档案
rewrite函式建立并打开一新的档案
rmdir函式删除空的子目录
round函式将实数值捨入为整型值
runerror函式停止程式的执行
scrollbars 属性 滚动条状态
seek函式将档案的当前指针移动到指定的组件上
seekeof函式返回档案的档案结束状态
seekeoln函式返回档案的行结束状态
selectedcolor 属性 选中颜色
setmemorymanager函式设定记忆体管理器的入口点
settextbuf函式给文本档案指定i/o缓冲区
shape 属性 显示的形状
showexception函式显示意外讯息与地址
sin函式正弦函式
sizeof函式返回参数所占的位元组数
smallchange 属性 最小改变值
sorted 属性 是否允许排序
sqr函式平方函式
sqrt函式平方根函式
startmargin 属性 开始边缘
state 属性 控制项当前状态
str函式将数值转换为字元串
stralloc函式
给以null结束的字元串分配最大长度-1的缓冲区
strbufsize 函式
返回存储在由stralloc分配的字元缓冲区的最大字
符数
strcat 函式
将一字元串附加到另一字元串尾并返回合併的字
符串
strcomp函式比较两个字元串
strcopy函式将一个字元串複製到另一个字元串中
strdispose函式释放堆叠上的字元串
strecopy 函式
将一字元串複製到另一个字元串并返回结果字元
串尾部的指针
strend函式返回指向字元串尾部的指针
stretch 属性 自动适应控制项的大小
strfmt函式格式化一系列的参数
stricomp函式比较两个字元串(不区分大小写)
stringtowidechar 函式
将ansi字元串转换为unicode字元串
strlcat 函式
将一字元串中的字元附加到另一字元串尾并返回
合併的字元串
strlcomp函式以最大长度比较两个字元串
strlcopy 函式
将一个字元串中的字元複製到另一个字元串中
strlen函式返回字元串中的字元数
strlfmt 函式
格式化一系列的参数,其结果中包含有指向目标缓
沖区的指针
strlicomp函式
以最大长度比较两个字元串(不区分大小写)
strlower函式将字元串中的字元转换为小写
strmove 函式
将一个字元串中的字元複製到另一个字元串中
strnew函式在堆叠上分配一个字元串
strpas函式
将以null结束的字元串转换为pascal类的字元串
strpcopy 函式
将pascal类的字元串複製为以null结束的字元串
strplcopy 函式
从pascal类的最大长度字元串複製为以null结束的
字元串
strpos 函式
返回一个字元串在另一个字元串中出现指针
strrscan函式返 回字元串中出现字元的指针
strscan函式返回字元串中出现首字元的指针
strtodate函式将字元串转换为日期格式
strtodatetime函式将字元串转换为日期/时间格式
strtofloat函式将给定的字元串转换为浮点数
strtoint函式将字元串转换为整型
strtointdef函式将字元串转换为整型或默认值
strtotime函式 将字元串转换为时间格式
strupper函式将字元串中的字元转换为大写
style 属性 类型选择
suce函式返回后继的参数
swap函式交换参数的高低地址位
tabs 属性 标记每一项的内容
tabindex 属性 标记索引
text 属性 显示的文本
texttofloat 函式
将字元串(以null结束的格式)转换为浮点数
time函式返回当前的时间
timetostr函式将时间格式转换为字元串
trim函式
从给定的字元串中删除前导和尾部的空格及控制
字元
trimleft函式
从给定的字元串中删除首部的空格及控制字元
trimright函式
从给定的字元串中删除尾部的空格及控制字元
trunc函式将实型值截取为整型值
truncate函式截去当前档案位置后的内容
unselectedcolor 属性 未选中颜色
upcase 将字元转换为大写
uppercase 将给定的字元串变为大写
val函式将字元串转换为整型值
vararraycreate 函式
以给定的界限和维数建立变体数组
vararraydimcount函式返回给定变体的维数
vararrayhighbound函式
返回给定变体数组维数的上界
vararraylock函式锁定给定的变体数组
vararraylowbound函式
返回给定变体数组维数的下界
vararrayof函式返回指定变体的数组元素
vararrayredim函式
通过改变上限来调整变体的大小
vararrayunlock函式解锁指定的变体数组
varastype函式将变体转换为指定的类型
varcase函式将变体转换为指定的类型并保存它
varclear函式清除指定的变体
varcopy函式将指定的变体複製为指定的变体
varformdatetime函式返回包含日期时间的变体
varisarray函式测试变体是否为数组
varisempty函式测试变体是否为unassigned
varisnull函式测试变体是否为null
vartodatetime函式将给定的变体转换为日期时间
vartype函式将变体转换为指定的类型并保存它
visible 属性 控制项的可见性
wantreturns 属性
为true时,按回车键产生一个回车符;为false时,
按下ctrl+enter才产生回车符
write 命令
对有格式的档案,写一变数到档案组件中;对文本
档案,写一个或多个值到档案中
writeln 命令
执行write过程,然后输出一行结束标誌
widecharlentostring 函式
将ansi字元串转换为unicode字元串
widecharlentostrwar函式
将unicode字元串转换为ansi字元串变数
widechartostring 函式
将unicode字元串转换为ansi字元串
widechartostrvar函式
将unicode字元串转换为ansi字元串变数

外部档案连结函式

适用于所有档案类型
名字
类型
功能
assign
过程
将一个外部档案赋予档案变数
close
过程
关闭一个一打开的档案
eof
函式
确认档案是否结束
erase
过程
删除一个外部档案
rename
过程
重命名一个外部档案
reset
过程
打开一个已存在的档案
rewrite
过程
建立一个新档案并打开
只适用于文本档案
名字
类型
功能
append
过程
打开已存在的档案从尾部添加
eoln
函式
确认档案是否行结束
read
过程
从文本档案读取变数
readln
过程
从文本档案读取变数并换行
write
过程
从文本档案写入变数
writeln
过程
从文本档案写入变数并换行
只适用于类型档案
名字
类型
功能
read
过程
从类型档案读取变数
write
过程
从类型档案写入变数
filepos
函式
返回指定档案位置
filesize
函式
返回档案长度
seek
过程
将指针移动到指定位置

表达式

PASCAL中表达式是由常量、变数、函式、运算符及圆括弧(只能用圆括弧)连线起来的算式。与普通的算术运算式不同,表达式书写必须符合PASCAL语言规定。语法图如下
例如数学式子的PASCAL表达式为abs(a-sqtr(c+1))/(ab)+d
PASCAL中运算的优先顺序如下
(1) 括弧内表达式优先处理
(2)函式
(3) NOT
(4) AND,,/,DIV,MOD
(5) +,-,OR
(6) <,<=,=,>,>=,<>,IN
注同一个子表达式中,同一优先权的运算按从左到右的次序进行。而且不能用中括弧和大括弧,只能用圆括弧。

PASCAL结构

一个较完整和PASCAL程式结构如下
program程式名(参数表);{$E-,$F+,.....}(编译开关)uses使用单元label标号说明;const常量说明;type类型说明;var变数说明;function函式说明;procedure过程说明;operator运算符说明;begin语句;...语句;end.

报错号

free pascal报错号对应翻译

运行错误

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
166缺过程或函式标识符
167不能输出该符号
168外部档案名称重複
169执行档头太长
170段太多

注意事项

在NOIP比赛中使用Free Pascal的注意事项
1.对于档案名称,程式中用到的档案名称必须和系统中的档案名称完全一致。
由于信息学竞赛的评测系统一般是linux,要求程式中的档案名称和系统中的档案名称一样。即比赛中涉及的所有档案名称(包括源程式名、输入档案名称、输出档案名称、答案档案名称),都必须严格按照题目要求命名,严格区分大小写。
2. 在NOIP比赛中,程式中不得使用题目规定外的其他任何库(unit),一般在试机时确认;
3.在NOIP比赛中,原始码中不得使用编译选项(开关);

乱码解决(对于windows10无效)

如果打开Free Pascal时显示的是一堆乱码,这是因为错误地使用中文编码所导致的。
解决方案如下
解决过程
1.在Free Pascal图示上单击右键,弹出快捷选单,选择“属性”;
2.弹出“Free Pascal IDE” 属性对话框,单击“选项”选项卡;
3.把“默认代码页”改为“437 (OEM - 美国)”,单击“套用”,关闭对话框;

乱码解决(针对windows10)

在完成“乱码解决(对于windows10无效)”第三步逗号以前的内容后,选择“使用旧版控制台”单击“套用”,然后关闭对话框。
上一篇:Lexmark 下一篇:Bobby Parvez

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有