第1章基础知识 - 涞源职教中心.ppt

上传人:创****公 文档编号:291158 上传时间:2018-09-03 格式:PPT 页数:34 大小:1.82MB
下载 相关 举报
第1章基础知识 - 涞源职教中心.ppt_第1页
第1页 / 共34页
第1章基础知识 - 涞源职教中心.ppt_第2页
第2页 / 共34页
第1章基础知识 - 涞源职教中心.ppt_第3页
第3页 / 共34页
第1章基础知识 - 涞源职教中心.ppt_第4页
第4页 / 共34页
第1章基础知识 - 涞源职教中心.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、Visual Basic程序设计,第6章 循环结构程序设计, 6.1 For.Next语句 6.2 DoLoop循环语句 6.2.1 前测型DoLoop循环语句 6.1.2 后测型DoLoop循环语句 6.3 列表框与组合框 6.1.3 列表框控件 6.1.4 组合框控件 习题 6, 6.1 For.Next语句 1. For.Next语句的语法格式 For.Next语句的语法格式为:For 循环变量=初值 To 终值 Step 步长 语句组1 Exit For 语句组2Next 循环变量2. For.Next语句的执行过程 3. For.Next循环的循环次数循环体不被执行:l 当步长为正数

2、时,初值大于终值。l 当步长为负数时,初值小于终值。通过下式计算: 循环次数=INT(终值初值)步长1),4. For.Next语句使用示例【例6-1】用For.Next语句求1 + 2 + 3 + + 100的值。设计步骤如下: 1) 建立应用程序用户界面与设置对象属性,如图6-3所示。 2) 编写事件代码。编写“计算”命令按钮Command1的Click(单击)事件代码:Private Sub Command1_Click() Dim s As Integer, n As Integer s = 0 累加器赋初值0 For n = 1 To 100 初值为1,终值为100,步长为1(省略)

3、 s = s + n 进行累加 Next n Text1.Text = s 输出累加结果 End Sub,【例6-2】输出1000以内所有能被37整除的自然数。 设计步骤如下: 1) 建立用户界面。在新建的窗体中增加一个文本框Text1、一个命令按钮Command1和一个框架Fram1。选中Frame1,在其中增加一个标签Label1,用来显示程序的说明。如图6-6(左)所示。 2) 设置对象属性 3) 编写事件代码,编写“开始”命令按钮Command1的Click(单击)事件代码:Private Sub Command1_Click() a = For n = 1 To 1000 If n

4、Mod 37 = 0 Then a = a & Str(n) & Chr(13) & Chr(10) 用Chr(13) & Chr(10)设置行断点 End If Next Text1.Text = aEnd Sub5. For.Next语句的嵌套 For.Next循环可以嵌套使用,嵌套层数没有具体限制,其基本要求是:l 每个循环必须有一个唯一的变量名作为控制变量。l 内层循环必须完全放在外循环体内,内外循环不得互相交叉骑跨。 例如,下面的嵌套是错误的: For a=1 To 5 For b=3 To 9 . Next a Next b,Next b For.Next循环的嵌套通常有以下3种形

5、式: 1) 一般嵌套形式。 For a1=. For a2=. For a3=. . Next a3 Next a2 Next a1 2) 上式中Next后面的a1、a2、a3可以省略不写。 3) 当内层循环与外层循环有相同的终点时,可共用一个Next语句。但是,控制变量名不能省略。例如: For a=1 To 2 For b=2 To 3 For c=3 To 4 Print a , b , c Next c , b , a 【例6-3】打印出如图6-7所示的乘法“九九表”。,直接在窗体上输出。窗体Form的Load(载入)事件代码为:Private Sub Form_Load() Show

6、 FontSize = 12 设置字号 Print Tab(25); 九九表 输出标题 Print 输出空行 Print * ; For i = 1 To 9 输出第一行数字(19) Print Tab(i * 6); i; 每列空5格,定位输出 Next i Print 换行 For j = 1 To 9 外层循环 Print j; ; For k = 1 To 9 内层循环,m = j * k 计算乘积 Print Tab(k * 6); m; ; 定位输出 Next k Print 换行 Next jEnd Sub 6.2 DoLoop循环语句 6.2.1 前测型DoLoop循环语句1.

