课件22张PPT。 1.2.3基本算法语句
——循环语句学习目标重点:两种循环语句的表示方法、结构和用途,用循环语句表示算法.
难点:理解循环语句的表示方法、结构和用途.会编写程序中的循环语句.重、难点1、正确理解循环语句的概念,并掌握其结构.
2、会用循环语句编写程序
3、会根据所给的循环语句准确回答相关的问题.算法中的循环结构是由循环语句来实现的 .循环结构有两种-----当型与直到型.当型循环结构(当条件满足时反复执行循环体)直到型循环结构(反复执行循环体直到条件满足) 对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构. (1)UNTIL语句的一般格式是:
DO
循环体
LOOP UNTIL 条件DO——做什么LOOP UNTIL——绕环回线走,直到达到某种
条件为止思考:参照其直到型循环结构对应的程序框图,说说
计算机是按怎样的顺序执行UNTIL语句的? 即WHILE语句和UNTIL语句. (1)UNTIL语句的一般格式是:
DO
循环体
LOOP UNTIL 条件2、UNTIL型语句先执行一次DO和UNTIL循环体,再对UNTIL后的条件判断,如果条件不满足,继续执行循环体;然后再进行条件的判断,若不符合则再次执行循环体,直到某一次条件满足时,不再执行循环体,跳到LOOP UNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句.(2)WHILE语句的一般格式是:
WHILE 条件
循环体
WEND 其中循环体是由计算机反复执行的一组语句构成的.WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的.WHILE——当……
时候WEND——朝……方向
行走(2)WHILE语句的一般格式是 WHILE 条件
循环体
WEND 3、WHILE语句先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句. 提问:通过对照,大家觉得WHILE型语句与UNTIL型
语句之间有什么区别呢? 区别:在WHILE语句中,是当条件满足时执行循环
体,而在UNTIL语句中,是当条件不满足时执行循环
体.4.编写程序,计算自然数1+2+3+…+99+100的和.分析:这是一个累加问题.我们可以用WHILE型语句,也可以用UNTIL型语句.i=1
S=0DOS=S+i
i=i+1LOOP UNTILi>100PRINT SEND4.编写程序,计算自然数1+2+3+…+99+100的和.i=1
S=0WHLIE i<=100S=S+ii=i+1WENDPRINT SENDi=1
S=0DOS=S+i
i=i+1LOOP UNTILi>100PRINT SENDi=1
S=0WHLIE i<=100S=S+ii=i+1WENDPRINT SEND例1:函数y=x^2-3x+5,从x=1开始输入19个连续的自然数进行取值,输出相应的函数值,用程序语言进行编程 X=1DOy=x^2-3*x+5LOOP UNTIL X>19PRINT “y=”;yENDX=X+1程序直到型练习:试改写成当型循环结构的语句.当型x=1WHILE x<=19y=x^2-3*x+5WENDPRINT “y=”;yENDx=x+1程序例1:函数y=x^2-3x+5,从x=1开始输入19个连续的自然数进行取值,输出相应的函数值,用程序语言进行编程算法步骤:
第一步,输入自变量x的值第二步,计算第三步,输出y第四步,记录输入次数第五步,判断输入的次数是否大于11.若是,
则结束算法;否则,返回第一步变式1算法步骤:
第一步,输入自变量x的值第二步,计算第三步,输出y第四步,记录输入次数第五步,判断输入的次数是
否大于11.若是,则结束算法;否则,返回第一步n=1DOINPUT xy=x^3+3*x^2-24*x+30PRINT yn=n+1LOOP UNTIL n>11END结束否例2:根据P7页图1.1-2,将程序框图转化为程序语句.分析:仔细观察,该程序框图中既有条件结构,又有循环结构.INPUT “n=”;n
i=2
DO
r=n MOD i
i=i+1
LOOP UNTIL i>n-1 OR r=0
IF r=0 THEN
PRINT “n is not a prime number.”
ELSE
PRINT “n is a prime number.”
END IF
END程序小 结WHILE 条件
循环体
WENDDO
循环体
LOOP UNTIL 条件课后作业
1、下边程序执行后输出的结果是( )i=12
S=1WHLIE s<15n=n-1S=S*iWENDPRINT nENDn=5S=0DOS=S+ni=i-1LOOP UNTIL“条件”PRINT nEND2、如果上右边程序执行后输出的结果是132,那么在程序until后面的“条件”应为( )BD3、(1):
编写程序求:n!=1×2×3×4×5×……×n的值.WHILE语句i=1
S=0WHLIE i<=100S=S+ii=i+1WENDPRINT SENDINPUT “n=”;nS=1S=S*ii≤n?S=1nS=S*i3、(2):
编写程序求:1×3×5×7×……×101的值.UNITL语句i=1
S=0DOS=S+ii=i+1LOOP UNTIL i>100PRINT SENDS=1101S=S*ii=i+2直到型S=1S=S*i i=i+2i>101?