赋值语句右边取的是旧值
框图处理框里的 是「把右边算出来的数装进左边」,右边两个 用的都是这一轮进来时的旧值;当成方程去解、或右边偷用刚算出的新值,都会把循环跑歪。
错在哪
数学里 是一句断言——它宣称某个数满足这个等式,于是可以移项得 ,判它无解。
框图里同一串字符是一句命令:先把右边 按当前的 算成一个具体的数,再把这个数装回 这个盒子里。 右边的两个 是同一个旧值,左边的 是即将被覆盖掉的那个盒子。它不是方程,没有「解」可言。
同一句话还有第二种读歪的方式:右边偷用刚刚算出来的新值。比如把 读成「先把 加上去,再拿加完的结果当指数」, 得到的就成了另一条递推,跑几轮之后数字全乱。
翻车现场
2009 年浙江卷(理)第 6 题的循环体是 ,,初值 、,当 时继续。
按「右边全取旧值」老老实实跑:
| 轮数 | 进来时的 | 右边算出来的数 | 轮末的 |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | |||
| 4 |
第 4 轮末 ,跳出,输出 。
两种典型的读歪:
- 当成方程:,无解,于是断言「循环一轮都跑不了」或者「死循环」——框图根本不问这个。
- 右边用新值:第 1 轮先把 记成 ,再拿新的 去当指数写成 ,一轮顶了两轮,四轮的活三轮就干完,输出就少了 。
怎么防
- 把赋值念成「装进去」:「把 的值装进 」。念出来就不会去移项。
- 列表时专列「进来时的值」一栏。右边所有出现的变量一律从这一栏取数,写完一行再填「轮末的值」。
- 循环体里有多条赋值时,按框图自上而下逐条执行:上一条更新过的变量,下一条才用新值;同一条里左右两边的同名变量,右边永远是旧的。
- 收口检查:把最后一轮的数字代回原式,看等号两边是不是「旧 新」而不是「新 新」。
学它之前先会
共 1 条前置、最深 1 层。
出现在以下题目中
共 1 道题考到本条。