循环结构(第五章).ppt
主页主页计算机具有速度快、精度高的计算机具有速度快、精度高的特点,特别适于进行重复性的特点,特别适于进行重复性的工作,重复次数越多越能显示工作,重复次数越多越能显示它的威力。所以,使用计算机它的威力。所以,使用计算机时,应尽量把问题归纳为简单时,应尽量把问题归纳为简单而有规则的重复运算和操作,而有规则的重复运算和操作,以充分发挥计算机的特长。以充分发挥计算机的特长。主页主页 采用循环程序可以解决一些按一定规则重复执行的问采用循环程序可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的题。例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等学期成绩,如求平均分、不及格人数等 本章主要内容 第第5 5章章 循环结构程序设计循环结构程序设计(P93)(P93)Do.Loop For.Next退出退出循环循环出口出口语句语句(Exit)(Exit)循环语句循环语句多重多重循环循环列表框与组合框列表框与组合框常用算法常用算法程序举例程序举例主页主页 循环循环是指在指定的条件下多次重复执行一组语句是指在指定的条件下多次重复执行一组语句 被重复执行的一组语句称为被重复执行的一组语句称为循环体循环体 VB提供的循环语句有提供的循环语句有 For.Next Do.Loop While.Wend For Each.Next 最常用的是最常用的是For.Next和和Do.Loop语句语句 假真循环体循 环 条件主页主页 For.Next循环主要是用在知道循环次数的情况下;循环主要是用在知道循环次数的情况下;若事先不知道循环次数,可以使用当型循环若事先不知道循环次数,可以使用当型循环Do.Loop 5.1.1 For.Next 5.1.1 For.Next循环语句循环语句 (计数控制计数控制)For 循环变量初值循环变量初值 To 终值终值 Step 步长值步长值 循环体循环体 Next 循环变量循环变量 5.1 循环语句循环语句 示例示例 求求S=1+2+3+8 s=0 For k=1 To 8 s=s+k Next k Print s=;s 程序运行结果如下:程序运行结果如下:s36K K为循为循环变量环变量主页主页 例例5.2 5.2 求求S=1+2+3+S=1+2+3+8 8,把结果显示在窗体上。,把结果显示在窗体上。s=0s=0 累加器初值为累加器初值为0 0 For k=1 To 8For k=1 To 8 s=s+k s=s+k 累加器,在原有和的基础上每次加一个数累加器,在原有和的基础上每次加一个数 NextNext Print s=;s Print s=;s 程序执行结果是:程序执行结果是:s s3636 分析分析 累加器累加器 s=s+k旧值。前旧值。前n n项之和项之和新加的数新加的数k=1k=1s s s+ks+k 0 10 1k=3k=3s s s+k s+k 1+2 3 1+2 3k=2k=2s s s+s+k k 1 21 2k=8k=8s s s+k s+k 1 1+2 2+7 7 8 8主页主页算法:通常采用重复运算来解决问题算法:通常采用重复运算来解决问题 累加、累乘等累加、累乘等 设置循环变量设置循环变量 使每次运算变量值有所不同使每次运算变量值有所不同控制循环控制循环 计数控制或条件控制计数控制或条件控制 循环结构程序的实现循环结构程序的实现求求 S=1+2+3+8 s=0 For k=1 To 8 s=s+k Next k Print s=;s 把长式子改为把长式子改为8次加次加主页主页 采用采用Print直接在窗体上输出结果,程序代码:直接在窗体上输出结果,程序代码:Private Sub Form_Load()Show t=1 For c=1 To 8 t=t*c Next c Print T=;t End Sub 程序运行结果是:程序运行结果是:T40320语句语句 t=t*c 称为乘法器。先将称为乘法器。先将t置置1(不能置不能置0)。在循环程序中,常用累加和累乘来完成各种计算任务在循环程序中,常用累加和累乘来完成各种计算任务例例5.3 求求T=8!=1238例例5.3主页主页 例例5.35.3 T=8!=1T=8!=12 23 3 8 8,把结果显示在网页上。,把结果显示在网页上。t=1t=1 累乘器初值为累乘器初值为 For c=1 To 8For c=1 To 8 t=t*c t=t*c 累乘器,在原有积的基础上每次乘一个数累乘器,在原有积的基础上每次乘一个数 NextNext Print T=;t Print T=;t 程序执行结果是:程序执行结果是:T T4032040320 分析分析c=1c=1t t t*ct*c 1 11 1c=3c=3t t t*ct*c 1*2 3 1*2 3c=2c=2t t t*ct*c 1 21 2c=8c=8t t t*ct*c 1 1*2*2*7 8 7 8累乘器累乘器 t=t*k旧值。前旧值。前n n项之积项之积新乘的数新乘的数主页主页 采用采用Print直接在窗体上输出结果,程序代码如下:直接在窗体上输出结果,程序代码如下:Private Sub Form_Load()Show Dim pi As Single,c As Integer,s As Integer pi=0 s=1 s表示加或减运算表示加或减运算 For c=1 To 10000 Step 2 pi=pi+s/c s=-s 交替改变加、减号交替改变加、减号 Next c Print“pi=;pi*4 End Sub 程序运行结果是:程序运行结果是:3.141397 例例5.4 用用/41-1/3+1/5-1/7+级数级数求求的近似值的近似值 (取前取前5000项来进行计算项来进行计算)例例5.4主页主页 For t=1 To 3 If t=1 Then a=3 If t=2 Then a=2 If t=3 Then a=1 Print a;Next t Print t A.3 3 3 3 B.1 2 3 4 C.3 2 1 4 D.1 1 1 4 下列程序的运行结果是?下列程序的运行结果是?想一想想一想思考题思考题D主页主页 5.1.2 Do While.Loop5.1.2 Do While.Loop语句语句 (条件控制条件控制)(P96)(P96)Do While|Until 条件条件 循环体循环体 Loop掌握以下格式掌握以下格式:Do While 条件条件 当条件满足的时候执行循环体当条件满足的时候执行循环体循环体循环体Loop 循环返回到循环返回到do示例示例 求求S=1+2+3+8 n=1:s=0 Do While n=8 s=s+n n=n+1 Loop Print s=;s专设变量专设变量n n来控制循环来控制循环主页主页 采用采用Do While.Loop语句语句 采用采用Print直接在窗体上输出结果,程序代码:直接在窗体上输出结果,程序代码:Private Sub Form_Load()Dim n As Integer,s As Long Show n=1:s=0 Do While n=100 s=s+n*n n=n+1 Loop Print s=;s End Sub 程序运行结果:程序运行结果:S338350例例5.55.5 求求 S S1 12 2+2+22 2+100+1002 2例例5.5主页主页 运行下面程序后,循环体执行了运行下面程序后,循环体执行了_次。次。i=0:n=1 Do While i 0 Then Combo1.AddItem Combo1.Text Text1.Text=Combo1.ListCount End If Combo1.Text=Combo1.SetFocus End Sub主页主页 Private Sub Command2_Click()“删除删除”Dim ind As Integer ind=Combo1.ListIndex If ind -1 Then -1表示无表项表示无表项 Combo1.RemoveItem ind 删除已选定的表项删除已选定的表项 Text1.Text=Combo1.ListCount End If End Sub Private Sub Command3_Click()“全清全清”Combo1.Clear Text1.Text=Combo1.ListCount End Sub Private Sub Command4_Click()End End Sub