循环结构程序设计课件

上传人:6**** 文档编号:243113585 上传时间:2024-09-16 格式:PPT 页数:34 大小:1.83MB
返回 下载 相关 举报
循环结构程序设计课件_第1页
第1页 / 共34页
循环结构程序设计课件_第2页
第2页 / 共34页
循环结构程序设计课件_第3页
第3页 / 共34页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,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 ,语句组2,Next ,循环变量,2.,For.Next,语句的执行过程,3.,For.Next,循环的循环次数,循环体不被执行:,l,当步长为正数时,初值大于终值。,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(省略),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 Mod 37 = 0 Then,a = a &,Str,(n) &,Chr,(13) &,Chr,(10) ,用,Chr,(13) &,Chr,(10),设置行断点,End If,Next,Text1.Text = a,End Sub,5. 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种形式:,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,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 j,End Sub,6.2,DoLoop,循环语句,6.2.1,前测型,DoLoop,循环语句,1.,前测型,Do,Loop,的语法格式,其语法格式为:,Do While | Until ,条件,语句组1,Exit Do ,语句组2,Loop,3.,前测型,Do,Loop,使用示例,【例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 = 1 ,累加器,s,赋初值0,计数器,n,赋初值1,Do While n 100 ,直到型循环,s = s + n,n = n + 1,Loop,Label2.Caption = s,End Sub,该事件代码还可以利用,Exit Do,来编写:,Private Sub Command1_Click(),Dim s As Integer , n As Integer,s = 0 : n = 1,Do,s = s + n,n = n + 1,If n 100 Then Exit Do ,如果,n100,,则跳出循环,Loop,Label2.Caption = s,End Sub,【,例6-5】已知,s,= 123,n,,,计算出,s,不大于5000时的最大,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.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.Text),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,Loop,End Sub,编写“清除”命令按钮,Command2,的,Click,(,单击)事件代码:,Private Sub Command2_Click(),Text1.Text = ,End Sub,6.1.2,后测型,DoLoop,循环语句,1. 后测型,Do,Loop,的语法格式,后测型,DoLoop,循环结构的语法格式为:,Do,语句组1,Exit Do ,语句组2,Loop While | Until ,条件,2. 后测型,Do,Loop,的执行过程,分为当型和直到型:,l,当型,DoWhile Loop:,当条件为真(,True),时继续执行循环体,条件为假(,False),时,终止循环。,l,直到型,DoUntil Loop:,当条件为假时继续执行循环体,直到条件为真时,终止循环。,在,DoLoop,中,可以在循环体中放置任意个,Exit Do,语句,随时跳出,DoLoop,循环,3.,后测型,Do,Loop,使用示例,【例6-8】输入有效数字的位数,利用下述公式计算圆周率,的近似值:,设计步骤如下:,1),建立应用程序用户界面与设置对象属性,如图6-17所示,2) 编写程序代码。,根据流程图,可以写出“计算”命令按钮,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.,SetFocus,End Sub,文本框,Text1,的,GotFocus,事件代码:,Private Sub Text1_,GotFocus,(),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: 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 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,属性 (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 Command1_Click(),List1.Clear ,清空列表框的内容,For n = 1 To 200,If n Mod 6 = 0 Then List1.,AddItem,n ,若,n,能被6整除,则添到列表框中,Next n,End Sub,编写“关闭”命令按钮,Command2,的,Click(,单击)事件代码:,Private Sub Command2_Click(),Unload Me,End Sub,【,例6-12】从文本框中输入或从列表框中选择姓名,并且显示结果,如图6-25所示。,设计步骤如下:,1) 建立应用程序用户界面与设置对象属性,2),编写程序代码。,编写列表框,List1,的,Click,事件代码:,Private Sub List1_Click(),Text1.Text = List1.Text,End 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.Text,End Sub,【例6-13】在列表框之间移动数据,如图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.,RemoveItem,List1.,ListIndex,End Sub,编写命令按钮,Command2,的,Click,事件代码:,Private Sub Command2_Click(),List1.,AddItem,List2.Text,List2.,RemoveItem,List2.,ListIndex,End Sub,【,例6-14】修改例6-13,允许从一个列表框中将选中的多项选项移至另一个列表框,如图6-27所示。,2),修改程序代码。,命令按钮,Command1,的,Click,事件代码:,Private Sub Command1_Click(),i = 0,Do While i List1.,ListCount,- 1,If List1.Selected(i) = True Then,List2.,AddItem,List1.List(i),List1.,RemoveItem,i,Else,i = i + 1,End If,Loop,End 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,Loop,End 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,设置组合框的起始位置,Combo1.,SelLength,= Len(Combo1.Text) ,设置选择组合框的长度,End If,If,KeyAscii,= 27 Then ,按,Esc,键,If Combo1.,ListIndex, -1 Then,Combo1.,RemoveItem,Combo1.,ListIndex,移去选项,End If,End If,End Sub,编写“自动抽奖”命令按钮,Command1,的,Click(,单击)事件代码,使之可以随机地抽取奖号:,Private Sub Command1_Click(),Randomize,n = Combo1.,ListCount,求组合框中的项目数,a =,Int,(,Rnd,* n) ,利用随机数函数求随机序号,Combo1.,ListIndex,= a,Label2.Caption = ,中奖的号码是: &,Chr,(13) & Combo1.Text,End Sub,编写“退出”命令按钮,Command2,的,Click(,单击)事件代码:,Private Sub Command2_Click(),Unload Me,End Sub,【例6-16】将例6-13中的左列表框改为组合框(下拉列表框),如图6-30所示。,习题 6,6.1,输入初始值,输出100个不能被3整除的数。,6.2 设计程序,求,s,= 1 + (1 + 2) + (1 + 2 + 3) + + (1 + 2 + 3 + +,n,),的值。,6.3 设,s,= 1,1,2,2,3,3,n,n,,,求,s,不大于400000时最大的,n,。,6.4,设有一张厚为,x,毫米,面积足够大的纸,将它不断地对折。试问对折多少次后,其厚度可达珠穆朗玛峰的高度(8848米)。,6.5 我国古代数学家张丘建在“算经”里提出一个世界数学史上有名的百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、母、雏各几何?请编写程序,求出结果。,6.6 打印乘法“九九表”,输出结果分别如图6-31所示。,6.7 “,水仙花数”是指一个三位数,其各位数的立方和等于该数,如:,153 = 1,3,+ 5,3,+ 3,3,编写程序,输出所有的“水仙花数”(如图6-32所示)。,提示:此题的关键是把任意三位数的每一位数分离出来。设,a,b,c,分别是三位整数,n,的百位数、十位数、个位数,则:,a =,Int,(n / 100),b =,Int,(n a * 100) / 10),c = n a * 100 b * 10,6.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@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!