《算法案例》易错题剖析
2016-02-18丁称兴



与传统的教学内容相比,算法是新课程改革中新增的内容,目的是培养同学们的逻辑思维能力,提高解决问题的程序化能力.算法语句有着严格的语法规则,教材中介绍了五种基本的算法语句:输入语句、输出语句、赋值语句、条件语句、循环语句.每一种语句都有着严格的要求,但同学们在学习算法基本语句时常会犯一些共性的错误.本文从以下几个实例对算法中常见错误作简要剖析.
易错点剖析一:赋值概念的理解错误
例1已知两个单元存放了变量x,y,z的值,试给出一个算法,依次变换x,y,z的值.(x←y←z←x)
错解:Step1: x←y
Step2: y←z
Step3: z←x
错因剖析:没有理解赋值的含义,按上述算法,结果为x=z且为原y的值,y为原z的值.
正如A,B,C三个杯子中分别装有可乐、雪碧、橙汁,若要交换这三种饮料,需要一个空杯子D来存储A中的可乐,这样才能依次将B中雪碧倒入A中,C中的橙汁倒入B中,再将D中可乐倒入A中.
正解:Step1: p←x
Step2: x←y
Step3: y←z
Step4: z←p
易错点剖析二:变量的初始值错误
例2写出一个计算1+2+22+23+…+210的值的程序语句.
错解:如下图
i←1
S←0
While i≤10
S←S+2i
i←i+1
End While
Print S
End
错因剖析:错解中程序语句的功能是计算式子2+22+23+…+210的值,比题目中要求的式子少了一项“1”,将循环体中i的初始值改为0,可以实现题目的要求.
正解:如下图.
i←0
S←0
While i≤10
S←S+2i
i←i+1
End While
Print S
End
易错点剖析三:算法语句顺序错误
例3设计一个求1+2+3+4+…+100的流程图.
错解:如下图
错因剖析:当先执行S←S+n,再判断,而后执行n←n+1,当S加上100时,符合条件,再次进入循环,这样执行的最后结果中多了101.即改变了算法语句的顺序,使得执行的结果发生了变化.
正解:如图1,图2.
变式:用当型循环来……
