提高调试程序效率的方法
2010-10-09李建俊段继光
李建俊,段继光,仇 宾
(河北师范大学附属民族学院 数信系,河北 石家庄 050091)
提高调试程序效率的方法
李建俊,段继光,仇 宾
(河北师范大学附属民族学院 数信系,河北 石家庄 050091)
调试程序对学习计算机类语言的学生和搞软件开发的程序员而言是非常重要的,但如何提高调试程序的效率,本文详细地介绍了几个方面,希望能给读者提供帮助.
调试;习惯;报告;错误
1 积累经验
对学生来说,不仅要会编写程序,还要上机进行调试.对一个有经验的程序员来说,在调试程序时也常会出现一些错误.所以,学生一开始,在调试程序时,肯定会出现多处错误.这时,就需要学生把出现的错误记下来;然后,对这些错误进行分类汇总,让学生记住.有些学生对这项任务可以很好的完成.这样,时间一长,学生在调试程序上就积累了一些经验.当程序中出现错误提示很快就能发现错误并解决.这样可以提高调试程序的效率.而有的学生对这项任务却不能很好的完成,这样,为调试程序没有积累任何的经验.一旦,程序中显示出错误信息并告诉他哪一行有错还不能解决.这时,就要借鉴他人的经验来解决问题.但是,借鉴他人的经验只能解决一时的问题.真正要提高调试程序的效率,还需要靠自己通过实践来积累经验.所以,积累经验对提高调试程序的效率是非常重要的.
2 单步调试的方法
在调试程序时,掌握好的调试方法,可以提高调试程序的效率,最终达到事倍功半的效果.下面介绍几种常见的方法.
(1)单步跟踪执行(Traceinto):一步一步执行,遇到函数调用,跟踪到函数内部,一步一步去执行.通过Run→Traceinto来使用单步跟踪,或者通过快捷键F7来使用.
(2)单步方式执行(Stepover):一步一步执行,遇到函数调用,不跟踪到函数的内部去执行.通过Run→Stepover来使用,或者通过快捷键F8来使用.
(3)设置断点(Togglebreakpoint):当程序执行到断点时,程序暂停执行.通过Break/Watch→Togglebreakpoint来设置,或者通过快捷键Ctrl+F 8来设置.
(4)执行到光标所在处(Gotocursor):相当于一个断点.通过Run→Gotocursor来使用,或者通过快捷键F 4来使用.
(5)监视表达式(Addwatche):随时监视某些变量或对象值的变化情况.通过Break/Watch→AddWatch来设置监视表达式,或者通过快捷键Ctrl+F7来设置.
(1)—(4)四种执行方式与监视表达式配合使用,能准确定位错误所在,可以具体到是哪一行出现错误.它们适合于编译时没有语法错误,而执行后结果不正确的程序.
但是,在上机时,有一部分学生一有问题,就想让老师帮忙解决.自己不愿意动脑去思考.针对这种情况,可以采取如下方法来对学生进行指导,以Ctrl+F7和F7相配合为例来进行说明:
首先,让学生体验一下F7和Ctrl+F7两个快捷键相配合的妙处.看以下例题.
例:求10!.
先让学生计算一下10!=3628800,然后编写以下程序求10!.程序如下:
该程序编译时没有语法错误,然后执行该程序,让学生亲眼看一下该程序的结果和他们计算的结果不一致.这样就给学生造成一种悬念,然后用F7和Ctrl+F7相配合一步一步查找错误原因.这样可以提高大家学习的积极性,起到事倍功半的效果.
其次,对学生提出要求.上机时,整个过程应自己独立完成.不要有一点小问题就找老师帮忙.应学会独立思考,勤于分析,如果遇到的程序编译没有错误,而执行后结果不正确.应该用Ctrl+F7和F7相配合查找一下在哪一条语句出现错误.因为只有通过自己实践得到的经验用起来会更加得心应手.
最后,在上机时,如果学生的程序有问题,需要老师的帮忙.老师首先应该提醒学生让他们用F7和Ctrl+F7两个快捷键相配合来查找错误的原因,如果学生使用后,还不能找到错误原因,老师再帮助查找.但在查找时,也要注意指导学生查找的方法,不要只顾结果.其实,结果的正确与否,并不重要,重要的是整个查找过程,通过查找错误的这个过程,学生就可以慢慢的掌握这种方法.只有掌握了这种方法他们才可以提高调试程序的效率.
3 实验报告
实验结束后,对实验要认真分析和总结,根据老师的要求写出实验报告.书写实验报告是整个实验过程的一个重要环节.通过写实验报告,可以对整个实验做一个总结,不断积累经验,提高程序设计和调试的能力,同时还可以提高写作能力.实验报告主要包含以下内容:
3.1 实验目的
实验的目的就是深入理解和掌握课程教学中的有关基本概念,应用基本技术解决实际问题.从而进一步提高分析问题和解决问题的能力.
3.2 实验内容
在布置实验项目时,应该分出层次并且适量.实验项目层次是基础性项目加提高性项目.基础性项目主要作用是巩固所学的知识,这样可以让每位学生都学有所获.提高性项目,主要是锻炼学生知识的综合应用能力.这样,可以让每位学生都有一个更好的发展.
3.3 实验程序
要提供上机调试正确的完整、清晰的程序.
3.4 实验小结
实验小结分两部分:
第一部分是遇到的问题.该部分有三点:①错误提示;②原因;③解决方法.通过该部分可以了解学生上机调试程序的认真程度,也可以帮助学生积累经验.
第二部分是心得与收获.通过该部分可以了解学生所想.可以和学生很好的进行交流.
4 养成良好的编程习惯
4.1 编程格式的重要性
养成良好的习惯对于人的成长是非常重要的.养成良好的编程习惯对于提高学生们的编程能力也是非常重要的.一开始,学生们并不注意编写程序的格式,而是一味注意程序的结果是否正确.不管老师怎么强调编程格式的重要性,但有好多学生根本不听;甚至有的学生还反问,老师编程的格式不影响程序的结果,程序正确就可以了,为什么非要注意格式.主要是学生们刚开始编写的程序代码比较短,没有意识到编程格式的重要性.以后,问题的难度增加了,程序的代码量也会随着增加.有的程序甚至会达到上百条语句.如果不注意编写程序的格式,代码多而乱,程序便不易被阅读与修改.所以,学生编程时要有良好的习惯,源代码的逻辑简明清晰,易读易懂是好程序的重要标准.
4.2 格式的要求
4.2.1 标识符的定义应该遵循“见名知意”的原则,这对于帮助阅读者理解程序是非常重要的.
变量的命名:如果用单个英语单词命名变量名,全部小写,如index;如果用多个单词命名变量,第一个单词全部小写,其它单词的首字母用大写,如current Image.
函数的命名:如果用单个英语单词命名函数名,全部小写,如voidrun();如果用多个单词命名函数,第一个单词全部小写,其它单词的首字母用大写,如voidgetBalance().
常量的命名:所有的字母都大写.并能表示完整的含义.如PI,PASSWORD.
参数的命名和变量的命名规则一致.
4.2.2 适当的注释
通过“/**/”给程序加注释,注释是写程序者和读程序者重要的交流手段.正确的注释有助于对程序的理解.对于函数只加简明的功能注释.对于该函数的细节,最好不加在注释中,因为日后可能要修改程序.这样,还得对注释进行维护.如果不修改注释,将提供误导信息,可能成为错误的注释.如修改注释,则增加了工作量.因为代码本身和程序中的注释是相关联的.
4.2.3 语句的构造
语句构造的原则:每条语句应该简单.不要为了节省空间把多行语句写在一行,避免大量使用循环嵌套和条件嵌套,利用括号使逻辑表达式或算术表达式的运算次序清晰直观.不要混合使用不同的数据类型.
〔1〕徐金梧,杨德斌,徐科.Turbo C实用大全[M].北京:机械工业出版社,1999.
〔2〕谭浩强.C程序设计[M].北京:清华大学出版社,2009.
TP312
A
1673-260X(2010)04-0021-02