欢迎来到天天文库
浏览记录
ID:11444687
大小:86.50 KB
页数:3页
时间:2018-07-12
《循环语句学习中应该注意的几个问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、循环语句学习中应该注意的几个问题循环语句是算法语句中很重要的语句,它包括两种,一种是for循环,一种是while循环。两种循环只是实现方式的不同,但两种循环是可以相互转化的。熟练掌握for循环和while循环可以顺利实现由无限运算到有限运算的过渡,真正实现运算的革命,但笔者在教授算法的过程中,发现正确、合理的使用for循环和while循环语句,并非一件容易的事情,下面就结合教学的实际谈一下学习中应该注意的几个问题。一、注意for循环与while循环的应用for循环while循环格式for循环变量=初值:步长:终值循环体;endwhile条件循环体;end适用条件只
2、有“循环次数确定”的时候才能用for循环“循环次数不确定”和“循环次数不确定”的时候,都能用while循环循环过程当程序执行时,遇到for语句,首先把初值赋给循环变量,记下终值和步长,并比较初值和终值,若初值没有超过终值,就开始执行for语句后面的语句,执行到end语句时,计算机让循环变量增加一个步长值,然后用增值后的循环变量值与终值比较,如果超过终值,就执行end后面的语句,否则执行for语句后面的语句。当程序执行时,遇到while语句,先判断条件是否成立,如果成立,则执行while和end之间的循环体,然后再判断上述条件,再次执行循环体,这个过程反复执行,直到
3、某一次不符合条件为止,这时不再执行循环体,将跳到end语句后,执行end语句后面的语句。注意点要注意设定好循环变量的初值、步长、终值,避免出现多一次循环或者少一次循环的现象。要注意表达式的写法,当表达式为真时执行循环体,表达式为假时结束循环体,以防出现表达式正好相反的错误。例1写出12+22+32+…+1002计算的值的程序。解法1:用while循环语句写出循环过程如下:sum=0;i=1;whilei<=100sum=sum+i^2;i=i+1;endprint(%io(2),sum)解法2:用for循环语句写出循环过程如下:sum=0;fori=1:1:100
4、sum=sum+i^2;endprint(%io(2),sum)二、循环体中循环变量是用于控制算法中循环次数的变量,一般起计数作用,我们经常用到i=i+1等循环变量的自加操作,但循环变量的自加位置不当会出现意想不到的结果。例2求1+2+3+…..+20的和。解:i=1;sum=0;whilei<=20sum=sum+i;i=i+1;//循环变量自加操作endprint(%io(2),sum)例3求2+3+4+…..+21的和。:解:i=1;sum=0;whilei<=20i=i+1;//循环变量自加操作sum=sum+i;endprint(%io(2),sum)在
5、实际的编程过程中循环变量自加的位置一定需要斟酌清楚,不然会出现想不到的后果。其实在循环体中语句的顺序直接影响程序执行的结果。下面是用欧几里德算法求最大公约数的程序:很多同学误写成下面的程序,而得不出正确的结果:a=input(“a=”);b=input(“b=”);r=modulo(a,b);whiler<>0r=modulo(a,b);a=b;b=r;endprint(%io(2),b)本程序的循环体中三段代码的顺序决定了,这段程序不会运行出满意的结果,应该将程序修正为:a=input(“a=”);b=input(“b=”);r=modulo(a,b);whil
6、er<>0a=b;b=r;r=modulo(a,b);endprint(%io(2),b)三、在很多的问题中我们需要在循环中加入一个记录循环次数的变量,用于记录循环次数,控制循环,求解循环次数很容易出现问题,个别同学会忘记初次循环次数等例4已知fori=(-200):10:300是某一循环程序中的一句,则该循环体共执行循环多少次?误解:因为(300-(-200))÷10=50,因此循环50次。正解:上述循环次数可以理解为求闭区间[-200,300]之间能被10整除的元素的个数,其个数有51个,所以循环51次人教B版必修3p30例题:求平方值小于1000的最大整数。
7、解:再scilab的文本编辑器中写出程序如下:代码:j=1;whilej*j<1000j=j+1;endj=j-1;j很多同学在书写程序时候,最后到底是输出j还是j-1产生困惑,这主要是对循环的次数没有把握好的原因。下面多举一组例子以飨读者:例题:(1) i=1;sum=0;whilesum<=20sum=sum+i;i=i+1;endprint(%io(2),i)(2) i=1;Sum=0;Whilesum<=20i=i+1;Sum=sum+i;endprint(%io(2),i)四、书写程序中,遇到累加、累乘的情形,我们经常用
8、到循环,但
此文档下载收益归作者所有