7、 前测型DoLoop的语法格式 其语法格式为:Do While | Until 条件 语句组1 Exit Do 语句组2Loop3. 前测型DoLoop使用示例,【例6-4】用DoLoop语句,计算1 + 2 + 3 + + 100的值。 设计步骤如下: 1) 建立用户界面与设置对象属性,如图6-9所示。 2) 设置对象属性,参见图6-10所示。 3) 编写事件代码。 采用当型循环结构编写“计算”命令按钮Command1的Click(单击)事件代码为:Private Sub Command1_Click() Dim s As Integer, n As Integer s = 0 : n =

8、1 累加器s赋初值0,计数器n赋初值1 Do While n 100 直到型循环 s = s + n n = n + 1 Loop Label2.Caption = sEnd Sub 该事件代码还可以利用Exit Do来编写:Private Sub Command1_Click() Dim s As Integer , n As Integers = 0 : n = 1 Do s = s + n n = n + 1,If n 100 Then Exit Do 如果n100,则跳出循环 Loop Label2.Caption = sEnd Sub【例6-5】已知s = 123n,计算出s不大于5

9、000时的最大n值。 设计步骤如下: 1) 建立用户界面和设置对象属性,如图6-11所示。 2) 编写事件代码。编写“计算”命令按钮Command1的Click(单击)事件代码:Private Sub Command1_Click() Dim n As Integer, s As Long CurrentY = Label2.Height + 200 确定输出位置 n = 1 计数器赋初值1 s = 1 累乘器赋初值1 Do While s = 5000 循环条件 n = n + 1 计数器累加1 s = s * n 累乘 Print n, s 通过本行可以看到循环过程 Loop,Label1

10、.Caption = n = & Str(n 1)End Sub【例6-6】输入一个正整数,利用Do循环判断是否素数。 设计步骤如下: 1) 建立用户界面和设置对象属性,如图6-13所示。 2) 编写事件代码。编写“判定素数”命令按钮Command1的Click(单击)事件代码:Private Sub Command1_Click() Dim n As Long Select Case Val(Text1.Text) Case Is 2147483647 MsgBox 此数太大!, vbInformation + vbOKOnly, 注意 Case Else n = Val(Text1.Tex

11、t) s = 0: i = 2 Do While i 200 If x Mod 3 0 Then Text1.Text = Text1.Text & Str(x) & Chr(13) & Chr(10) End If x = x + 1 LoopEnd Sub 编写“清除”命令按钮Command2的Click(单击)事件代码:Private Sub Command2_Click() Text1.Text = End Sub 6.1.2 后测型DoLoop循环语句,1. 后测型DoLoop的语法格式 后测型DoLoop循环结构的语法格式为:Do 语句组1 Exit Do 语句组2Loop Whi

12、le | Until 条件2. 后测型DoLoop的执行过程分为当型和直到型:l 当型DoWhile Loop:当条件为真(True)时继续执行循环体,条件为假(False)时,终止循环。l 直到型DoUntil Loop:当条件为假时继续执行循环体,直到条件为真时,终止循环。 在DoLoop中,可以在循环体中放置任意个Exit Do语句,随时跳出DoLoop循环 3. 后测型DoLoop使用示例,【例6-8】输入有效数字的位数,利用下述公式计算圆周率的近似值:设计步骤如下: 1) 建立应用程序用户界面与设置对象属性,如图6-17所示 2) 编写程序代码。 根据流程图,可以写出“计算”命令按钮

13、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) Text1.SetFocusEnd Sub,文本框Text1的GotFocus事件代码:Private Sub Text1_GotF

