- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Free Pascal与Turbo Pascal的区别
往年信息学竞赛使用的一直是TURBO PASCAL, 2005年的NOIP竞赛时,允许使用Turbo Pascal和Free Pascal,但测试时,使用Free Pascal编译参赛选手的源程序。而根据中国计算机学会NOI科学委员会的消息,以后将仅使用Free Pascal。
FREE PASCAL与TURBO PASCAL在语言方面没有很大的差别,选手只要严格按照标准Pascal语言编程,则使用TURBO PASCAL编写的程序在FREE PASCAL环境下都可以编译和运行,且运行结果与TURBO PASCAL是一致的。
但实际使用过程中,很多老师与学生反映,改用Free Pascal很不习惯,会出现许多莫名其妙的错误;一些原来在Turbo Pascal中编译通过的程序,在Free Pascal中会出现错误。下面结合我指导学生实际使用Free Pascal写程序的体会,谈谈两者的区别。
一.能使用的内存容量的区别
1.Turbo Pascal使用16位编译器,可使用64KB的内存。
216B=26*1024B=64KB
2.Free Pascal使用32位编译器,可使用4GB的内存。
232B=22*1024*1024B=22*1024MB=4GB
二.数据越界时的不同处理
1.数组下标越界时的处理
假定有以下定义:var a:array[1..10] of integer;
(1)则在Free Pascal下,使用a[0]或a[11]等,编译时,出现201错误。
(2)在Turbo Pascal下,默认未定义的a[0]、a[11]为0。
2.Integer或longint型数据越界的处理
例:以下程序,在Free Pascal和Turbo Pascal中执行,分别得到什么结果?
Program ex;
Var I:integer;
begin
I:=500;
I:=I*I;
Writeln(‘I=’,I);
End.
1)在Free Pascal下,出现201错误。
2)在Turbo Pascal下,输出I=-12144
integer型表示数据的范围为-32768至32767,当数据越界时:
Free Pascal:201错误
Turbo Pascal:将越界的数据加上或减去若干个65536,使其在-32768至32767之间。如上例计算后i的值为250000,转换为:
250000-4*65536=-12144。
Longint型的数据越界时,Turbo Pascal会加上或减去若干个4294967296,使其在-2147483848至2147483847之间。
三.如下表所示,表示实数时,无论是有效数字位数,还是所表示数字的绝对值范围,Free Pascal或者与Turbo Pascal同样好,或者优于Turbo Pascal。
类型 Turbo Pascal Free Pascal 备注 Real型 12位有效数字,0及
1.0*10-38至1.7*1038间的小数
16位有效数字,0及1.0*10-308至1.79*10308的小数 实际上,负指数可达-323次,但超过-308次时,会减少有效数字位数 Double型 15位有效数字,0及1.0*10-309至1.79*10308间的小数 16位有效数字,0及1.0*10-308至1.79*10308的小数 使用TP时,须加编译开关{$N+} Comp型 15位有效数字,0至9.223*1018间的0位小数 15位有效数字,0至9.223*1018间的0位小数 1.comp型小数部分的处理:0.5舍入为1;否则舍去
2.使用TP时,须加编译开关{$N+}
四.输出文件的处理
当程序运行结束前,若没有以close命令关闭输出文件,在Free Pascal中该输出文件内容为空。Turbo Pascal不为空。
五.函数的一些不同处理
1.Free Pascal可以返回自定义类型,如自定义的结构类型、指针类型等。
2.Free Pascal支持函数重载Free Pascal是大势所趋。IOI已经做出了这样的决定,中国的NOIP、NOI也应该跟上这一发展趋势。TP对程序的一些限制在某种程度上限制了选手的发挥空间,不利于学生的学习。相信随着Free Pascal在各校的普遍使用,大家会越来越感觉到Free Pascal的优势。
附:Pascal中的常见错误
出错代码 含义 出错代码 含义 1 无效DoS功能号 162 2 文件末找到 200 被零除 3 路径未找到 201 数据范围检查错 4 打开文件过多 202 堆栈溢出错 5 禁止文件存取 203 堆溢出错 6 无效文件句
文档评论(0)