Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第5章 循环结构程序设计

上传人:E**** 文档编号:89183558 上传时间:2019-05-20 格式:PPT 页数:51 大小:359KB
返回 下载 相关 举报
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第5章 循环结构程序设计_第1页
第1页 / 共51页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第5章 循环结构程序设计_第2页
第2页 / 共51页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第5章 循环结构程序设计_第3页
第3页 / 共51页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第5章 循环结构程序设计_第4页
第4页 / 共51页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第5章 循环结构程序设计_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第5章 循环结构程序设计》由会员分享,可在线阅读,更多相关《Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第5章 循环结构程序设计(51页珍藏版)》请在金锄头文库上搜索。

1、第5章 循环结构程序设计,第5章 循环结构程序设计,循环是指在程序设计中,从某处开始有规律地反复执行某一程序块的现象,重复执行的程序块称为“循环体”。使用循环可以避免重复不必要的操作,简化程序,节约内存,从而提高效率。,5.1 循环结构程序设计的概念 VB提供的设计循环结构的语句有:Do.Loop、While.Wend、For.Next、For Each.Next等。其中最常用的是Do.Loop和For.Next。 5.2 DoLoop语句 DoLoop语句有两种语法形式,分别是前测型循环结构与后测型循环结构。,5.2.1 前测型DoLoop循环 前测型DoLoop循环结构,首先判断条件,根据

2、条件决定是否执行循环,执行循环的最少次数为0。其流程图如图5-1所示。 图5-1 前测型循环结构流程图 其语法为 Do While | Until 条件 语句序列1 Exit Do 语句序列2 Loop,【例5-1】求累加和1 + 2 + 3 + 100。 分析:采用累加的方法,用变量intSum来存放累加的和(开始为0),用变量n来存放“加数”(加到intSum中的数)。这里n又称为计数器,从1开始到100为止。 命令按钮的Click事件代码: Private Sub Command1_Click() Dim intSum As Integer, n As Integer intSum =

3、0: n = 1 Do While n = 100 intSum = intSum + n n = n + 1 Loop 图5-3 求累加和 Label2.Caption = “1+2+3+100 = “ & intSum End Sub,还可以改为直到型: Private Sub Command1_Click() Dim intSum As Integer, n As Integer intSum = 0: n = 1 Do Until n 100 intSum = intSum + n n = n + 1 Loop Label2.Caption = “1+2+3+100 = “ & int

4、Sum End Sub,【例5-2】输入一个正整数,利用“当型”循环判断是否素数。 分析:所谓“素数”是指除了1和该数本身,不能被任何整数整除的数。判断一个自然数n(n3)是否素数,只要依次用2作除数去除n,若n不能被其中任何一个数整除,则n即为素数。 图5-5 判断素数,命令按钮Command1的Click事件代码: Private Sub Command1_Click() Dim n As Long Select Case Val(Text1.Text) Case Is 2147483647 MsgBox “此数太大!“, vbInformation + vbOKOnly, “注意“ Ca

5、se Else n = Val(Text1.Text) s = 0: i = 2,Do While i = Sqr(n) And s = 0 If n Mod i = 0 Then s = 1 Else i = i + 1 End If Loop If s = 0 Then a = “是一个素数“ Else a = “不是素数“ End If Label1.Caption = Str(n) & a End Select Text1.SetFocus End Sub,另外,为了使用文本框得到焦点后,文本立即被选中,编写Text1的GotFocus事件代码如下: Private Sub Text1

6、_GotFocus() Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End Sub,5.2.2 后测型DoLoop循环 后测型DoLoop循环结构,首先执行循环体,然后判断条件,根据条件决定是否继续执行循环,因此执行循环的最少次数为1。其流程图如图5-6所示。 图5-6 后测型循环结构流程图 其语法为: Do 语句序列1 Exit Do 语句序列2 Loop While | Until 条件,【例5-3】输入有效数字的位数,利用下述公式计算圆周率的近似值: 分析:首先找出公式中无穷乘积各项的规律:设第n项的分母为pn,则第n + 1

7、项的分母为。若设前n项乘积为Sn,则前n项乘积为Sn+1 = 2Sn / pn+1。,命令按钮Command1的Click事件代码为: Private Sub Command1_Click() Dim m As Integer m = Val(Text1.Text) p = 0#: s = 2#: e = 0.1 m Do t = s : p = Sqr(2 + p) : s = s * 2 / p Loop Until Abs(t s) 0.1 m f = String(m 1, “#“) Text2.Text = Format(s, “0.“ & f) 图5-8 计算圆周率 Text1.S

8、etFocus End Sub 文本框Text1的GotFocus事件代码: Private Sub Text1_GotFocus() Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End Sub,【例5-4】输入两个正整数,求它们的最大公约数。 分析:求最大公约数可以用“辗转相除法”,方法如下: 1) 以大数m作被除数,小数n做除数,相除后余数为r。 2) 若r0,则mn,nr,继续相除得到新的r。若仍有r0,则重复此过程,直到r=0为止。 3) 最后的n就是最大公约数。 命令按钮的Click事件代码:,Private Sub Co

