- 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完成工作。切记这一点
您可能关注的文档
- EMC容灾方案模板.doc
- EMS认证申请书.doc
- Endnote问题交流互动会问题汇集.doc
- EM(最大期望算法)极大似然估计.ppt
- EPC业务流程培训.ppt
- EOS-国内对比.doc
- EPDM橡胶场地施工项目重新发布.doc
- em着和首饰.ppt
- EPS保温板.doc
- Epidemiology of tuberculosis - ??????.ppt
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
最近下载
- 4-1 中化泉州石化 3 万吨年干气脱硫制二甲基亚砜项目设备设计说明书(含塔设备计算说明、换热器设计结果、设备一览表).pdf
- 工程造价_横湖桥商业楼土建工程量清单报价.docx VIP
- 浙江师范大学行知学院 学生手册.pdf
- 2025年辽宁沈阳市文体旅产业发展集团有限公司招聘笔试参考题库附带答案详解.pdf
- 川崎病患儿的护理课件.pptx VIP
- 2024年东莞市东华高级中学自主招生数学试卷附答案解析 .pdf
- 中医馆客服知识培训课件.pptx
- 辽宁沈阳市文体旅产业发展有限公司招聘笔试题库2025.pdf
- 全国公开课大赛一等奖小学一年级下册数学人教版《七巧板》课件.pptx
- 辽宁沈阳市文体旅产业发展集团有限公司招聘笔试题库2025.pdf
文档评论(0)