循环语句学习中应该注意的几个问题.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
循环语句学习中应该注意的几个问题 循环语句是算法语句中很重要的语句,它包括两种,一种是for循环,一种是while循环。两种循环只是实现方式的不同,但两种循环是可以相互转化的。熟练掌握for循环和while循环可以顺利实现由无限运算到有限运算的过渡,真正实现运算的革命,但笔者在教授算法的过程中,发现正确、合理的使用for循环和while循环语句,并非一件容易的事情,下面就结合教学的实际谈一下学习中应该注意的几个问题。 一、注意for循环与while循环的应用 for循环 while循环 格式 for 循环变量=初值:步长:终值 循环体; end while 条件 循环体; end 适用条件 只有“循环次数确定”的时候才能用for循环 “循环次数不确定”和“循环次数不确定”的时候,都能用while循环 循环过程 当程序执行时,遇到for语句,首先把初值赋给循环变量,记下终值和步长,并比较初值和终值,若初值没有超过终值,就开始执行for语句后面的语句,执行到end语句时,计算机让循环变量增加一个步长值,然后用增值后的循环变量值与终值比较,如果超过终值,就执行end后面的语句,否则执行for语句后面的语句。 当程序执行时,遇到while语句,先判断条件是否成立,如果成立,则执行while和end之间的循环体,然后再判断上述条件,再次执行循环体,这个过程反复执行,直到某一次不符合条件为止,这时不再执行循环体,将跳到end语句后,执行end语句后面的语句。 注意点 要注意设定好循环变量的初值、步长、终值,避免出现多一次循环或者少一次循环的现象。 要注意表达式的写法,当表达式为真时执行循环体,表达式为假时结束循环体,以防出现表达式正好相反的错误。 写出12+22+32+…+1002计算的值的程序。 解法1:用while循环语句写出循环过程如下: sum=0; i=1; while i=100 sum=sum+i^2; i=i+1; end print(%io(2),sum) 解法2:用for循环语句写出循环过程如下: sum=0; for i=1:1:100 sum=sum+i^2; end print(%io(2),sum) 二、循环体中循环变量是用于控制算法中循环次数的变量,一般起计数作用,我们经常用到i=i+1等循环变量的自加操作,但循环变量的自加位置不当会出现意想不到的结果。 例2 求1+2+3+…..+20的和。 解:i=1; sum=0; while i=20 sum=sum+i; i=i+1; //循环变量自加操作 end print(%io(2),sum) 例3 求2+3+4+…..+21的和。: 解:i=1; sum=0; while i=20 i=i+1; //循环变量自加操作 sum=sum+i; end print(%io(2),sum) 在实际的编程过程中循环变量自加的位置一定需要斟酌清楚,不然会出现想不到的后果。其实在循环体中语句的顺序直接影响程序执行的结果。 下面是用欧几里德算法求最大公约数的程序: 很多同学误写成下面的程序,而得不出正确的结果: a=input(“a=”); b=input(“b=”); r=modulo(a,b); while r0 r=modulo(a,b); a=b; b=r; end print(%io(2),b) 本程序的循环体中三段代码的顺序决定了,这段程序不会运行出满意的结果,应该将程序修正为: a=input(“a=”); b=input(“b=”); r=modulo(a,b); while r0 a=b; b=r; r=modulo(a,b); end print(%io(2),b) 三、在很多的问题中我们需要在循环中加入一个记录循环次数的变量,用于记录循环次数,控制循环,求解循环次数很容易出现问题,个别同学会忘记初次循环次数等 例4 已知for i=(-200):10:300是某一循环程序中的一句,则该循环体共执行循环多少次? 误解:因为(300-(-200))÷10=50,因此循环50次。 正解:上述循环次数可以理解为求闭区间[-200,300]之间能被10整除的元素的个数,其个数有51个,所以循环51次 人教B版必修3p30 例题:求平方值小于1000的最大整数。 解:再scilab的文本编辑器中写出程序如下: 代码:j=1; while j*j1000 j=j+1; end j=j-1; j 很多同学在书写程序时候,最后到底是输出j还是j-1产生困惑,这主要是对循环的次数没有把握好的原因。下面多举一组例子以飨读者: 例题: (1)?????? i=1; sum=0; while sum=20 sum=sum+i; i=i+1; end print(%io

文档评论(0)

勤能补拙 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档