free pascal 怎么运行运行一次不能再运行

如何知道pascal程序的运行时间_百度知道 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
FreePascal中如何运行程序、观察运行结果、跟踪调试程序
下载积分:100
内容提示:FreePascal中如何运行程序、观察运行结果、跟踪调试程序
文档格式:PDF|
浏览次数:370|
上传日期: 13:58:47|
文档星级:
该用户还上传了这些文档
FreePascal中如何运行程序、观察运行结果、跟踪调试程
官方公共微信posts - 14,&
comments - 13,&
trackbacks - 3
程序的调试
调试 PASCAL程序
     任何一个天才都不敢说,他编的程序是100%正确的。几乎每一个稍微复杂一点的程序都必须经过反复的调试,修改,最终才完成。所以说,程序的调试是编程中的一项重要技术。PASCAL语言提供了很强大的调试功能,使我们能很方便的找出程序的错误。
   程序错误:
编译错误:即语法错误。如:命令错写,少分号等等。此种错误在程序编译执行就能发现,而把光标停留在错误行上,并显示出错误信息,由用户修改。
运行错误:如果没有语法错误。则程序可以运行,但在运行过程中也有可能出现错误,如程序结构不合理,打印语句错误等。此时,程序将中止运行,光标停留在错误语句处,并显示错误信息,等待用户修改。
逻辑错误:如:程序递归出口设置不正确,逻辑判断设置错误,这样程序虽然能够正常运行,但运行结果却不正确,这是用户最难发现有错误,也是最难查找的错误,此时计算机也无任何错误信息。
TURBO PASCAL的集成调试器
在 TURBO PASCAL语言集成环境中,我们可以非常方便地调试程序。
暂停( CTRL+BREAK):在程序运行过程中,我们可用 CTRL+BREAK暂停程序的运行,此时集成环境会在当前运行到的语句上设置一条光带,表示程序可继续运行。此时,如果要程序继续执行(接着刚刚中断的语句),可用 CTRL+F9(即 RUN功能)继续运行程序;如果不需程序继续运行,可用 CTRL+F2清除光带并复位,这样程序将不能被继续运行。
跟踪( F7):菜单 RUN|TRACE INTO功能能够逐步运行程序,即使在过程中也能逐步运行。
跟踪( F8):菜单 RUN|STEP功能能够使我们逐段运行程序,即子程序中的语句将不会逐步执行。
执行到光标处( F4):把光标移到要执行到的语句行,再用 F4(菜单 RUN|GOTO CRUSOR)可让程序执行到该行暂停。
断点:我们可用 DEBUG|BREAKPOINT功能在光标处行设置程序断点,这样,当程序运行到这里时将自动暂停。清除断点也用此功能。
查看变量或表达式值( CTRL+F4):我们可以在程序未运行、运行暂停、运行结束后用此功能查看变量或表达式的值。
设置动态变量查看( CTRL+F7):我们可用此功能打开 WATCH窗口,在此窗口中增加要查看的变量,这样,我们在用 F7或 F8或在程序暂停时,就能在此窗口中看到要查看的变量的值。
集成环境中的窗口操作: TURBO PASCAL语言是类似 WINDOWS的,也可提供多窗口操作。如:用 F3功能打开一个文件,再用 F3功能打开一个文件,这时,我们就打开了两个窗口。此时,可用 F6在各个窗口之间切换;用 ALT+F3可把当前窗口关闭;用 CTRL+F5可进入改变窗口大小、位置状态,此时,可用光标键上下左右移动当前窗口,也可用 SHIFT+光标键来改变窗口大小。这样,我们就能在屏幕上同时看到文件窗口、 WATCH窗口、 OUTPUT窗口等。
记录文件运行编译环境( CTRL+OO):因为 PASCAL语言是在集成环境中来运行程序,而各台计算机的集成环境设置有可能不同,这样就使得一个文件在一台机器上运行正常,而在另一台机器上运行不正常或不能运行。所以,我们一般都会在程序的 第一行用 CTRL+OO键来记录下当前的程序运行环境,这此在屏幕当前行会出现两行语句,都是用“ {}”括住,以“ $”引导,尤其是第二行是非常重要的,如: {$16384, 0, 655350};是指程序中允许最多打开 16384个栈,这如果是在做一些搜索问题时是不够的,所以我们都会把它改成最大的数值: 65520,请大家记住这个数值,这是 PASCAL语言允许打开的最大栈数。
   我们先编一个比较简单的程序,看看程序是如何调试的。
for i:=1 to 300 do
if i mod 2 = 0 then
if i mod 3 = 0 then
if i mod 5 = 0 then
writeln(i);
   该程序是输出300以内同时能被2,3,5整除的整数。 现在我们开始调试。 调试有多种方法,先介绍一种,权且叫步骤法,步骤法就是模拟计算机的运算,把程序每一步执行的情况都反映出来。通常,我们有F8即STEP这个功能来实现,如图: 不断地按F8,计算机就会一步步地执行程序,直到执行到最后的“end.”为止。
   可能你还没有发现F8的威力,我们不妨把上面的程序略微修改一下,再配合另外的一种调试的利器watch,你就会发现步骤法的用处。
for i:=1 to 300 do
if i mod 2 = 0 then a:=
if i mod 3 = 0 then b:=
if i mod 5 = 0 then c:=
if a and b and c then writeln(i);
   如图,我们单击菜单栏中debug选项,里面有一项叫watch的选项,我们单击它。
   就会出现一个watch窗口:
   watch窗口可以让我们观察变量的变化情况,具体操作是在watches窗口内按Insert键:
   这时,屏幕上弹出一个菜单,我们输入所需要观察的变量名,我们分别输入i,a,b,c这4个变量名,于是watches窗口内就有如下的4个变量的状态:
   这时,我们再次使用步骤法,我们会发现,这4个变量的状态随着程序的执行而不断变化,比如:
   这样我们就可以方便地知道执行每一步之后,程序的各个变量的变化情况,从中我们可以知道我们的程序是否出错,在哪里出错,方便我们及时地修改。 下一次,我们介绍另外的一种方法,断点法。
  所谓断点法,就是在程序执行到某一行的时候,计算机自动停止运行,并保留这时各变量的状态,方便我们检查,校对。我们还是以前面求同时能被2,3,5整除的3000以内的自然数为例,具体操作如下:
   我们把光标移动到程序的第14行,按下ctrl+F8,这时我们会发现,该行变成红色,这表明该行已经被设置成断点行,当我们每次运行到第14行的时候,计算机都会自动停下来供我们调试。
   我们必须学以致用,赶快运用刚学的watch方法,看看这家伙到底有多厉害。
   请记住,计算机是执行到断点行之前的一行,断点行并没有执行,所以这时b:=true这一句并没有执行。
   断点行除了有以上用处之外,还有另外一个重要用处。它方便我们判断某个语句有没有执行或者是不是在正确的时刻执行,因为有时程序由于人为的疏忽,可能在循环或者递归时出现我们无法预料的混乱,这时候通过断点法,我们就能够判断程序是不是依照我们预期的顺序执行。
   行了,你毕业了,程序的调试你就算是基本过关了。
阅读(...) 评论() &}

我要回帖

更多关于 运行一次包装 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信