巧用输入输出语句调试Pascal程序
笔者在Pascal程序的调试过程中尝试用输入输出语句实现这一功能,发现效果很好。
变量当前值的输出只需用write();或writeln();语句便可实现。最重要的一点是实现暂停程序运行和保持当前输出屏幕,可能大家会立刻想到系统函数keypressed。但是实践证实,由于系统原因,在一个过程或函数中此函数只能有效调用一次,不能实现多次暂停运行。而用read();或readln();语句则方便之极;并且如果输入为空格符,则此语句对屏幕毫无影响。最后,只要将输入输出语句与if或while语句联合使用,便可实现有选择的跟踪。
我们暂将实现这些功能的语句称为监视语句,下面用一个简单例子显示其使用情况:
procedure eg(n:integer);
var m,i:integer;c:char;
begin m:=1;
for i:=1 to n do
begin m:=i(m;
{if (i>10) then begin writeln(m);
readln(c);
end;}
end;
writeln('m=',m);
end;
其中括号{}中的语句便是监视语句。
监视语句在程序调试中可以任意插入或删除,且形式不固定,使用十分方便。通过实践体会和掌握并使用监视语句可以大大提高Pascal程序调试的效率。