基本算法语句循环语句问题提出1.两种条件语句的一般格式分别是什么?格式2:IF条件THEN语句体1ELSE语句体2ENDIF格式1:IF条件THEN语句体ENDIF2.对于顺序结构、条件结构的算法或程序框图,我们可以利用输入语句、输出语句、赋值语句和条件语句写出其计算机程序.对于循环结构的算法或程序框图,要转化为计算机能够理解的算法语言,我们必须进一步学习循环语句.知识探究(一):直到型循环语句思考1:直到型循环结构的程序框图是什么?满足条件?是循环体否DO循环体LOOPUNTIL条件你能说明计算机在执行上述语句时是怎样工作的吗?思考2:该循环结构对应的循环语句的一般格式设定为:满足条件?是循环体否先执行一次DO和UNTIL之间的循环体,再对UNTIL后的条件进行判断.如果条件不符合,则继续执行循环体;然后再检查上述条件,如果条件仍不符合,则再次执行循环体,直到条件符合为止.这时,计算机将不执行循环体,而执行UNTIL语句之后的语句.DO循环体LOOPUNTIL条件满足条件?是循环体否下列循环语句,循环终止时,i等于()i=1DOi=i+1LOOPUNTILi4A.3B.4C.5D.6[答案]C思考3:计算1+2+3+…+100的值有如下算法:第一步,令i=1,S=0.第二步,计算S+i,仍用S表示.第三步,计算i+1,仍用i表示.第四步,判断i100是否成立.若是,则输出S,结束算法;否则,返回第二步.你能利用UNTIL语句写出这个算法对应的程序吗?i=1S=0DOS=S+ii=i+1LOOPUNTILi100PRINTSEND第一步,令i=1,S=0.第二步,计算S+i,仍用S表示.第三步,计算i+1,仍用i表示.第四步,判断i100是否成立.若是,则输出S,结束算法;否则,返回第二步.思考4:在下面的程序运行中,计算机输出的结果是多少?x=20DOx=x-3LOOPUNTILx0PRINTxEND-1知识探究(二):当型循环语句思考1:当型循环结构的程序框图是什么?满足条件?否循环体是WHILE条件循环体WEND思考2:该循环结构对应的循环语句的一般格式设定为:循环体满足条件?是否你能说明计算机在执行上述语句时是怎样工作的吗?WHILE条件循环体WEND循环体满足条件?是否先对条件进行判断,如果条件符合,则执行WHILE和WEND之间的循环体;然后再检查上述条件,如果条件仍符合,则再次执行循环体,直到某一次条件不符合为止.这时,计算机将不执行循环体,而执行WEND语句之后的语句.下列循环语句,循环终止时,i等于()i=1WHILEi3i=i+1WENDA.2B.3C.4D.5[答案]B思考3:计算1+2+3+…+100的值又有如下算法:第一步,令i=1,S=0.第二步,若i≤100成立,则执行第三步;否则,输出S,结束算法.第三步,S=S+i.第四步,i=i+1,返回第二步.你能利用WHILE语句写出这个算法对应的程序吗?i=1S=0WHILEi=100S=S+ii=i+1WENDPRINTSEND第一步,令i=1,S=0.第二步,若i≤100成立,则执行第三步;否则,输出S,结束算法.第三步,S=S+i.第四步,i=i+1,返回第二步.下面是利用直到型循环语句编写的程序,请把它改写为当型循环语句.S=1i=5DOS=S*ii=i+4LOOPUNTILi3993PRINTSEND[分析]首先注意WHILE型循环语句的格式,然后搞清其中的条件与UNTIL型语句中的条件正好相反.[解析]当型循环语句如下:S=1i=5WHILEi=3993S=S*ii=i+4WENDPRINTSEND思考4:阅读下面的程序,你能说明它是一个什么问题的算法吗?x=1WHILEx∧21000PRINTx=x+1WENDEND求满足x21000的所有正整数x的值.1.关于当型循环语句叙述正确的是()A.总是执行循环体B.执行一次循环体C.满足条件时执行循环体D.遇到WEND就结束[答案]C2.下列对WHILE语句说法不正确的是()A.当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体B.当条件不符合时,计算机不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句C.WHILE型语句结构也叫当型循环D.当型循环有时也称为“后测试型”循环[答案]D3.在循环语句的一般形式中有“UNTILA”,其中A是()A.循环变量B.循环体C.条件不成立是终止循环D.条件成立时终止循环[答案]D4.下列循环语句,循环终止时,n等于()n=2WHILEn=7n=n+1WENDA.6B.7C.8D.9[答案]C5.有人编写了下列程序,则()x=-1DOx=x^2LOOPUNTILx10PRINTxENDA.输出结果是1B.能执行一次C.能执行10次D.是“死循环”,有语法错误[答案]D6.下列程序中循环体运行次数是()i=40DOPRINTii=i+10LOOPUNTILi90ENDA.4B.5C.6D.60[答案]C理论迁移例1已知函数y=x3+3x2-24x+30,写出连续输入自变量的11个取值,分别输出相应的函数值的程序.第五步,判断输入的次数是否大于11.若是,则结束算法;否则,返回第一步.第一步,输入自变量x的值.第二步,计算y=x3+3x2-24x+30.第三步,输出y.第四步,记录输入次数.算法分析:开始输入xy=x3+3x2-24x+30输出yn=1n=n+1n11?结束是否n=1DOINPUTxy=x∧3+3*x∧2-24*x+30PRINTyn=n+1LOOPUNTILn11END用UNTIL语句写出求1-12+13-14+…+1999-11000的程序.[分析]题中要求1000个数的和或差,这1000个数的分母是连续自然数,要求用UNTIL语句编写程序.编程时要引入累加变量s和计数变量i,并用(-1)i-1调节加、减.[解析]程序如下:根据下列程序框图,把程序中所缺少的语句补充完整.程序框图程序:i=1S=0DO①②LOOPUNTIL③[答案]①S=S+i^2②i=i+1③i100下面是利用直到型循环语句编写的程序,请把它改写为当型循环语句.S=1i=1DOS=S*ii=i+2LOOPUNTILi>2013PRINTSEND[解析]当型循环语句如下.S=1i=1WHILEi<=2013S=S*ii=i+2WENDPRINTSEND例2将用“二分法”求方程的近似解的程序框图转化为相应的程序.220(0)xx开始结束f(a)f(m)0?a=mb=m是否|a-b|d或f(m)=0?输出m是否f(x)=x2-2输入精确度d和初始值a,b2abm+=ENDINPUT“a,b,d=”;a,b,dDOm=(a+b)/2g=a∧2-2f=m∧2-2IFg*f0THENb=mELSEa=mENDIFLOOPUNTILABS(a-b)dORf=0PRINTm小结作业2.直到型循环语句在条件不符合时再执行循环体,当型循环语句在条件符合时再执行循环体.1.两种循环语句源于两种循环结构,直到型循环语句先执行循环体,再判断条件;当型循环语句先判断条件,再执行循环体.8.对任意正整数n,设计一个程序求S=1+12+13+…+1n的值.作业:P32练习:1,2.P33习题1.2A组:3.B组:2.