巧用输入输出语句调试Pascal程序

Author: 胡道海 Date: 1997-01-01

  Turbo C和Turbo 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程序调试的效率。