- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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完成工作。切记这一点
您可能关注的文档
最近下载
- DLT441-2004《火力发电厂高温高压蒸汽管道蠕变监督规程》.pdf VIP
- Unit3LivingLegendsReadingandThinking教学设计高中英语人教版.docx VIP
- 五年级美术《为作文画插图》.ppt VIP
- 2026届新高考物理冲刺复习“配速法”解决带电粒子在复合场中的运动.pptx VIP
- 玉米期货分析报告.docx VIP
- 铁道工程技术论文-铁路路基边坡病害及处理措施.docx
- 2025年小学语文部编版五年级下册《选择题》专项练习题(共4组,附答案)(必考.pdf VIP
- 信息系统应用安全第5部分:代码安全检测10929-2020-.pdf
- 月饼安全生产培训.pptx
- 2024年新高考Ⅰ卷、Ⅱ卷、甲卷诗歌鉴赏试题讲评课件.pptx
文档评论(0)