资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1.2.3,基本算法语句,循环语句,1/26,算法中循环结构是由循环语句来实现,.,循环结构有两种,-,当型与直到型,.,满足条件?,循环体,是,否,当型循环结构,(,当条件满足时重复执行循环体,),直到型循环结构,(,重复执行循环体直到条件满足,),循环体,是,否,满足条件?,对应于程序框图中两种循环结构,普通程序设计语言中也有当型(,WHILE,型)和直到型(,UNTIL,型)两种语句结构。,2/26,(1)UNTIL,语句普通格式是,:,DO,循环体,LOOP UNTIL,条件,循环体,是,否,满足条件?,直到型循环结构,DO,做什么,LOOP UNTIL,绕环回线走,直到抵达某种,条件为止,思索,:,参考其直到型循环结构对应程序框图,说说,计算机是按怎样次序执行,UNTIL,语句?,即,WHILE,语句和,UNTIL,语句。,3/26,(1)UNTIL,语句普通格式是,:,DO,循环体,LOOP UNTIL,条件,循环体,是,否,满足条件?,直到型循环结构,从,UNTIL,型循环结构分析,计算机执行该语句时,先,执行一次循环体,然后进行条件判断,假如条件不,满足,继续返回执行循环体,然后再进行条件判断,这个过程重复进行,直到某一次条件满足时,不再执,行循环体,跳到,LOOP UNTIL,语句后执行其它语句,是先执行循环体后进行条件判断循环语句,.,4/26,(2)WHILE,语句普通格式是,:,WHILE,条件,循环体,WEND,其中循环体是由计算机重复执行一组语句组成。,WHLIE,后面“条件”是用于控制计算机执行循环体或跳出循环体。,WHILE,当,时候,WEND,朝,方向,行走,5/26,(2)WHILE,语句普通格式是,WHILE,条件,循环体,WEND,当计算机碰到,WHILE,语句时,先判断条件真假,假如条件,符合,就执行,WHILE,与,WEND,之间循环体,;,然后再检验上述条件,假如条件仍符合,再次执行循环体,这个过程重复进行,直到某一次条件不符合为止,.,这时,计算机将不执行循环体,直接跳到,WEND,语句后,接着执行,WEND,之后语句,.,满足条件?,循环体,是,否,当型循环结构,6/26,提问,:,经过对照,大家以为,WHILE,型语句与,UNTIL,型,语句之间有什么区分呢?,区分,:在,WHILE,语句中,是当条件,满足,时执行循环,体,而在,UNTIL,语句中,是当条件,不满足,时执行循环,体。,WHILE,语句普通格式,WHILE,条件,循环体,WEND,UNTIL,语句普通格式,DO,循环体,LOOP UNTIL,条件,7/26,练习,1.,编写程序,计算自然数,1+2+3+,+99+100,和,.,分析,:,这是一个累加问题,.,我们能够用,WHILE,型语句,也能够用,UNTIL,型语句。,8/26,UNTIL,语句,开始,结束,i=1,S=0,i=i+1,S=S+i,输出,S,i100?,否,是,直到型,i=1,S=0,DO,S=S+i,i=i+1,LOOP UNTIL,i100,PRINT S,END,9/26,WHILE,语句,开始,结束,i=1,S=0,i=i+1,S=S+i,输出,S,i100?,是,否,当型循环结构,i=1,S=0,WHLIE i=100,S=S+i,i=i+1,WEND,PRINT S,END,10/26,开始,i=1,S=,0,i100?,是,S=S+i,i=i+1,否,输出,S,结束,当型循环结构,变式训练,(1):,编写程序求,:n!=12345n,值,.,怎样修改,?,输入,n,WHILE,语句,i=1,S=0,WHLIE i100,PRINT S,END,S=1,101,S=S,i,i=i+2,是,开始,结束,i=1,S=0,i=i+1,S=S+i,输出,S,i100?,否,直到型,S=1,S=S,i,i=i+2,i101?,12/26,变式,3:,函数,y=x2-3x+5,从,x=1,开始连续输入,19,个自然数进行取值,输出对应函数值,用程序语言进行编程,n=1,DO,y=x2-3,x+5,LOOP UNTIL n20,PRINT“x=”;x,“y=”;y,END,n=n+1,程序,直到型,13/26,当型,n=1,WHILE nn-1,或,r=0?,r=0?,N,不是质数,N,是质数,结束,是,否,是,否,结束,否,开始,求,n,除以,i,余数,r,i,值增加,1,,仍用,i,表示,in-1,或,r=0?,是,r=0?,N,不是质数,N,是质数,是,否,输入,n,i=2,练习,2:,依据,P7,页图,1.1-2,将程序框图转化为程序语句,.,15/26,分析,:,仔细观察,该程序框图中现有条件结构,又有循环结构。,INPUT“n=”;n,i=2,DO,r=n MOD i,i=i+1,LOOP UNTIL i=n OR r=0,IF r=0 THEN,PRINT“n is not a prime number.”,ELSE,PRINT“n is a prime number.”,END IF,END,程序,16/26,练习,3.,图,1.1-20,转化成程序语言,程序框图,程序,INPUT“a,b,d=”;a,b,d,DO,m=(a+b)/2,f=m2-2,g=a2-2,IF g,f0 THEN,b=m,ELSE,a=m,END IF,LOOP UNTIL ABS(a-b)d OR f=0,PRINT m,END,继续,17/26,是,是,否,f(a)f(m)0?,程序框图,开始,f(x)=x,2,-2,输入误差,d,和初值,a,b,b=m,否,a=m,|a-b|d,或,f(m)=0?,输出,m,结束,返回,18/26,练习,4,,求,S=1+1/2+1/3+1/n,编写程序,程序,INPUT“n=”;n,i=1,S=0,WHILE i=n,S=S+1/i,i=i+1,WEND,PRINT“S=”;S,END,19/26,练习,5.P33,页,A,组,T3.,程序,INPUT“n=”;n,i=1,S=0,WHILE i=n,S=S+(i+1)/i,i=i+1,WEND,PRINT“S=”;S,END,20/26,练习,6.P33,页,B,组,T4.,程序,INPUT“a=”;a,INPUT“n=”;n,tn=0,sn=0,i=1,WHILE in,PRINT,这个数阶乘为:,;,t,END,22/26,练习,8,(,1,)、设计一个算法框图:逐一输出,1,2,,,2,2,,,3,2,,,,,n,2,,并写出对应,QBASIC,程序。,INPUT n,i=0,WHILE i =n,END,结束,i=0,开始,i=i+1:t=i2,i=n?,否,是,PRINT t,INPUT n,23/26,(,2,)、设计一个算法框图:求满足,1,2,3,n,10000,最小正整数,n,,并写出对应,QBASIC,程序。,结束,输出,i,i=0,,,Sum=1,开始,i=i+1,Sum=Sum*i,Sum10000?,否,是,i=0,sum=0,DO,i=i+1,sum=sum+i,LOOP UNTIL sum10000,PRINT i,END,24/26,小 结,WHILE,条件,循环体,WEND,DO,循环体,LOOP UNTIL,条件,两种循环语句:,循环体,满足条件?,是,否,(,1,),While,(当型)循环,(,2,),Until,(直到型)循环,循环体,满足条件?,是,否,25/26,作业,1.P33A,组,1,、,2,2.P33B,组,2,、,3,26/26,
展开阅读全文