《Visual Basic语言程序设计教程(第二版)》-程胜利-电子教案 第8章 循环

上传人:E**** 文档编号:89436251 上传时间:2019-05-25 格式:PPT 页数:44 大小:684KB
返回 下载 相关 举报
《Visual Basic语言程序设计教程(第二版)》-程胜利-电子教案 第8章 循环_第1页
第1页 / 共44页
《Visual Basic语言程序设计教程(第二版)》-程胜利-电子教案 第8章 循环_第2页
第2页 / 共44页
《Visual Basic语言程序设计教程(第二版)》-程胜利-电子教案 第8章 循环_第3页
第3页 / 共44页
《Visual Basic语言程序设计教程(第二版)》-程胜利-电子教案 第8章 循环_第4页
第4页 / 共44页
《Visual Basic语言程序设计教程(第二版)》-程胜利-电子教案 第8章 循环_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《《Visual Basic语言程序设计教程(第二版)》-程胜利-电子教案 第8章 循环》由会员分享,可在线阅读,更多相关《《Visual Basic语言程序设计教程(第二版)》-程胜利-电子教案 第8章 循环(44页珍藏版)》请在金锄头文库上搜索。

1、第8章 循环结构,本章的学习要点 掌握DO循环结构 掌握For循环控制结构 循环的嵌套 常用算法,概 述,单击窗体,要求在窗体上显示6行星号 分析: 要求显示的信息是每行是由16个星号所构成的字符串,所以可以通过连续6次调用窗体的Print方法实现图形的显示,Private Sub Form_Click() Print “*“ Print “*“ Print “*“ Print “*“ Print “*“ Print “*“ End Sub,若要求显示10行或更多行这样的信息 若打印信息的行数要求是由用户决定 专门用于进行重复操作的语句结构,概 述,所谓循环结构,表示在执行语句时,需要对其中的

2、某个或某部分语句重复执行多次。对于此类情况可以利用各种循环结构来实现。 循环结构可以分为For循环、 Do 循环和While循环语句结构。,8.1 Do 循环,Do 循环可以分为前测型循环和后测型循环两种结构。 前测型循环结构 语法格式:,True,循环条件,循环体,False,格式1 (当型) Do While 循环条件 循环体 Loop,False,循环条件,循环体,True,格式2(直到型) Do Until 循环条件 循环体 Loop,8.1 Do 循环,Do 循环可以分为前测型循环和后测型循环两种结构。 后测型循环结构 语法格式:,格式1 (当型) Do 循环体 Loop While

3、 循环条件,格式2 (直到型) Do 循环体 Loop Until 循环条件,循环条件,循环体,True,False,循环条件,循环体,False,True,8.1 Do 循环,单击窗体,要求在窗体上显示6行星号 前测型当型循环: 将上面的代码改为前测型直到型循环、后测型当型循环和后测型直到型循环。,Dim i As Integer 定义计数器变量i来记录目前已输出的行数 i = 0 Do While i 6 当输出行数未达到6行,反复执行下面语句 Print “*“ i = i + 1 每输出一行信息,计数器i累加1 Loop 返回到Do While行 End Sub,Do Until i

