1、 2.3.3 DOWhile循环结构教学目标:知识与技能:掌握Do-while循环语法规则过程与方法:理解Do-while运行机制教学重点难点:Do-while循环语法规则和运行机制教学方法:讲授法、任务驱动法课时:1课时引入:求的近似值 用/4=1-1/3+1/5-1/7+级数,求的近似值。当最后一项的绝对值小于是10-5时,停止计算 1、用程序基本结构中的哪种? 2、怎么实现?新课新问题:希望工程储蓄问题新问:计算多少个月“希望工程”储蓄才能多于500元?分析N s 条件验证 是否继续存款月份 (初始值1) S(和初始值0)N=1 s= 0 + 1 =1 s500 ? 是N=2 s= 1
2、+ 2 =3 s500 ? 是N=3 s= 3 + 3 =6 s500 ? 是N=4 s= 6 + 4 =10 s500 ? 是 N s=s+n s500成立 否结论:重复性操作仍用循环,但次数不明确不能用FOR-next,该问题是有条件限制的循环,所以用DO-whileDo-while语法结构: Do-while 条件 循环体 Loop功能:当条件成立时,执行循环体,遇到Loop无条件返回到DO-While;当条件不成立时,退出循环。程序实现 S=0 N=1 Do while s=500循环体中,两条语句互换可不可以?如果可以怎样修改程序? s=s+n n=n+1 Loop Print s,
3、n说明:For-next循环中步长就决定了循环变量的变化,DO循环中我们需要自己设置变量的变化情况即:n=n+1DO-while循环适应于解决次数不明确条件限制的重复性问题,应用时一定要注意程序实现的初始和结束条件限制,否则很容易出错例:编程解决100以内整数和问题1、s=0 N=0do while n100 n=n+1 s=s+n loop print s注:要注意N的初始值与条件临界值的设定2、s=0 for n=1 to 100 s=s+n next nPrint s区别:For-next 循环主要是用在知道循环次数的情况下,若事先不知道循环次数,可以使用Do-while,Do-whil
4、e运用一定要在循环初始和结束时注意条件设定,既不可多也不可少循环。 求的近似值代码实现: Show Dim pi as single,n as long, s as integer Pi=0:n=1:s=1 Do while n=100000 pi=pi+s/n s=-s n=n+n Loop Print pi*4实例分析: 1、输入两个正整数,求它们的最大公约数 “辗转相除法”算法:求出m/n余数P=0,N即为最大公约数;若P非0,则把原来的公母N作为新的分子M,把余数P作为新的分母N继续求解设计步骤如下:(1)创建应用程序的用户界面和设置对象属性编写的 “计算”按钮Click事件过程代码如
5、下: Private sub command1_click() Dim m as integer,n as integer,p as integer M=val(text1.text):n= val(text2.text) If m=0 or n=0 then Msgbox(“数据错误”) End End if Do while p0 P=m mod n M=n N=p Loop Text3.text=m End sub设计一个“加法器”程序 把每次输入的数累加起来,直到输入-1时结束运行 (1)创建应用程序的用户界面和设置对象属性 (2)编写程序代码 Private sub form_loa
6、d() Show S=0 Do while ture If x=-1 then Exit do End if S=s+x Text1.text=sum Loop msgbox(“累加运算结束”) End sub当堂训练 1.m=0:n=0 Do while n3 M=(m+1)*(m+2) N=n+1 Loop Print m,n2. y=2 Do while y=8 y=Y*2Loop 求循环次数小结:For/next语句与do while/loop比较:如果知道循环次数,一般使用for/next循环。如果不知道循环次数,就使用do while/loop循环。课后作业:修改程序,用两种循环语句求下列式子的值:2+4+8+.+100=?