FP的技巧与数据类型_常用的标准数据类型

2020-02-28 其他范文 下载本文

FP的技巧与数据类型由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“常用的标准数据类型”。

FP的技巧与数据类型

[日期:2005-11-05]

来源: 作者:myheimu

[字体:大 中 小]

FreePascal中的基本数据类型

预定义整型

类型

范围

长度(字节)

Byte

0..255

Shortint

-128..127

Smallint-32768..32767

Word

0..65535

Integer either smallint, longint or int64

size 2,4 or 8

Cardinal either word, longword or qword

size 2,4 or 8

Longint-2147483648..2147483647

Longword 0..4294967295 4

Int64-***5808..***5807 8

QWord 0..***709551615

支持的实型

类型

范围

有效宽度

长度(字节)

Real platform dependant

???or 8

Single 1.5E-45..3.4E38

7-8

Double 5.0E-324..1.7E308

15-16 Extended 1.9E-4951..1.1E4932

19-20

Comp

-2E64+1..2E63-1

19-20 MAXINT和MAXLONGINT分别代表最大的INTEGER和LONGINT,则最小的就分别为MAXINT-1和MAXLONGINT-1

Free Pascal 和Turbo Pascal 的主要区别

虽然Free Pascal尽量设计得和Turbo Pascal接近,但是由于以下的两个原因,两者之间还是有一些区别的:

1. Free Pascal是一个32位的编译器,而Turbo Pascal只是16位编译器; 2. Free Pascal是一个跨平台的编译器,而Turbo Pascal只在windows上使用。如果你的代码是遵守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,因此要求程序中的文件名和系统中的文件名一样。(注:以上内容主要参考了参考文献[1])参考文献:

[1] Users’ manual for Free Pascal, version 1.9.6, Document version 2.0, December 2004 Micha?l Van Canneyt, Florian Kl?mpfl

function binstr(value:longint;cnt:byte):string;将value转二进制,取后cnt个字符所成字串 function lowercase(c:char or string):char or string;upcase 的反函数

procedure setlength(var s:string;len:longint);将s长度定为len function power(base,expon:real):real;base的expon次方

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 函数 测试变体是否为unaigned varisnull 函数 测试变体是否为null vartodatetime 函数 将给定的变体转换为日期时间 vartype 函数 将变体转换为指定的类型并保存他 visible 属性 控件的可见性

wantreturns 属性 为true时,按回车键产生一个回车符;为false时,按下ctrl+enter才产生回车符 write 命令 对有格式的文件,写一变量到文件组件中;对文本文件,写一个或多个值到文件

《FP的技巧与数据类型.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
FP的技巧与数据类型
点击下载文档
相关专题 常用的标准数据类型 数据类型 技巧 fp 常用的标准数据类型 数据类型 技巧 fp
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文