14、ocus() Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text)End Sub【例6-9】输入两个正整数,求它们的最大公约数。设计步骤如下: 1) 建立应用程序用户界面与设置对象属性,如图6-19所示。,2) 编写程序代码。根据流程图,编写“计算”命令按钮Command1的Click事件代码为:Private Sub Command1_Click() Dim m As Integer, n As Integer m = Val(Text1.Text) n = Val(Text2.Text) If m n Then t = m: m = n:

15、 n = t 交换数据,使大数在前,小数在后 End If Do 求最大公约数 If n = 0 Or m = 0 Then 检验数据范围 MsgBox 请重新输入数据! Exit Do End If,r = m Mod n m = n n = r Loop While r 0 当r0时辗转相除 Label3.Caption = m 输出结果End Suab【例6-10】设华氏温度为h,摄氏温度为s,已知将华氏温度转换为温度的公式为:窗体Form1的Load(载入)事件代码为:Private Sub Form_Load() Dim h As String, s As Single, ts As

16、 String Do,h = InputBox(请输入华氏温度, 华氏温度) 利用输入对话框输入华氏温度 If h Then s = Int(h - 32) * 5 / 9) 计算摄氏温度 MsgBox 摄氏温度为 & Str(s), 0 + 48 + 256, 转换为摄氏温度 End If Loop While h 若输入框中的值不为空,反复计算End Sub 6.3 列表框与组合框 6.1.3 列表框控件1. 列表框的属性 (1) 基本属性 列表框的常用属性有Name、Enabled、Visible、Index等。,(2) List属性 (3) Text属性 (4) ListCount属性

17、 (5) ListIndex属性 (6) Selected属性 (7) Sorted属性 (8) MultiSelect属性2. 列表框的方法AddItem方法 形式如下:对象. AddItem 字符串表达式,位置 (2) Clear方法形式如下:对象. Clear(3) RemoveItem方法。形式如下:对象. RemoveItem 位置3. 列表框使用示例【例6-11】在列表框中,显示200以内能被6整除的自然数。设计步骤如下: 1) 建立用户界面与设置对象属性,2) 编写事件代码。 编写“显示”命令按钮Command1的Click(单击)事件代码:Private Sub Command

18、1_Click() List1.Clear 清空列表框的内容 For n = 1 To 200 If n Mod 6 = 0 Then List1.AddItem n 若n能被6整除,则添到列表框中 Next nEnd Sub 编写“关闭”命令按钮Command2的Click(单击)事件代码:,Private Sub Command2_Click() Unload MeEnd Sub【例6-12】从文本框中输入或从列表框中选择姓名,并且显示结果,如图6-25所示。 设计步骤如下: 1) 建立应用程序用户界面与设置对象属性,2) 编写程序代码。 编写列表框List1的Click事件代码:Priv

19、ate Sub List1_Click() Text1.Text = List1.TextEnd Sub 编写文本框Text1的Change事件代码:Private Sub Text1_Change() Label1.Caption = 您所选择的代表是:End Sub 编写命令按钮Command1的Click事件代码:Private Sub Command1_Click() Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) Label1.Caption = 您所选择的代表是: + Text1.TextEnd Sub,【例6-13】在列表

20、框之间移动数据,如图6-26所示。 设计步骤如下: 1) 建立应用程序用户界面与设置对象属性。 2) 编写程序代码。 编写窗体的Load事件代码:Private Sub Form_Load() List1.AddItem 青菜 List1.AddItem 罗卜 List1.AddItem 豆腐 List1.AddItem 苹果 List1.AddItem 香蕉 List1.AddItem 桔子End Sub 编写命令按钮Command1的Click事件代码:Private Sub Command1_Click() List2.AddItem List1.Text List1.RemoveIte

21、m List1.ListIndexEnd Sub,编写命令按钮Command2的Click事件代码:Private Sub Command2_Click() List1.AddItem List2.Text List2.RemoveItem List2.ListIndexEnd Sub【例6-14】修改例6-13,允许从一个列表框中将选中的多项选项移至另一个列表框,如图6-27所示。2) 修改程序代码。 命令按钮Command1的Click事件代码:Private Sub Command1_Click() i = 0 Do While i List1.ListCount - 1 If List

