free pascal和turbo pascal的区别

free pascal和turbo pascal的区别


我NOIP2005进了决赛。。but,我不知道FP和TP的区别~我不会用FP的。。我要恶补一下了。。
[转载]虽然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,因此要求程序中的文件名和系统中的文件名一样。
看不懂你问的东西,不好意思. 


VC++中怎么向串口发送8位数据?
VC++中怎么向串口发送8位数据?
asp.net怎么学?
怎样管理一个网站?应注意些些问题?
如何把sql表头导出为excel表
c语言最基础的问题
VB编写计算器中的那个小数点怎么实现?
为什么?为什么?为什么?为什么?
上海有多少JAVA程序员
请教如何有用PHP下载需输入登陆信息的网页的内容?谢谢!
上海JAVA程序员的工资大概在多少?
C问题!!
java编的CLASS文件无法打开
C#.net工资有多少
数据库的学习有什么好的资料和案例?
网页:如何让连接打开为新开窗口?
php程序员工资多少
怎样在网站首页调用PHPWIND帖子的内容?
struts 中<html:hidden>的问题
在EXCEL数据库中如何实现输入一个属性比如:姓名是汪洋,便可以得到关于这个人的所有信息
asp问题:recordset对象的游标问题
最新的程序开发工具是什么?
请问windowsACCESS 效果怎么样?我只想建立一个简单的数据库,要求不高
关于C语言
请问,什么结构的数据库好,树形的如何?我要建立一个文件查询数据库
求个人发展经验:毕业,工作,创业,爱情,如何少走弯路
堆排序的具体算法
下列数据或公式的值被Excel视为字符型数据的是()。
VC++6.0的MSDN和.net的MSDN一样吗?
在Excel中关于函数COUNT()与函数COUNTA()的叙述中正确的是()。
在哪可以找到excel vba 视频教程
哪里有PowerDesign11中文版下载
VB中如何删除选中的listbox中的项目
asp问题:数据库
有那个大侠会做搜索引擎网,我有偿学习帮我制作
你学过ASP.NET吗?
ADO连接数据库登陆失败原因
关于一个批处理文件的问题
为什么人能开发出这么多东西呢
求答:C#简单问题
看看这里面是什么
汉化软件过程中,该如何解决双字节问题?
debugger图书
在没有数据库支持的前提下网页是否可以实现简单的动态更新?
Delphi编程时候窗口弹出问题。
C++和VC++有很大区别吗
C、C++,Foxpro、Foxbase,都是什么关系?学哪个好?
谁有仿黑客帝国的数字流版JS在代码。
C#中关于访问级别的简单问题
Movie Maker怎么用?
请问哪里有wmv编辑方面的编程资料
二叉树的非递归遍历?要有讲解 不要纯程序~!!
我这个单链表类怎么在主程序中初始花对象
尴尬的五笔代码
QQ是用什么语言编写的?
coldfusion怎么产生介于两个数之间的随机数(比如1到100之间)
请教c语言编程问题.先谢过了~~~
网页编程!急!!!
用那种数据库比较好,能到入现成的EXCEL表,汇总需做些字段的调整
ASP文本框提交后数据的获取
如何学习C++
请教学编程的方法?
有谁知道如何下载swf文件
vb中如何跳过错误
有那位程序高手帮帮忙
在什么网上能找到编程的汉化补丁
vb的Initialize事件到底是什么意思?是在LOAD之前发生的?不明白
汇编语言的编程环境是什么
怎么使用MFC
谁能告诉我linux下出core,core究竟是什么?
怎样才能在制作FLASH游戏时实现存档功能
很简单但我不会的关于C++的问题
怎样建立传奇私服~~~
asp中为什么不能修改数据库
php如何引用flash中的变量?
如何让服务器同时支持utf-8 与 gb2312
用C语言for语句编出一条程序
c++在中国有哪些开发方向?
C#简单问题
XP下如何支持VB.net编写的程序
delphi 文本框问题
asp有那些标记符号?
delphi语言应用在哪些方面?发展前途如何?怎样把它学好 ?
请教汇编语言ASCII
Cocoon是什么语言?
运行程序时出现“一闪而过”是什么原因?
哪里有汇编语言的详细视频教程
谁会photo shoP
个位高手请问一下关于vb的问题?
如何在SQL SERVER 2000 里打开一个数据库???
dll如何自动挂到其它程序
关于C语言的手提式类型转换
vc与tc的问题?
什么程序能处理图片
C++程序语言有哪些比较容易懂的入门教程啊?
C语言编程
如果用ASP实现在ACCESS数据库中添加新表
free pascal和turbo pascal的区别
用C语言for语句设计一个小游戏
如何将DATALISST 与ADO绑定?

100
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 926337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386