4、5 Print “*“ i = i + 1 Loop,Do Print “*“ i = i + 1 Loop while i 6,Do Print “*“ i = i + 1 Loop Until i 5,Val(InputBox(“请输入行数:“),注意: 在循环体中,至少要有一条语句使得循环趋结束,使循环语句在有限的时间内执行完毕,否则将会出现“死循环”。,例:求S=1+(1+2)+ +(1+2+3+100)的值。,编写代码: Private Sub Command1_Click() Dim s As Long, n As Integer, k As Integer Label1.Capt

5、ion = “s=1+(1+2)+(1+2+3)+.(1+2+3+.100)=?“ s = 0: n = 0: k = 1 Do n = n + k 求“小和”,即求s中的每一项的和。 s = s + n 求“大和”,即求s的累加和。 k = k + 1 “大和”的项数(亦即“小和”中的末项值)。 Loop While k = 100 Label2.Caption = “s=1+(1+2)+(1+2+3).+(1+2+3+.+100)=“ & s End Sub,8.1 Do循环,Until,k 100,8.1 Do 循环,设计采用欧几里德算法求解两个自然数的最大公约数的程序 算法分析: “欧

6、几里德算法”,输入两个自然数m、n 求m除以n的余数r mn nr 若r0,则重复执行(循环),否则转 输出m和n的最大公约数m,输入两个自然数m,n,r=m Mod n,m=n,n=r,r0,输出最大公约数m,开始,结束,False,True,8.1 Do 循环,设计采用欧几里德算法求解两个自然数的最大公约数的程序,界面设计: 利用文本框来接收数据和显示结果,利用命令按钮的单击事件完成最大公约数的计算。,Private Sub Command1_Click() Dim m As Integer, n As Integer, r As Integer m = Val(Text1.Text) n

7、 = Val(Text2.Text) End Sub Private Sub Command2_Click() Text1.Text = “ Text2.Text = “ Text3.Text = “ End Sub Private Sub Command3_Click() End End Sub,Private Sub Command1_Click() Dim m As Integer, n As Integer, r As Integer m = Val(Text1.Text) n = Val(Text2.Text) Do r = m Mod n m = n n = r Loop Whil

8、e r 0 Text3.Text = m End Sub Private Sub Command2_Click() Text1.Text = “ Text2.Text = “ Text3.Text = “ End Sub Private Sub Command3_Click() End End Sub,8.1 Do 循环,设计一个小程序,能够实现接收若干的专家的考评打分,输入-1表示打分结束,最后计算出平均考评分,界面设计 : 由于要接收的数据无法预知其个数,所以不适合利用文本框来接收数据,所以采用输入函数InputBox,结合循环实现 利用窗体的单击事件完成最大公约数的计算,并在窗体上而显示

9、结果,输入一个专家打分Mark,总分累加Total = Total + Mark,输出平均考评分Average,开始,结束,False,True,总考评分清零Total=0,Mark-1,输入下一个专家打分Mark,Average= Total / Num,考评分个数清零Num=0,考评分个数累加Num = Num + 1,Private Sub Form_Click () Dim Total As Single, mark As Single, average As Single Dim Num As Integer Total = 0: Num = 0 mark = Val(InputBo

10、x(“请输入第“ & Num + 1 & “个专家评分(-1表示结束输入):“) Do While mark -1 Total = Total + mark Num = Num + 1 mark = Val(InputBox(“请输入第“ & Num+1 & “个专家评分(-1表示结束输入):“) Loop average = Total / Num MsgBox Num & “个专家的平均分为:“ & average End Sub,习 题,1. 依次在输入5、4、3、2、1、-1,输出结果是? Private Sub Command_Click() X=0 Do Until x = -1

11、a=Val(InputBox(“请输入A的值”)) b=Val(InputBox(“请输入B的值”)) x=Val(InputBox(“请输入X的值”)) a=a+b+x print a Loop End Sub,输出两个结果,分别是12和2,习 题,2. 依次在输入5、4、3、2、1、-1,输出结果为_ Private Sub Command_Click() X=0 Do Until x=-1 a=Val(InputBox(“请输入A的值”)) b=Val(InputBox(“请输入B的值”)) x=Val(InputBox(“请输入X的值”)) a=a+b+x Loop print a E

12、nd Sub,输出结果只有一个,2,3. 运行下列程序,单击窗体,则执行结果是() Private Sub Form_Click() s=0 Do s=(s+1)*(s+2) Number= Number+1 Loop Until s = 30 Print Number ;s End Sub A) 0 1 B) 30 30 C) 4 30 D) 3 182,习 题,4. 运行下列程序,单击窗体,则执行结果是() Private Sub Form_Click() b=1 a=2 Do While b 10 b=2*a+b Loop Print b End Sub A) 13 B) 17 C) 2

13、1 D) 33,习 题,习 题,5. 运行下列程序,单击窗体,则执行结果是 Private Sub Form_Click() a = 100 Do s = s + a a = a + 1 Loop While a 111 Print a End Sub,结果:a=101,6.运行下列程序,单击窗体,则执行结果是_ Private Sub Form_Click() s = 0 i = 1 Do While i =100 If (i 5) * 5 = i Then s = s + 1 i = i + 1 End If Loop Print s End Sub,结果:死循环,习 题,7. 运行下列程

14、序,单击窗体,则执行结果是_ Private Sub Form_Click() s = 0 i = 1 Do While i =100 If (i 5) * 5 = i Then s = s + 1 End If i = i + 1 Loop Print s End Sub,结果:s=20,习 题,8.2 While循环,语法格式: While 循环条件 循环体 Wend 这种结构使用完全类似于Do-Loop的当型循环(格式1),表示当循环条件为True时,反复执行循环体,直到循环条件为False为止。,例如:求S=1+(1+2)+(1+2+100)的值。 程序代码: Private Sub

15、Command_Click( ) Dim s as long, n as Integer,k as Integer s=0:n=0:k=1 While k=100 n=n+k:s=s+n:k=k+1 Wend Label2.Caption=“1+(1+2)+(1+2+100)=” & s,语法格式如下:,For 循环变量 = 初值 to 终值 step 步长 执行语句 Next 循环变量,8.3 ForNext循环,True,i=终值,循环体,False,i=i+步长,控制变量i=初值,注意: 步长可以为正、负,也可以是整数或小数。若省略,默认值为1。当步长为正数时,终值初值;为负数时,终值初值。 Next表示循环控制变量取下一个值, 即:i=i+步长 For循环的循环次数由循环变量的初 值、终值和步长决定: Int(终值-初值)/步长)+1,循环次数的一般计算公式: Int(终值-初值)/步长)+1,例如: For I=2 to 18 step 3 c=c+1 Next I 上述For的循环次数 =Int(18-2)/3)+1=6,2,1,5,2,8,3,11,4,14,5,17,6,20,8.3 ForNext语句,循环次数的两种特殊情况: 初值

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号