free pascal中的watches该怎么用?
4个回答
展开全部
第十二章 程序调试
任何一个天才都不敢说,他编的程序是100%正确的。几乎每一个稍微复杂一点的程序都必须经过反复的调试,修改,最终才完成。所以说,程序的调试是编程中的一项重要技术。我们现在就来掌握一下基本的程序调试。 我们以下的示范,是以时下比较流行的Borland Pascal 7.0为例子,其他的编程环境可能略有不同,但大致上是一致的。
我们先编一个比较简单的程序,看看程序是如何调试的。
program tiaoshi;
var i:integer;
begin
for i:=1 to 300 do
begin
if i mod 2 = 0 then
if i mod 3 = 0 then
if i mod 5 = 0 then
writeln(i);
end;
end.
该程序是输出300以内同时能被2,3,5整除的整数。 现在我们开始调试。 调试有多种方法,先介绍一种,权且叫步骤法,步骤法就是模拟计算机的运算,把程序每一步执行的情况都反映出来。通常,我们有F8即STEP这个功能来实现,如图: 不断地按F8,计算机就会一步步地执行程序,直到执行到最后的“end.”为止。
可能你还没有发现F8的威力,我们不妨把上面的程序略微修改一下,再配合另外的一种调试的利器watch,你就会发现步骤法的用处。
program tiaoshi;
var i:integer;
a,b,c:boolean;
begin
for i:=1 to 300 do
begin
a:=false;
b:=false;
c:=false;
if i mod 2 = 0 then a:=true;
if i mod 3 = 0 then b:=true;
if i mod 5 = 0 then c:=true;
if a and b and c then writeln(i);
end;
end.
如图,我们单击菜单栏中debug选项,里面有一项叫watch的选项,我们单击它。
就会出现一个watch窗口:
watch窗口可以让我们观察变量的变化情况,具体操作是在watches窗口内按Insert键:
这时,屏幕上弹出一个菜单,我们输入所需要观察的变量名,我们分别输入i,a,b,c这4个变量名,于是watches窗口内就有如下的4个变量的状态:
这时,我们再次使用步骤法,我们会发现,这4个变量的状态随着程序的执行而不断变化,比如:
这样我们就可以方便地知道执行每一步之后,程序的各个变量的变化情况,从中我们可以知道我们的程序是否出错,在哪里出错,方便我们及时地修改。 下一次,我们介绍另外的一种方法,断点法。
12.2 断点发
在前面我们已经学习了基本的程序调试方法——步骤法。步骤法有一个缺点,就是在遇到循环次数比较多或者语句比较多的时候,用起来比较费时,今天我们来学习一种新的也是常用的调试方法——断点法。
所谓断点法,就是在程序执行到某一行的时候,计算机自动停止运行,并保留这时各变量的状态,方便我们检查,校对。我们还是以前面求同时能被2,3,5整除的3000以内的自然数为例,具体操作如下:
我们把光标移动到程序的第14行,按下ctrl+F8,这时我们会发现,该行变成红色,这表明该行已经被设置成断点行,当我们每次运行到第14行的时候,计算机都会自动停下来供我们调试。
我们必须学以致用,赶快运用刚学的watch方法,看看这家伙到底有多厉害。
请记住,计算机是执行到断点行之前的一行,断点行并没有执行,所以这时b:=true这一句并没有执行。
断点行除了有以上用处之外,还有另外一个重要用处。它方便我们判断某个语句有没有执行或者是不是在正确的时刻执行,因为有时程序由于人为的疏忽,可能在循环或者递归时出现我们无法预料的混乱,这时候通过断点法,我们就能够判断程序是不是依照我们预期的顺序执行。
图片无法复制,如有需要给邮箱号,我发到你邮箱去。
任何一个天才都不敢说,他编的程序是100%正确的。几乎每一个稍微复杂一点的程序都必须经过反复的调试,修改,最终才完成。所以说,程序的调试是编程中的一项重要技术。我们现在就来掌握一下基本的程序调试。 我们以下的示范,是以时下比较流行的Borland Pascal 7.0为例子,其他的编程环境可能略有不同,但大致上是一致的。
我们先编一个比较简单的程序,看看程序是如何调试的。
program tiaoshi;
var i:integer;
begin
for i:=1 to 300 do
begin
if i mod 2 = 0 then
if i mod 3 = 0 then
if i mod 5 = 0 then
writeln(i);
end;
end.
该程序是输出300以内同时能被2,3,5整除的整数。 现在我们开始调试。 调试有多种方法,先介绍一种,权且叫步骤法,步骤法就是模拟计算机的运算,把程序每一步执行的情况都反映出来。通常,我们有F8即STEP这个功能来实现,如图: 不断地按F8,计算机就会一步步地执行程序,直到执行到最后的“end.”为止。
可能你还没有发现F8的威力,我们不妨把上面的程序略微修改一下,再配合另外的一种调试的利器watch,你就会发现步骤法的用处。
program tiaoshi;
var i:integer;
a,b,c:boolean;
begin
for i:=1 to 300 do
begin
a:=false;
b:=false;
c:=false;
if i mod 2 = 0 then a:=true;
if i mod 3 = 0 then b:=true;
if i mod 5 = 0 then c:=true;
if a and b and c then writeln(i);
end;
end.
如图,我们单击菜单栏中debug选项,里面有一项叫watch的选项,我们单击它。
就会出现一个watch窗口:
watch窗口可以让我们观察变量的变化情况,具体操作是在watches窗口内按Insert键:
这时,屏幕上弹出一个菜单,我们输入所需要观察的变量名,我们分别输入i,a,b,c这4个变量名,于是watches窗口内就有如下的4个变量的状态:
这时,我们再次使用步骤法,我们会发现,这4个变量的状态随着程序的执行而不断变化,比如:
这样我们就可以方便地知道执行每一步之后,程序的各个变量的变化情况,从中我们可以知道我们的程序是否出错,在哪里出错,方便我们及时地修改。 下一次,我们介绍另外的一种方法,断点法。
12.2 断点发
在前面我们已经学习了基本的程序调试方法——步骤法。步骤法有一个缺点,就是在遇到循环次数比较多或者语句比较多的时候,用起来比较费时,今天我们来学习一种新的也是常用的调试方法——断点法。
所谓断点法,就是在程序执行到某一行的时候,计算机自动停止运行,并保留这时各变量的状态,方便我们检查,校对。我们还是以前面求同时能被2,3,5整除的3000以内的自然数为例,具体操作如下:
我们把光标移动到程序的第14行,按下ctrl+F8,这时我们会发现,该行变成红色,这表明该行已经被设置成断点行,当我们每次运行到第14行的时候,计算机都会自动停下来供我们调试。
我们必须学以致用,赶快运用刚学的watch方法,看看这家伙到底有多厉害。
请记住,计算机是执行到断点行之前的一行,断点行并没有执行,所以这时b:=true这一句并没有执行。
断点行除了有以上用处之外,还有另外一个重要用处。它方便我们判断某个语句有没有执行或者是不是在正确的时刻执行,因为有时程序由于人为的疏忽,可能在循环或者递归时出现我们无法预料的混乱,这时候通过断点法,我们就能够判断程序是不是依照我们预期的顺序执行。
图片无法复制,如有需要给邮箱号,我发到你邮箱去。
展开全部
1 add watch 添加监控的变量
2 watches 打开watchers监控窗口
3 调试 有2种方法
1 按f8单步执行程序,就可以一步一步运行程序,并通过watches窗口观看变量的变化情况
当遇到函数或过程时要按f7就可以单步执行进入到函数或过程中
2 按f8或f7有时候觉得挺慢的,那你可以在程序中添加断点(breakpoint)来进行调试
设置了断点后程序会执行到断点处停止运行,这时你可以通过watches刚看变量情况,或这时才按f8或f7单步调试程序
2 watches 打开watchers监控窗口
3 调试 有2种方法
1 按f8单步执行程序,就可以一步一步运行程序,并通过watches窗口观看变量的变化情况
当遇到函数或过程时要按f7就可以单步执行进入到函数或过程中
2 按f8或f7有时候觉得挺慢的,那你可以在程序中添加断点(breakpoint)来进行调试
设置了断点后程序会执行到断点处停止运行,这时你可以通过watches刚看变量情况,或这时才按f8或f7单步调试程序
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用add watches来添加查看的变量,用watches打开查看的窗口。单步执行时建议用F7,尽量不用F8。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
debug-watches-右键单击窗口
add:加
delete:删
f4,f7,f8开始
add:加
delete:删
f4,f7,f8开始
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询