算法初步第二章§3几种基本语句3.2循环语句自主预习学习目标目标解读1.理解For语句与Do语句的结构与含义,并会应用.2.培养学生的数学应用意识.重点:理解For语句与Do语句的结构与含义,并会应用.难点:应用两种循环语句将具体问题程序化,搞清For循环和Do循环的区别和联系.1.For语句(1)格式For循环变量=To循环体Next(2)适用于预先循环次数的循环结构.知识梳理初始值终值知道使用For语句时,先确定循环变量的取值,再找出循环体,套用For语句形式即可.从For语句的形式不难看出,For语句中i应知其初始值和终值,所以一个循环问题如果知道循环次数,那么可用For语句写出;如果不知道循环次数,可用下面的形式——DoLoop语句.2.DoLoop语句(1)格式Do循环体LoopWhile条件为真(2)适用于预先循环次数的循环结构.不知道(3)DoLoop语句的执行流程:先进入循环体,执行一次循环体后,检查While后的条件是否被满足,“是”则继续执行循环体,“否”则退出循环体.问题探究:什么时候使用循环语句?提示:循环结构是算法中的基本结构,循环语句是实现这一算法的基础,它能解决那些需要重复进行运算的问题,把循环结构的算法转化为易于理解的类似计算机的语言,从而实现程序在计算机上的运行.例如,要求1+2+3+…+100的计算就要反复进行加法运算,就可以使用循环语句实现.要点导学用For语句循环编写用基本语句表示的算法时要注意设定好循环变量的初值、步长和终值,避免出现多一次循环或少一次循环的情况.要点一For语句的应用设计算法:计算1+12+…+11000,使用For语句描述该算法,并画出算法框图.【思路启迪】(1)初值、步长和终值分别是多少?(2)应有多少次循环?【解】用i表示循环次数,用S表示总和,算法步骤如下:1.令S的初始值为0,i的初始值为1;2.S=S+1/i,i=i+1;3.如果i≤1000,返回执行第2步,否则输出S.算法框图如图所示:用For语句表示如下:S=0i=1Fori=1To1000S=S+1/iNext输出S.(1)For语句是从循环变量的初始值开始执行一次循环后,直到循环变量取到其终值结束循环,适用于预先知道循环次数的循环结构.(2)在For循环语句中,我们默认循环变量每次的增量为1.如果需要考虑增加量不为1的情况,需使用参数step.例如“输出1到100内的所有奇数”的算法语句为:Fori=1To100Step2输出iNext设计一个算法,求1+2+3+…+100的值,画出相应的流程图,并写出程序语句(要求用循环结构).解:程序框图:程序语句:s=0;Fori=1To100s=s+i;Next输出s用LoopWhile语句循环编写用基本语句表示的算法时,一定要注意条件的写法,当条件为真时执行循环体,条件为假时结束循环,以防出现表达式正好相反的错误.要点二DoLoop语句的应用1×3×5×7×…×________2013.问:如何寻找满足条件的最小整数?请设计算法并用循环语句表示出算法.【思路启迪】(1)此题的循环次数是多少次?能不能确定?(2)循环体是什么?【解】算法步骤如下:1.S=1;2.i=3;3.若S≤2013,则S=S×i,i=i+2,重复第3步;4.输出i.用DoLoop语句可描述如下:S=1i=3DoS=S*ii=i+2LoopWhileS≤2013输出i在用DoLoop语句描述循环体时,先检验条件“S≤2013”是否成立.若“S≤2013”为真,则重复“S=S×i,i=i+2”.只有当条件“S≤2013”为假时,才结束重复.用循环语句描述下列算法:求满足1+3+5+…+n500的最小自然数n.解:用DoLoop语句,描述如下:i=1s=0Dos=s+ii=i+2LoopWhiles≤500输出i-2.对于求不定方程的整数解的问题,利用循环语句和条件语句可以找出所有的解.要点三条件语句与循环语句的综合应用用For语句描述一个算法,找出满足以下三个条件的矩形:(1)四条边长均为整数;(2)面积值与周长值相等;(3)各边长都不超过400.【思路启迪】(1)此算法语句有几种?(2)怎样综合应用这几种语句?【解】用For语句描述为:Fora=1To400Forb=1To400Ifa*b=2(a+b)Then输出a,bEndIfNextNext本题算法语句中省略了增量1,当循环变量的增量为1时,常省略.求100以内的勾股数(勾股数是指满足三元方程x2+y2=z2的整数解,x、y、z的取值范围都是1到100的整数).解:程序:Forx=1To100Fory=x+1To100Forz=x+yTo100a=x2b=y2c=z2Ifa+b=cThen输出x,y,zNextNextNext易错点不能正确的区分应用For的DoLoop语句的条件若12+22+…+n2100,试设计一个程序,求出满足条件的最大整数n.易错盘点【错因分析】本题易错点是用For语句编写程序:如i=1,S=0Fori=1TonS=S+i*ii=i+1Next输出i-2但本题中循环变量的终止值不知道故不能用For语句来描述算法,且For语句中不能用i=i+1.这里有两处错误.【正确解答】程序框图如下:由程序框图可得:i=1,S=0DoS=S+i*ii=i+1LoopWhileS≥100输出i-2对于For语句,事先必须知道循环次数,所以For语句只适用于循环次数已知的循环结构,如果不知循环次数,我们可用DoLoop语句.而DoLoop语句不仅可使用于未知循环次数的循环结构,当然循环次数已知时,也可应用DoLoop语句.下列关于循环语句的说法不正确的是()A.算法中的循环结构,由For语句来实现B.一般程序设计中有For或DoLoopWhile语句结构C.算法中的循环结构由循环语句来实现D.For语句表示的算法均可用DoLoopWhile语句来表示解析:算法中的循环结构由循环语句来实现,循环语句包含For语句和DoLoopWhile语句,故A不正确.答案:A1.遇到For语句,首先把初始值赋给循环变量,记下终值,并比较初始值和终值,如果初始值不超过终值,开始执行循环体.2.For循环语句描述算法的步骤如下:(1)选择一个变量S,并赋给初始值,再选一个循环变量,并赋给初始值,确定循环终止条件为终值.学习小结(2)设计循环体S=S+i,注意要使每一步的循环能够进行下去,变量的赋值不能搞错,如写为T=S+i,S=T+i等结果,将导致结果出现错误.如果循环变量的改变量不为1而为a,则需要利用Step说明步长.(3)按照要求输出所要求的结果.3.DoLoop循环语句的执行流程:先进入循环体,执行循环体语句,检查是否适合条件,如果是,继续执行,一直循环直至不满足条件为止.1.下列说法中正确的是()A.DoLoop循环和For循环结构相同B.DoLoop语句中,每一次重复后,都要检验While后的条件是否被满足,一旦不满足条件,循环停止随堂训练C.DoLoop循环每次开始执行循环体前,都要判断条件是否为假D.DoLoop循环每次开始执行循环体前,都要判断条件是否为假,这样重复执行,一直到条件值为真时,就跳过循环体部分,重新判断条件的值,直到循环结束解析:DoLoop语句的特点是:每一次重复后,都要检验While后的条件是否被满足,一旦不满足条件,循环停止.答案:B2.下列问题可以用循环语句设计程序的有()①求1+3+32+…+39的和②比较a,b两个数的大小③对于分段函数,要求输入自变量,输出函数值④求平方值小于100的最大自然数A.0个B.1个C.2个D.3个解析:①④可以用循环语句设计程序;②③要用条件语句设计程序.答案:C3.在求1+2+…+50的值时,用For语句表示的算法如下:S=0Fori=1To50Next其中缺少的语句为__________.答案:S=S+i4.下面算法中,最后输出的结果是__________.S=0i=1Doi=i+2S=3*i+2LoopWhilei9输出S.解析:可列表解答:i3579S11172329答案:295.试用循环语句描述求1-12+13-14+…+19-110的和.解:本题适合用For语句来描述,用For语句如下:S=0i=1Fori=1To10S=S+(-1)i+1/iNext输出S.