9、mmand1_Click() m = Val(Text1.Text) n = Val(Text2.Text) If n * m = 0 Then MsgBox “两数都不能为0!“ Exit Sub End If If m 0 Text3.Text = m End Sub,5.3 For.Next语句 在不知道循环内执行多少次语句时,宜用DoLoop循环。若知道要执行的循环次数时,则最好使用For.Next循环。For循环的流程图如图5-11所示。 图5-11 步长型循环结构流程图 其语法为: For循环变量=初值 To 终值 Step 步长 语句序列1 Exit For 语句序列2 Next

10、 循环变量,【例5-5】用For循环结构显示1000以内的所有能被37整除的自然数(如图5-12所示)。 编写命令按钮Command1的Click事件代码: Private Sub Command1_Click() a = “ For n = 1 To 1000 If n Mod 37 = 0 Then a = a & Str(n) & vbCrLf End If Next Text1.Text = a 图5-12 能被37整除的自然数 End Sub 说明:常量vbCrLf表示插入一个回车与换行符组合,也可以直接用一个回车符加上换行符(Chr(13) & Chr(10))来产生一个行断点。,

11、【例5-6】求从1000到1100之间的所有素数。 分析:例5-2介绍了利用DoLoop循环判断素数的方法,现在只需对10001100之间的各整数依次测试。,命令按钮Command1的Click事件代码: Private Sub Command1_Click() a = “ For n = 1001 To 1100 Step 2 s = 0 For i = 2 To Int(Sqr(n) If n Mod i = 0 Then s = 1: Exit For End If Next 图5-14 求素数 If s = 0 Then a = a & Str(n) & vbCrLf Next Tex

12、t1.Text = a End Sub,5.4 列表框与组合框 列表框和组合框为用户提供了包含一些选项和信息的可滚动列表。在列表框中,任何时候都能看到多个项,而在组合框中,平时只能看到一个项,用鼠标单击向下按钮可以看到多项的列表。 5.4.1 列表框 当列表框不能同时显示所有选择项时,VB将自动给列表框加上一个垂直的滚动条,使用户可以上下滚动列表框,以查阅所有的选项。,1. 列表框的属性与方法 表5-1列出了常用的列表框属性。 表5-1 常用列表框属性 表5-2列出了常用的列表框方法。,表5-2 常用列表框方法,2. 使用列表框显示数据 【例5-7】将例5-5中的文本框改为列表框,如图5-15

13、所示。 将窗体中的文本框换为列表框,无需修改属性,只需修改命令按钮的Click事件代码:,Private Sub Command1_Click() List1.Clear For n = 1001 To 1100 Step 2 s = 0 For i = 2 To Int(Sqr(n) If n Mod i = 0 Then s = 1 : Exit For End If 图5-15 求素数 Next If s = 0 Then List1.AddItem n 使用列表框的Add方法增加列表项 Next End Sub,【例5-8】“同构数”是指这样的整数:它恰好出现在其平方数的右端,例如1和

14、5就是这样的数。试找出19999之间的全部“同构数”(如图5-16所示)。 图5-16 “同构数” 分析:1位同构数n应满足条件:n = n2 Mod 10, 2位同构数n应满足条件:n = n2 Mod 100, 3位同构数n应满足条件:n = n2 Mod 1000, 4位同构数n应满足条件:n = n2 Mod 10000。,命令按钮的Click事件代码: Private Sub Command1_Click() List1.Clear For n = 1 To 9999 Select Case n Case n 2 Mod 10 List1.AddItem Format(n, “) &

15、 Format(n 2, “) Case n 2 Mod 100 List1.AddItem Format(n, “) & Format(n 2, “) Case n 2 Mod 1000 List1.AddItem Format(n, “) & Format(n 2, “),Case n 2 Mod 10000 List1.AddItem Format(n, “) & Format(n 2, “) End Select Next End Sub,【例5-9】小学生做加减法的算术练习程序。计算机连续地随机给出两位数的加减法算术题,要求学生回答,答对的打“”,答错的打“”。将做过的题目存放在列表

16、框中备查,并随时给出答题的正确率(如图5-17所示)。 分析:随机函数Rnd返回一个(0,1)之间的随机小数,为了生成某个范围内的随机整数,可以使用公式:Int(最大值 最小值 + 1) * Rnd + 最小值) 其中,最大值和最小值为指定范围中的最大、最小数。 图5-17 算术练习,出题部分由窗体的激活(Activate)事件代码完成: Private Sub Form_Activate() Randomize (Time) a = Int(10 + 90 * Rnd) b = Int(10 + 90 * Rnd) p = Int(2 * Rnd) Select Case p Case 0 L

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

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

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