算法问题错误盘点

2015-05-30 10:48何晓勤
中学生数理化·高一版 2015年2期
关键词:正整数赋值剖析

何晓勤

一、程序框图中的错解剖析

1.循环结构的循环体出现错误

剖析:当输出(或输入)在循环体内部时,每次循环时都要输出(或输入)变量的值,我们称这种循环输出(或输入)为批量输出(或输入)。本题输出在循环体内部,每执行一次循环体,都要输出对应的s的值,并非是输出最后的s的值。

正解:输出的结果是2,5,10。

二、基本算法语句中的错解剖析

1.赋值语句的变量传递出现错误

例4 执行如图5所示的算法,若输入的a,b的值分别为2和3,则输出的a,b的值分别为 。

错解:由该程序可知:a=2,b=3;a=2+3=5,6=2=3=-1。故输出的a,b的值分别为5,-1。

剖析:当一个变量被另一个变量或表达式赋值时,此变量的原有值已被删除,而具有了新值,所以在执行下一语句时,应将新值代人运算。本题的算法执行赋值a=a+b之后,a的值已变成了5,所以执行赋值b=a-b时,a的值是5,而不是2。

正解:输出的a,b的值分别为5,2。

2.条件语句嵌套格式出现错误

剖析:在运用条件语句中的嵌套格式时了出现错误,一般的格式是IF-ELSE-(IF-FLSE-ENDIF)-END IF。要注意IF和END IF的一一对应关系。

3.循环语句变量取值和语句顺序关系把握不好出现错误

例6 图8和图9的两个程序均表示求满足1×3×5×7×…×n<5000的最大的正整数n的算法程序,请将①②处补充完整。

错解:图8的程序输出的结果为满足1×3×5×7×…×n<5000的最大正整数n,①处填i。图9的程序输出的结果为满足1×3×5×7×…×n<5000的最大正整数n,②处填i-2。

剖析:错解错在对程序各语句的顺序把握不好,且对输出变量的含义理解不透彻。正确解答本题的关键是要判断循环结束的条件、变量i的值与最大正整数n的关系。图8和图9中循环体内的两个语句的顺序恰好相反,运行两程序可知,循环结束时,图8中i的值比所求的n的值大2,而图9中的i的值比所求的n的值大4。

正解:①处应填i-2,②处应填i-4。

猜你喜欢
正整数赋值剖析
L-代数上的赋值
关于包含Euler函数φ(n)的一个方程的正整数解
一元一次方程错解剖析
剖析高考数列创新题
被k(2≤k≤16)整除的正整数的特征
“几何图形初步”错解剖析
集合中的错解剖析
强赋值幺半群上的加权Mealy机与加权Moore机的关系*
方程xy=yx+1的全部正整数解
利用赋值法解决抽象函数相关问题オ