BASIC语言的程序调试方法 李刚荣 1995-11-17 ①程序执行后,没达到预期的结果。比如希望在屏幕上画一个圆,可屏幕上却什么也没有。②源程序有语法错误。③源程序有逻辑错误,出现溢出、死机、死循环等。④多模块之间链接不成功。所以,程序的调试在程序的开发中占有非常重要的地位。 调试程序的常用方法有: 1.直接上机运行查错 将程序输入计算机后,直接执行RUN命令,这是调试程序的最有效手段。我们可以根据屏幕提示信息或操作结果来判断程序执行是否正确。例如: 10 S=0 20 FOR N=1 TO 10 STEP 1 30 S=S+1/((N+1)N) 40 NEXT N 50 PRINT “S=”; S 60 END 执行RUN命令后屏幕上显示:“Syntax error in 30”,说明本程序中语句30有语法错误。检查该语句,很容易看出在分母中里面括号内的内容与N相乘,中间少一乘运算符“*”,使用“Edit 30”改正此错误后重新运行,程序执行正确。 2.设置断点 在BASIC语言中,有些后面的错误往往是由于前面的错误所引起,为了有效地找出错误根源,通常是在程序中每隔一段就设置一个STOP语句来使程序暂停,当程序运行到STOP语句时,屏幕上显示“Break in XX”,表示程序在第XX行暂停,此时可使用“立即执行方式”来查看一些变量的值。要恢复程序运行,可以不带行号,打入CONT命令,程序就立即从断点处恢复执行。这种方法可逐步缩小错误范围,直到找到错误为止。 3.打印中间变量 在程序的适当地方加入PRINT语句,打印中间结果,再运行观察分析,找出错误所在,当排除错误以后再将这些PRINT语句删除。如果错误出现在循环体内,要想知道是第几次循环出了问题,则可在循环体中加上PRINT语句,打印循环变量的值。打印中间变量的方法对于检查逻辑错误、语法错误均适用。 4.跟踪运行 如果设置断点和打印中间变量还不容易找到错误,则可使用TRON命令跟踪程序执行,在程序执行过程中不断显示出正在运行的程序行的行号,用以确定出错位置。显示运行的行号置于方括号中。其具体方法为: 在OK状态下,打入命令TRON(或按功能键F7)后,再执行RUN命令,在屏幕上就会出现一连串的语句行号,这正是程序运行的踪迹。此时可以检查程序是否按你规定的流程运行,当程序循环时,可以检查循环的次数。退出跟踪状态,使用TROFF命令(或按功能键F8)。 若把跟踪与上面讲的设置断点和打印中间变量结合起来使用,则程序调试效果会更好。 5.复杂程序的调试 一个大型的复杂的程序,往往是采用了结构化程序设计方法。即将一个大任务先分成若干个子任务,每一个子任务就是一个模块。要使整个程序运行正常就要保证其中的每个模块是正确的。由于模块并不是完整的程序,因此在调试各个模块的时候,需要首先弄清两个问题:一是执行此模块之前的情况,即前面的程序为它提供了什么样的入口参数;二是这个模块应该完成什么功能(出口参数)。在弄清这两个问题之后,就要给予必要的处理,这主要是给模块加上必要的输入和输出语句。 当模块调试完毕后,应将增加的语句删去。 最后是整个程序的统调,验证无误后,可用SAVE命令保存到磁盘中。(李刚荣)