词条 | Free Pascal |
释义 | Free Pascal 是个由国际组织开发的完全的win32的pascal语言编译器,可编写windows程序。 程序设计介绍(PASCAL语言介绍 PASCAL程序结构 集成环境 运行程序 保留字 标识符 书写格式 PASCAL语言保留字 PASCAL语言中的标识符 标准数据类型 标准函数和过程 表达式 PASCAL结构) 简介Free Pascal是个由国际组织开发的完全的win32的pascal语言编译器,类似delphi,可编写windows程序。 此前被广泛使用的PASCAL编译器普遍为Turbo Pascal& Borland pascal。但是它们可用的空间十分有限。而Free Pascal理论上可以使用4GB内存。所以在利用Free Pascal编程的时候,可以改变原有思路,将大量时间转嫁给空间,提高效率。 区别与 Turbo Pascal 的区别 虽然Free Pascal尽量设计得和Turbo Pascal接近,但是由于以下的两个原因,两者之间还是有一些区别的:1.Free Pascal是一个32位的编译器,而Turbo Pascal只是16位编译器; 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。 扩充Free Pascal相对于Turbo Pascal的扩充 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(a*67); {函数的返回值就是a*67 } end; end; 4. Free Pascal支持函数重载。可以用相同的名字定义不同的函数,只要这些函数的参数不同,就是不同的函数。比如: procedure DoSomething (a : longint); begin {...} end; procedure DoSomething (a : real);begin {...} 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语言介绍PASCAL语言是由瑞士的沃斯(N.Wirth)教授于1971年提出来的。它的命名是为了纪念法国数学家Pascal。它是世界上第一个结构化的高级程序设计语言。结构化程序设计主要由三种基本结构(顺序结构、选择结构、循环结构)组成。后来有人把函数和过程作为第四种基本结构。这四种结构对外看都只有一个入口和一个出口,结构清晰,避免了由GOTO语句所引起的混乱。另外在程序设计方法方面,主张采用自顶向下,逐步求精的方法。即将一个大的复杂问题,划分成若干少的易解决的问题。每个小问题,又可划分成一些更小的更易解决的问题。这样,只要把每个小问题都解决了,整个大问题也就解决了。这种方法也为多个人合作编程提供方便。 由于PASCAL语言具有良好的结构程序设计特性,适合于教学,特别是适合于培养学生掌握自顶向下逐步求精的结构化程序设计思想和方法,并养成良好的程序设计风格和习惯,因此,国内外许多大学都将PASCAL作为一门程序设计教学语言。 PASCAL程序结构例1-1:输入半径求圆的周长和面积? program circle(input,output); const Pi=3.14; var r,L,s:real; begin write('r='); readln(r); L:=2*pi*r; s:=pi*r*r; 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 键:单步执行程序但不能跟踪进入其子程序。 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指出程序执行代码结束。 标识符2. 除了保留字外,还用到标识符,用于表示常量、变量、类型、文件、函数、过程或程序的名字。标识符是以字母开头的字母、数字组合,标识符又分为标准标识符和用户自定义标识符。如例1-1中,用户自定义标识符有:程序名为circle,常量pi,实数型变量r、l和s,它们由程序设计者定义的;标准标识符有:实数标准类型名real,读数标准过程名readln,输出标准过程名write和writeln,标准输入文件input,标准输出文件output。在Pascal编译系统中,标准标识符也具有特殊的含义,我们定义标识符时也应尽量避免与标准标识符取相同名字。PASCAL中的保留字及标识符是不区分大小写的。 保留字 program,const,var,begin,end 标识符 标准标识符 Real,readln,write,writeln,input,output 用户自定义标识符 circle,pi,r,l,s 书写格式程序名说明:program <;用户自定义的程序名>(input,output);其中圆括号的内容称为程序的参数。程序参数指明程序与外部联系的文件名。input是标准输入文件,例如键盘;output是标准输出文件,例如屏幕、打印机等。对于标准设备常可省略(input,output)的说明,简写为:program <;用户自定义的程序名>;;如例1-1可省略简写为:“ program circle; ” 常量定义:Const <;常量标识符>=<;常量>;; ...... <;常量标识符>=<;常量>;; 变量定义:var <;变量表> :<;类型>;; ...... <;变量表> :<;类型>;; 主程序语句部分:begin <;语句>;; ...... <;语句>;; end . 赋值语句:<;变量名标识符>;:=<;表达式>;; 其意义是把右边表达式的运算结果送到左边变量名所对应的数据区中。 读数据标准过程(又称读语句):read(变量表),园括符内必须是已定义过的变量标识符,有多个时变量时可用逗号分隔构成变量表。 输出数据标准过程(又称写语句):write(数据项表)或writeln(数据项表),有多个数据项时要用逗号分隔。数据项可以是字符串(如:'L=',' S=')、变量(如:l、s),如:s:8:2,表示要求输出时数据保留2位小数位,总长度包括小数点为8位;write与writeln区别是writeln完成所有输出后自动换行。 1.2 PASCAL基本组成 1.2.1 PASCAL语言使用的几类基本符号 (1) 大小写英文字母:A,B,...Z,a,b,..z (2) 数字:0,1,2,3,4,5,6,7,8,9 (3) 其它符号:+,-,*,/,=,< >,>=,<=,<,>,(,),[,],:=,',,. :,..,∧ 等。 注意:PASCAL的标识符及保留字定义只能采用上述基本符号,其它特殊符号。例如:αβε∮∞≈,汉字等只能在字符型常量中使用。 PASCAL语言保留字在PASCAL语言中,有些词具有特定的含义。用户必须了解其含义,以便正确的使用,否则会造成错误,这些具有特定含义的词被称为保留字,保留字不能作其它用途,如作变量名等。在Turbo pascal7.0中,保留字默认用白色显示,保留字如下:PROGRAM ,CONST,VAR,BEGIN,END,AND,ARRAY,CASE,DIV,DO,DOWNTO,ELSE,FILE,FOR,FUNCTION,GOTO,IF,IN,LABEL,MOD,NIL,NOT,OF,OR,PACKED,PROCEDURE,PROGRAM,RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,WHILE,WITH等。 1.2.3 语法图说明 语法是语言的结构规则,语言的所有成分都必须符合语法的要求,如果语言的结构规则描述不严密,就会产生歧义。我们在下面说明语法中,采用语法图进行描述,使说明更加简洁。语法图常用的4种图形元素的意义如下: 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等; 指出下面用户自定义标识符为什么会错: begin(系统保留字), 1student(不能用数字开头),student 1(不能有空格), 1.2.5 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; 3.变量说明 PASCAL程序中数值可以改变的量称为变量,由于变量可以取不同的值,因此变量必须通过标识符来代表。程序中出现的每个变量都必须在程序的变量说明部分进行类型说明.变量说明语法图如下: 如:var x,y,z:real; i,j,k:integer; ch:char; t,f:boolean; name:string; 标准数据类型数据的类型确定了该类数据的表示形式和取值范围,而且确定了其所能参加的各种运算。PASCAL语言提供了丰富的数据类型,如下图1.1所示。这里我们先介绍标准类型,其它类型以后用到时才介绍。 1.整型 一个数存放在计算机中都要占用固定的存储空间,这决定了在计算机中的每种数据类型定义的数的大小是有限的,这点与数学中的定义不同,为了节省空间和提高处理速度,我们通常要根椐处理的数的最大可能决定选用不同的数据类型。Byte为信息存储单位。 整数的可选类型如下: 名称 类型标识符 数据表示范围 占用存储空间 整型 integer -32768 ~ +32767 2byte 短整型 shortint -128 ~ +127 1byte 长整型 longint -2147483648 ~ +2147483647 4byte 字节型 byte 0 ~ 255 1byte 字型 word 0 ~ 65535 2byte 例:var i:byte; 当i值取256时出错,因为byte类型只能接受0~255之间的数。可定义大些,如word型 提问:若解题时i的最大可能取值为40000,问i变量应定义为那种数据类型较合适? 2.实型:实型有4种类型,如下表示 实型名称 类型标识符 数据表示范围 有效位 占用存储空间 实型 real -2.9*10^39~+1.7*10^38 11~12 6byte 单精度型 single -1.5*10^45~+3.4*10^38 7~8 4byte 双精度型 double -5.0*10^-324~+1.7*10^308 15~16 8byte 扩展型 extended -1.9*10^-4932~+1.1*10^4932 19~20 10byte 装配十进制型 comp -2^63+1 ~ +2^63 –1 19~20 8byte 注:在Turbo Pascal中,single,double,extended,comp需要计算机的数学协处理器支持,即要在程序首行加入编译开关{$N+},若计算机为486SX以下,没有协处理器,可采用仿真办法,即在程序首行加入编译开关{$N+,$E+} 例:var x:real; 当x的数学值为2时,在计算机中的值为:2.0000000000E+00 当x的数学值为-25时,在计算机中的值为:-2.5000000000E+01 当x的数学值为0.05时,在计算机中的值为:5.0000000000E-02 3. 字符型和字符串型 名称 类型标识符 说明 字符型 char 单个字符用一对单引号括起的数据。 字符串型 string 一个或一串字符用一对单引号括起来的数据。 例:var ox:char; note:string; name:string[5]; 4. 布尔型 名称 类型标识符 说明 布尔型 boolean 值只有true和false,分别表示真和假或对与错。 运算符、标准函数及标准过程 1.运算符 在PASCAL中提供的运算符有算术运算符、关系运算符和逻辑运算符等。不同的运算符都规定了其运算对象的数据类型和运算结果的类型。如下表: 运算符 运算类型 运算对象及类型 结果类型 +、-、* 算术运算 整型或实型 整型或实型 / 算术运算 整型或实型 实型 div、mod 算术运算 整型 整型 not、and、or 逻辑运算 布尔型 布尔型 < 、<= 、= 、> 、>= 、<> 关系运算 标准类型 布尔型 (1)算术运算符+ 、- 、 * 、/ 说明 在PASCAL中乘用“*”表示,除用“/”表示。通过下面例子加深理解: 运算对象及式子 运算结果 结果类型 1+5 6 整型 1.0+5 6.0000000000E+00 实型 6/2 3.0000000000E+00 实型 2*6 12 整型 2.0*6 1.2000000000E+01 实型 (2) 算术运算符div 、mod 说明 div表示求两个整数除的商,mod表示求两上整数除的余数。 运算对象及式子 运算结果 结果类型及说明 7.div 2 3 整型 7.mod 2 1 整型 7.0 div 2 出错 运算对象不允许实数 (4) 关系运算符< 、<= 、= 、> 、>= 、<>;说明 运算对象及式子 运算结果 结果类型及说明 7.>5 true 布尔型 7<>7 false 布尔型 7=7 true 布尔型 7>=7 true 布尔型 7.5>7 true 布尔型 'B'>'A' true 布尔型 'b'>'B' true 布尔型 'abd'>'abc' true 布尔型 说明:字符常量比较大小是按字符对应的ASCII码值大小比较大小。如:字符'A'的ASCII码为65,'B'的ASCII码为66 ,故'B'>'A',在ASCII码表中,小写字母的ASCII值又大过大写字母的ASCII值,故'b'>'B'。字符串的比较是逐个比,直到不同为止,故有'abd'>'abc'。 5. 逻辑运算符not、and、or 运算符 名称 意义 举例 结果 Not 非运算 相当于“求反” not(4>3) F not true false And 与运算 相当于“而且” (4>3) and (2>3) F true and false false Or 或运算 相当于“或者” (4>3) or (2>3) F true or false true 下表说明逻辑运算的运算结果 A B not A A and B A or B true true false true true true false false false true false true true false true false false true false false 6. 字符串连接运算符 + 如:'abc'+'def' 结果为:'abcdef'。 标准函数和过程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),自然对数函等等,请需要时从Turbo Pascal中的英文帮助中查阅。 注:在PASCAL中没有定义幂运算函数xn。但可采用下面式子计算:exp(n*ln(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字符串变量 表达式PASCAL中表达式是由常量、变量、函数、运算符及圆括号(只能用圆括号)连接起来的算式。与普通的算术运算式不同,表达式书写必须符合PASCAL语言规定。语法图如下: 例如:数学式子:的PASCAL表达式为:abs(a-sqtr(c+1))/(a*b)+d PASCAL中运算的优先顺序如下: (1) 括号内表达式优先处理 (2) 函数 (3) NOT (4) AND,*,/,DIV,MOD (5) +,-,OR (6) <,<=,=,>,>=,<>,IN 注:同一个子表达式中,同一优先级的运算按从左到右的次序进行。而且不能用中括号和大括号,只能用圆括号。 例如:下面表达式中,假设x:=2;y:=2:i:=1;请读者分析其优先顺序,为什么 ( x = sqr(2)) or not(y>0) and (( x-y ) /i <> 0 ) PASCAL结构一个较完整和PASC程序结构如下: program 程序名(程序参数表) {$n+.....}(编译开关) uses (使用单元) label 标号说明; const 常量说明; type 类型说明; var 变量说明; function 函数说明; procedure 过程说明; begin 语句; ... 语句; end . Free Pascal扩充了数值位数 报错号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 注意事项在NOIP比赛中使用Free Pascal的注意事项 1.对于文件名,由于windows系统对大小写不敏感,因此在程序中,文件名的大小写是无关的。但是对于其它大小写敏感的系统,比如linux,程序中用到的文件名必须和系统中的文件名完全一致。 由于信息学竞赛的评测系统一般是linux,因此要求程序中的文件名和系统中的文件名一样。即:比赛中涉及的所有文件名(包括源程序名、输入文件名、输出文件名、答案文件名),都必须严格按照题目要求命名,严格区分大小写。 2. 在NOIP比赛中,程序中不得使用题目规定外的其他任何库(unit),一般在试机时确认; 3.在NOIP比赛中,源代码中不得使用编译选项(开关); 4.在NOIP比赛中,禁止使用meml进行掐时。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。