网站大量收购独家精品文档,联系QQ:2885784924

FP的初步介绍.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FP的初步介绍

《关于Free Pascal的使用技巧》 FP的缺陷 一、Help的空缺 通常,Help选项栏应当包含以下内容: (1)Reserved words 保留字 (2)Standard units 标准单元 (3)TurboPascal Language 基本语言 (4)Error message 出错信息 FP有win32和go32v2两个版本,win32中Help选项的内容是很齐全的,但go32v2却基本空缺。为弥补这一点,我们所能做的就是: 平日训练中熟记这些帮助信息; 阅读win32中的帮助信息; 二、Debug的不便 调试前的几点注意事项 增加程序本身的稳定性 a)静态查错 为了减少无谓的调试,这一步很重要。往往一个TB中很容易查出的错误,FP却要花费惨重代价。 b)很小的数据可以手工运算 就好比分区联赛初赛中的根据程序写运行结果一样,一些低级错误尽量不要依靠调试来检查。 检查数组和数据的范围 FP中有些错误同TP一样,会提前报告,如: 错误类型 举例 报告信息 数组赋值越界 var a:array[1..10]of integer; begin a[0]:=0; end; Range check error while evaluating constants 数据赋值越界 Var x:integer; Begin A[x]:=2147483647; End. Incompatible type:Got “S80real” expected “Smallint: 但有些错误不会提前报错,如: 错误类型 举例 造成影响 数据循环越界 Var x:integer; Begin For x:=1 to 32769 do Write(x); End. X既不是由1循环至32769,也不是由1循环到32767,而是由1循环至2。输出结果为: 1↙ 2↙ 数组下标循环越界 Var I:integer; A,b:array[1..5]of integer; Begin For I:=1 to 5 do b[I]:=I; For I:=1 to 6 do a[I]:=I; End. 会不定性的出现两种情况: 情况1:程序运行到a[6]:=6是出错中止,出现 “000070E7 SYSTEM$$_HAND LEERRORADDRFRAME$LONG INT$LONGINT$LONGINT( )”等信息 情况2:a[6]:=6语句的出现会修改其它变量比如b[1]的值。这一点比较像Delphi5。 字符串长度越界 Var I:integer; S:string; Begin S:=’’; For I:=1 to 256 do S:=s+chr(I mod 10+48); Writeln(length(s)); Writeln(s); End. 对于超出长度范围上界的字符串部分,所有操作一律无效。 输出结果为: 255↙ 1234567890.…………. ……6789012345↙ 集合范围越界 Var I:integer; S:set of 1..128; Begin S:=[1..10]; For I:=0 to 128 do If I in s then writeln(i); End. 虽然单独写入s:=[0..10]的语句,FP无任何不良反应,但程序运行到“if 0 in s then writeln(0)“时会出错终止,哪怕程序第3行写入的是语句s:=[1..10]也同样不能做if 0 in s的判断。 空间溢出 Var a:array[1..100000000]of longint; Begin End. FP不会提前报错,但一运行程序,就会因空间溢出而出错中止。 对于不会报告的错误,倘若是空间溢出等,虽然在调试过程中会出现挂机、莫名退出程序、跟踪光条消失种种问题,让人甚为恼火,但相比之下,数据循环越界、数组下标越界等FP自以为“兼容”的问题,却更加可怕。它们很隐蔽的潜藏起来,如果不加注意,只关心算法本身的正确性,会耗费很多调试程序的时间,这是不值得的。 (3)把数组开小一点 若不然,FP会出现莫名其妙退出的现象,哪怕程序毫无错误。 编程过后要存盘。 存盘是当然,不然FP会报告Cant compile unsaved file!信息,以防止程序意外丢失。 调试时的几点注意事项 模块调试 这种分治策略,针对FP IDE速度慢,而且Bug多的特点,降低了调试难度。 避免使用F7 F7经常失效,它往往拒绝进入子程序展开进一步的跟踪。这时,F4可以代替F7完成工作。切记这一点

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档