最新消息:680元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

Scratch教程:BUG在哪里?

Scratch 少儿编程 2197浏览 0评论

友情提示:680元/半年,儿童学编程,就上码丁实验室

一般来说,程序不可能一次开发正确。往往会出现出错的情况。如何发现错误、定位错误并修改程序呢?

 

从有程序开发的那一天开始,程序员就在不断地和程序中的BUG作斗争。为什么叫“BUG”呢,背后还有一个小故事。

BUG在哪里?

马克2号(Harvard Mark II)编制程序的葛丽丝·霍波(Grace Hopper)是一位美国海军准将及计算机科学家,同时也是世界最早的一批程序设计师之一。

有一天,她在调试设备时出现故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍波诙谐的把程序故障统称为“臭虫(BUG)”,把排除程序故障叫DEBUG,而这奇怪的“称呼”,竟成为后来计算机领域的专业行话。

 

从软件开发的角度来说,程序调试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。

这中间包括了几个方面的内容。

1通过手工或其它方法,发现程序与设计功能上的不一致;

 

2通过跟踪及分析等方法,定位错误所在的位置;

 

3提出合适的方式,对错误进行修改;

 

4继续进行调试,直到与想达到的目的相同为止。

 

这里面需要讨论的问题比较多,包括了不同类型错误的分析、程序测试的方法、程序的跟踪、程序的修改等。

 

BUG在哪里?
 

本次我们讨论之中的一个问题,即程序的跟踪。

BUG在哪里?

程序的跟踪有两个意义

一个是知道程序是如何一句句向下运行的,特别是在程序有分支、子程序和循环的时候,掌握语句的运行次序尤为重要。

另一个是对于程序中变量值的跟踪,即知道在程序运行的过程中,各变量是如何变化的。

 

 

在其它代码式的编程软件中,一般在集中开发环境中提供了较多的调试功能,包括代码中断点的设置,单步跟踪及程序中主要变量值的监视等功能。

 作为面向入门者的软件,Scratch在调试方面提供的功能比较少。所以就需要我们使用一些比较特殊的方法来完成跟踪的工作。

 

第一、对于程序运行次序的跟踪

我们的目的是知道程序是如何一句句运行的。但Scratch除了在当前运行的积木总块周围显示高亮,没有其它的提示。为了能够知道程序运行到了哪里,可以使用如下的方法。即在关键位置加上交互式的语句。可以使用“说”“想”的积木。这样在程序运行到这个位置时,就会有所反应。

 

如果想在某个位置上中断程序,就可以放置“询问并等待的积木”这样在运行到这个位置时,程序就会停下来,可以进行检查变量值等操作。

 

第二、变量跟踪的方法

有如下几种方法可以对变量进行跟踪。

❂ 方法1 使用显示变量值的方法
 

Scratch提供了显示变量值的方法,即在屏幕上显示值。这样在程序运行的过程中就能看到值的变化。

此方法的优点是简单方便,缺点是,如果值变化得很快,就很难看到值的变化过程(可以配合中断程序的方法)。而且这种方法无法显示出克隆体中的变量值。

❂ 方法2 使用中断程序的方式显示值
这个方法与上面的程序中断是相同的,只不过重点在于显示当前变量的值。
方法3 使用列表记录值的变化

对于连续变化的值,可以使用一个列表保存。

可以使用列表来记录每次值的变化。

 

下面举一个实例,求1到10的和。在程序中使用了上述的各种方法,大家可以试用这个例子,并自己研究如何能够更有效地跟踪程序和发现错误。

BUG在哪里?

BUG在哪里?

在每进行一步计算时,都会显示当前的S及N,并进行中断。最后还在列表中保存了每一步计算出的S值。

 

总结

结论:

1    测试是软件开发中的重要过程,通过测试,才能够发现软件中存在的问题并进行修改。

2    本文章介绍了一些可以在Scratch中使用的跟踪程序的方法。

3    不管哪种方法,都要结合对于程序的了解及分析来设计跟踪的方案。调试程序可以说是一种艺术。

 

 

您必须 登录 才能发表评论!