解读循环语句 识别两类模型
2018-03-06王修汤
王修汤
同学们在学习中经常会遇到有规律的重复计算,或在生活中对某个事件进行重复操作,这时候我们就要用循环语句来表示算法.那么循环语句的含义是什么?义如何书写呢?
一、解读
先看一个简单的例子:
例1 写出求1+3+5+…+99所得结果的一个伪代码.分析 由于是重复相加,并且数字1,3,5,…,99是有规律的一列数,逐渐循环递增,每次增幅为2,所以可以用For循环语句来实现计算.
第一步:选择一个变量S表示和,并赋给初值0;
第二步:开始进入For循环语句,首先设,为循环变量,分别设定其初值、步长、终值.这里初值为1,步长为2(步长是指循环变起始的个体编号m,然后按照逐次加k的原则确定后续要抽的编号,当N能被n整除时,取k=N/n;当N除以n的余数为r时,取k=(N-r)/n;④抽样,将编号为m,m+k,m+2k,...,(n-1)k2k,…,m+(n-l)k的个体抽出.
简单随机抽样、分层抽样、系统抽样是最常见的三种抽样方法.当总体中个体个数量,每次增加的值.若步长为1,可以省略不写,若为其他值,则不可省略),终值为99;
第三步:写循环表达式S←S+I(也称循环体);
第四步:用“End For“控制其是否开始一次新的循环;
第五步:输出结果.
其算法的伪代码如下:
第三步循环体“S←S+I”的理解如下:
当I=l时,S←S+I是S←S+l,并把O+l赋值给S,第一次循环结束时S为1,此时S记录了第一个数的值,遇到“End”开始第二次循环;
当I←3时,S—S+I是S←S+3,并把较少时采用简单随机抽样,它是其他两种抽样的基础;当总体中个体个数较多时采用系统抽样,需要将样本分成均匀的几部分,在第一部分中采用简单随机抽样,当总体由差异明显的几部分组成时采用分层抽样,而各层中通常采用简单随机抽样或系统抽样.三种抽样方法都保证了每个个体被抽取到的可能性相等,1+3赋值给S,第二次循环结束时S为1+3-4,此时S记录了前两个數的和,遇到“End”开始第三次循环;
当,一5时,S←S+I是S←5+5,并把(1+3)+5赋值给S,第三次循环结束S为1+3+5=9,此时S记录的是前三个数的和,遇到“End”开始第四次循环;
直到1= 99时才真正“End”,此时退出循环,输出结果,
这个算法我们还可以用While语句格式书写如下:
这时循环体为“S←S+/,I←/+2”,每次开始执行循环体前,都要判断表达式“I<101”是否为真.如果表达式为真,则执行循环体部分,这样重复执行,一直到表达式“I<101”为假时,就跳过循环体部分,结束循环,输出结果.
二、识别
For循环语句和While循环语句是算法中两类重要的模型,初次学习有时会混淆这两种语句,下面我们通过实例再来识别一下这两种模型.
例2 把一个数S乘以2,再加上1,称为一次操作,试用循环语句写出以下算法.
(1)当S=l时,求把S经过100次操作后所得的数;
(2)当S=l时,求把S经过77次操作后所得数大于2100的最小自然数n.第(1)题是已经知道了要经过100次操作,相当于知道了终值是100,所以我们用For循环语句来书写.
第(2)题是要求运算结果要大于2100,但不知道要操作多少次,故选择While循环语句比较合适.
三、运用
初次学习For循环语句和While循环语句,一定还会出现各种各样的错误,尤其是给初值赋值时,有时会搞错了初始值,或者在设计循环体时,颠倒了执行顺序.例3 分别用While语句和For语句给出求1+1/2+1/3+…+1/100的值的算法.
错解While语句和For语句分别如下:
错因剖析 在While语句程序里面I←1,S←1,控制循环的条件为,I≤100,按此算法最后结果应为1+1+1/2+1/3…+1/100,而不是题目要求的1+1/2+1/3+…+1/100,改正的方法是将S←1改为s←0;在For语句里S←1,I的终值是100,按此算法最后结果是1+1/2+1/3+…+1/100+1/101,也不是题目要求的1+1/2+1/3+…+1/100,改正的方法是将,的终值改为99.
正解 While语句和For语句分别如下:
评注 一个程序编写完成之后,最好在草稿纸上试“运行”一下,看编写的程序是否满足题意,不行,就要找出问题所在,然后进行调整修改.endprint