22、1.Selected(i) = True Then List2.AddItem List1.List(i) List1.RemoveItem i Else i = i + 1 End If LoopEnd Sub,命令按钮Command2的Click事件代码:Private Sub Command2_Click() i = 0 Do While i List2.ListCount - 1 If List2.Selected(i) = True Then List1.AddItem List2.List(i) List2.RemoveItem i Else i = i + 1 End If Lo

23、opEnd Sub 6.1.4 组合框控件 1. 下拉组合框 2. 简单组合框,3. 下拉列表框4. 组合框使用示例【例6-15】利用组合框设计“自动抽奖机”。 设计步骤如下: (1) 建立应用程序用户界面与设置对象属性。 (2) 编写事件代码。 编写组合框Combo1的KeyPress(按键)事件代码:Private Sub Combo1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then 按Enter键 Combo1.AddItem Combo1.Text, 0 接受输入的号码 Combo1.SelStart = 0 设置组合框的起始位置

24、 Combo1.SelLength = Len(Combo1.Text) 设置选择组合框的长度 End If If KeyAscii = 27 Then 按Esc键 If Combo1.ListIndex -1 Then Combo1.RemoveItem Combo1.ListIndex 移去选项 End If End IfEnd Sub,编写“自动抽奖”命令按钮Command1的Click(单击)事件代码,使之可以随机地抽取奖号:Private Sub Command1_Click() Randomize n = Combo1.ListCount 求组合框中的项目数 a = Int(Rnd

25、 * n) 利用随机数函数求随机序号 Combo1.ListIndex = a Label2.Caption = 中奖的号码是: & Chr(13) & Combo1.TextEnd Sub 编写“退出”命令按钮Command2的Click(单击)事件代码:Private Sub Command2_Click() Unload MeEnd Sub,【例6-16】将例6-13中的左列表框改为组合框(下拉列表框),如图6-30所示。 习题 6 6.1 输入初始值,输出100个不能被3整除的数。 6.2 设计程序,求s = 1 + (1 + 2) + (1 + 2 + 3) + + (1 + 2 +

26、 3 + + n)的值。 6.3 设s = 112233nn,求s不大于400000时最大的n。 6.4 设有一张厚为x毫米,面积足够大的纸,将它不断地对折。试问对折多少次后,其厚度可达珠穆朗玛峰的高度(8848米)。 6.5 我国古代数学家张丘建在“算经”里提出一个世界数学史上有名的百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、母、雏各几何?请编写程序,求出结果。 6.6 打印乘法“九九表”,输出结果分别如图6-31所示。,6.7 “水仙花数”是指一个三位数,其各位数的立方和等于该数,如:153 = 13 + 53 + 33 编写程序,输出所有的“水仙花数”(

27、如图6-32所示)。 提示:此题的关键是把任意三位数的每一位数分离出来。设a,b,c分别是三位整数n的百位数、十位数、个位数,则: a = Int(n / 100) b = Int(n a * 100) / 10) c = n a * 100 b * 106.8 求从1000到1100之间的所有素数(如图6-33所示)。,6.9 利用下述公式计算圆周率的近似值:当最后一项的绝对值小于0.000001时停止计算。 6.10 在窗体上输出如图6-34所示的图形。 6.11 马克思曾经做过这样一道趣味数学题:有30个人在一家小饭馆里用餐,其中有男人、女人和小孩。每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令,一共花去50先令。问男人、女人和小孩各有几人(如图6-35所示)? 6.12 利用循环在窗体中显示不同字型大小。显示窗体如图6-36所示。,6.13 用1、2、3、4这4个数字可以组成一个4位数。编写程序,打印出所有可能的4位数(4个数字可以相同),并统计出所组成的4位数的个数。 6.14 用“筛法”找1100之间的全部素数,如图6-37所示。 6.15 利用列表框,编写能对本学期选修课程进行课程添加、修改和删除的应用程序,如图6.18所示。,

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

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。