题目内容
设计框图实现1+3+5+7+…+131的算法.
解析:
解:算法如下: 第一步:赋初值i=1,sum=0; 第二步:sum=sum+i,i=i+2; 第三步:如果i≤131,则反复执行第二步,否则执行下一步; 第四步:输出sum; 第五步:结束. 程序框图如图. 绿色通道:(1)设计流程图要分步进行,把一个大的流程图分割成几个小的部分,按照三个基本结构即顺序、条件、循环结构来局部安排,然后把流程图进行整合. (2)框图画完后,要进行验证,按设计的流程分析是否能实现所求的数的累加,分析条件是否加到131就结束循环,所以我们要注意初始值的设置、循环条件的确定以及循环体内语句的先后顺序,三者要有机地结合起来.最关键的是循环条件,它决定循环次数,可以想一想,为什么条件不是“i<131”或“i=131”,如果是“i<131”,那么会少执行一次循环,131就加不上了. 怎样才能正确地确定循环条件呢?初学者常常在这方面出现问题.最“原始”的办法是自己按照流程顺序执行一遍,显然比较麻烦.在实际操作中我们只需看前2至3次循环及最后一次即可,通过前2至3次循环体的执行,可以验证是不是从第一个数开始加的,是不是能实现其中数的规律;根据循环体内语句的顺序以及本例用的是当型循环,所以最后一次执行循环体时i的值应为131,执行完循环体后i的值变为133,这时就应退出循环,不能再加了,因此条件应为i≤131或i<133. (3)这样画的流程图不是唯一的,如果把初值改为sum=1,那么应在框图中作怎样的改动才能实现要求? (4)该程序具有通用性、灵活性,把i≤131改为i≤1 001,可适用于1+3+5+7+…+1 001;把i=i+2改为i=i+1,可实现1+2+3+4+…+131;把sum=sum+i改为sum=sum×i,则可实现1×3×5×7×…×131,本例还可作其他的改动,而得到许多不同的结果. |
提示:
由于需加的数较多,所以要引入循环结构来实现累加.观察所加的数是一组有规律的数(每相邻两数相差2),那么可考虑在循环过程中,设一个变量i,用i=i+2来实现这些有规律的数,设一个累加器sum,用来实现数的累加,在执行时,每循环一次,就产生一个需加的数,然后加到累加器sum中. |
![](http://thumb.zyjl.cn/images/loading.gif)