回 帖 发 新 帖 刷新版面

主题:[转帖]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,因此要求程序中的文件名和系统中的文件名一样。

回复列表 (共2个回复)

沙发


   收藏本页
联系我们
论坛帮助
  
   
   帅气⑩分 重登录  隐身  用户控制面板  搜索  风格  论坛状态  论坛展区  道具中心  退出  

>> 集体备课教案、习题、试卷交流  我的收件箱 (1)  
小学数学教学网论坛 → 在线备课 → 六年级备课室 → 这两句话有区别吗?(有关倒数的)  

        您是本帖的第 63 个阅读者
  标题:这两句话有区别吗?(有关倒数的)  树形   打印   收藏   推荐    
    whyangzhou   
    
    
    等级:数学入门
    文章:5
    积分:85
    注册:2005-02-16        楼主


这两句话有区别吗?(有关倒数的)

1/3与1/4的倒数和是多少

1/3与1/4的倒数的和是多少

这两句话表达的意思有差别吗?我们几个同事讨论过,但意见不统一,各位认为呢?



2005-09-28 21:11           


举报帖子
复制贴子
加为精华
单贴屏蔽
帖子评价
使用道具
    luojun   
    
    
    头衔:小学数学教师
    等级:数学中年级
    文章:259
    积分:358
    注册:2005-08-30        第 2 楼



我觉得一样呀


2005-09-28 21:15           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价
使用道具
    蒋义   
    
    
    头衔:常客
    等级:数学低年级
    文章:191
    积分:316
    注册:2004-09-19        第 3 楼




有区别!

第一句话文诌诌的!前一句是两个数要分别求倒数,然后再将两个倒数加起来;而后一句是1/3加上1/4的倒数。

我认为小学里学生其实只要搞清楚“倒数的和”与“和的倒数”不同就可以了!搞这么复杂!连老师都不太分得清!我们教研室的主任曾经说过,讲了学生也不懂的题目,干脆别讲!



[此贴子已经被作者于2005-9-28 21:27:57编辑过]

--------------------------------- 一切随缘!


2005-09-28 21:21           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价
使用道具
    whyangzhou   
    
    
    等级:数学入门
    文章:5
    积分:85
    注册:2005-02-16        第 4 楼




是吗?

前一句是两个数分别先求倒数,然后将两个倒数加起来。

而后一句是1/3+1/4的倒数。

不知这样理解是否合理?



2005-09-28 21:21           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价
使用道具
    whyangzhou   
    
    
    等级:数学入门
    文章:5
    积分:85
    注册:2005-02-16        第 5 楼



同意三楼的意见,这样就清楚多了。谢谢!


2005-09-28 21:34           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价
使用道具
    djx1018   
    
    
    等级:学龄前儿童
    文章:16
    积分:92
    注册:2005-09-22        第 6 楼


[分享]

我的理解是:第一句是1/3的倒数+1/4的倒数,第二句是1/3+1/4的倒数



2005-09-29 08:18           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价
使用道具
    天空有风   
    
    
    等级:学龄前儿童
    文章:21
    积分:92
    门派:无门无派
    注册:2004-04-06        第 7 楼




同意,这两句话不一样。



2005-09-29 12:58           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价
使用道具
    钟言   
    
    
    等级:数学入门
    文章:2
    积分:53
    注册:2005-09-22        第 8 楼




两句都应该是1/3+1/4的倒数。如果要求1/3的倒数+1/4的倒数应该表述成:1/3的倒数与1/4的倒数的和是多少?原题中的倒数是指1/4的,而不是1/3的。打个比方:我的一本书与你的一本书,不能把这句话并成“我与你的一本书”。



2005-09-29 13:34           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价
使用道具
    问天   
    
    
    头衔:海安的小学教师
    等级:版主
    文章:3001
    积分:4090
    注册:2003-12-23  QQ        第 9 楼




以下是引用whyangzhou在2005-9-28 21:11:04的发言:

1/3与1/4的倒数和是多少

1/3与1/4的倒数的和是多少

这两句话表达的意思有差别吗?我们几个同事讨论过,但意见不统一,各位认为呢?

真不知道是考老师还是考学生!老师都要讨论好久,为什么还要让学生来做呢!


原来如此,便对吗?


2005-09-29 13:53           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价
使用道具
    hap2003   
    
    
    头衔:海蓝
    等级:版主
    文章:3989
    积分:6278
    注册:2004-12-26  QQ        第 10 楼




以下是引用问天在2005-9-29 13:53:43的发言:


真不知道是考老师还是考学生!老师都要讨论好久,为什么还要让学生来做呢!


老师命题时还是应该让学生看得明明白白 !

“休闲娱乐”版期待您的光临!  [COLOR=#Ffff00] “教育不是灌输,而是点燃火焰。” ——苏格拉底[/COLOR]


2005-09-29 14:48           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价
使用道具


选取所有╋社区服务区  ├站务论坛╋小学数学教育论坛  ├教学论坛  ├教材论坛  ├编者在线  ├在线投稿  ├实验园地  ├教育日记  ├课件家园╋在线备课  ├一年级备课室  ├二年级备课室  ├三年级备课室  ├四年级备课室  ├五年级备课室  ├六年级备课室╋学生天地  ├学习辅导  ├快乐数学园  ├专题探究╋综合讨论区  ├好书推荐  ├竞技体育  ├休闲娱乐  12   10   1/2页      1   2      



快速回复:
           发贴表情  
      
      
      
      
      
      

  段落格式 普通格式标题 1标题 2标题 3标题 4标题 5标题 6标题 7已编排格式地址   字体宋体黑体楷体仿宋隶书幼圆新宋体细明体ArialArial BlackCourierVerdanaWide LatinWingdings   字号1234567                                 



          分页:1/7,共49个1234567

显示签名      内容限制:字节.  


管理选项: 专题管理 | 修复 | 锁定 | 解锁 | 提升 | 沉底 | 跟贴管理 | 删除 | 移动 | 设置固顶 | 发布公告  

发短信
购买论坛点券
我能做什么
我发表的主题
我参与的主题
基本资料修改
用户密码修改
联系资料修改
用户短信服务
编辑好友列表
用户收藏管理
个人文件管理
今日贴数图例
主题数图例
总帖数图例
在线图例
在线情况
用户组在线图例
文件集浏览
图片集浏览
Flash浏览
音乐集浏览
电影集浏览
贺卡发送



Powered By Dvbbs Version 7.1.0
Copyright ©2005 小学数学教学网
页面执行时间 0.14063 秒, 5 次数据查询


板凳

楼主抄袭FREE PASCAL说明!

我来回复

您尚未登录,请登录后再回复。点此登录或注册