第5章 循环结构程序设计_第1页
第5章 循环结构程序设计_第2页
第5章 循环结构程序设计_第3页
第5章 循环结构程序设计_第4页
第5章 循环结构程序设计_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.1 循环概念5.2 循环结构及循环程序语句5.3 循环程序设计举例5.4 列表框与组合框5.1 循环概念循环概念 在实际的数据处理中,常需要进行一些大量重复的运算和操作,如计算:1+2+3+100 或 1!+2!+3!+10! 使用循环可以避免代码的重复编写,简使用循环可以避免代码的重复编写,简化程序,节约内存,提高程序运行效率。化程序,节约内存,提高程序运行效率。5.2 循环结构及程序循环结构及程序5.2.1 设计循环结构的基本原理例:计算1+2+3+100。开始i=100输出sum的值结 束真假i=i+1Sum=0i=1sum=sum+i循环设计三要素:循环设计三要素:2、循环条件、循

2、环条件3、循环体、循环体1、初始化、初始化(1)用)用“计数计数”(2)用)用“条件条件”递推、迭代、穷举递推、迭代、穷举对变量赋初值对变量赋初值开始i=n输出sum的值结 束真假i=i+1Sum=0输入ni=1sum=sum+i例:计算1+2+3+100。开始i=100输出sum的值结 束真假i=i+1Sum=0i=1sum=sum+i用用计数方式计数方式设置条件设置条件例例2:我国有:我国有13亿人口亿人口,按人口年增长按人口年增长0.8%计算计算,多少年后我国人口超过多少年后我国人口超过26亿。亿。 分析:解此问题两种方法,可根据公式:分析:解此问题两种方法,可根据公式:直接利用标准函数

3、对数可求得,但求得的年直接利用标准函数对数可求得,但求得的年数不为整数;数不为整数;利用循环实现,利用循环实现,算法流程图如图:算法流程图如图:开开 始始p26输出输出p,y 结结 束束真假y=y+1p=13y=0p=p*1.08开开 始始p26输出输出p,y 结结 束束真假y=y+1p=13y=0p=p*1.08算法流程图:5.2.2 循环语句 Visual Basic中实现循环结构语句有:中实现循环结构语句有: WhileWend DoLoop ForNext For EachNext(1) WhileWend循环语句循环语句 其语法格式为: While 条件条件 循环体循环体 Wend条

4、件循环体真假执行后续语句例:计算1+2+3+100。开始i=100输出sum的值结 束真假i=i+1Sum=0i=1sum=sum+i(2) DoLoop循环语句循环语句1)当型前测试型当型前测试型2)当型后测试型当型后测试型Do While 条件条件 循环体循环体LoopDo 循环体循环体Loop While 条件条件3)直到型前测试直到型前测试4)直到型后测试直到型后测试Do Until 条件条件 循环体循环体LoopDo 循环体循环体Loop Until 条件条件1)当型循环前测试型)当型循环前测试型 语法格式:语法格式: Do While 条件条件 循环体循环体 Loop 条件循环体真

5、假例1:计算1+2+3+100。开始i=100输出sum的值结 束真假i=i+1Sum=0i=1sum=sum+i开开 始始p= 7 Print i=; i; Print a=; aEnd SubA.i=4 a=5 B. i=7 a=13 C. i=8 a=7 D. i=7 a=11 (3) ForNext循环语句循环语句格式:格式: For V=e1 To e2 Step e3 循环体循环体 Next vV 不 超 过不 超 过e2Ve1Vv+e3计算计算e1,e2,e3循环体循环体执行执行next后的语句后的语句For-Next语句执行过程语句执行过程真真假假引例:计算1+2+3+n。开始

6、i=n输出sum的值结 束真假i=i+1Sum=0输入ni=1Sum=sum+i5.3 循环程序举例循环程序举例例:以下程序代码所计算的数学式是例:以下程序代码所计算的数学式是 。Private Sub Command1_Click() s = 1: n = 2 Do While n 1000 s = s + n n = n + 2 Loop Print s=; sEnd SubA. s=1+2+4+6+998 B. s=1+2+4+6+1000C. s=2+4+6+998 D. s=2+4+6+1000例:求n!。fact=1:i=1开始i106 输出输出i-1 结结 束束假i=i+1f=1

7、i=1f=f*i算法流程图:真例:求素数。输入一个正整数,判断该数是否例:求素数。输入一个正整数,判断该数是否是素数。是素数。 分析:所谓的“素数”是指一个自然数除了1和该数本身,不能被任何其它整数整除。判断一个自然数n(n=3)是否为素数,只要依次用2Sqr(n)整数作为除数去除n,若n不能被其中任何一个数整除,则n为素数,否则便不是素数。n不是素数输入n开始i=sqr(n)n是素数结 束真假i=i+1n mod i0i=2假isqr(n)真真假例:编写程序,实现单击窗体后,在窗体上输例:编写程序,实现单击窗体后,在窗体上输出的图形如图所示。出的图形如图所示。5.3 多重循环多重循环 多重循

8、环的执行过程是:外层循环每执行一次,内层循环就要从头开始执行一轮。例:编写程序,计算级数例:编写程序,计算级数1+1/3!+1/5!+1/(2N+1)!的值的值,直到最后一个直到最后一个级数项的值小于级数项的值小于10-6为止。为止。例:编写程序,实现单击窗体后,在窗体上输例:编写程序,实现单击窗体后,在窗体上输出的图形如图所示。出的图形如图所示。例: 计算1!+2!+3!+n!(上机操作)例:编写程序,实现单击窗体后,在窗体上输出的图形如图所示。(上机操作)例: 计算1!+2!+3!+n!(上机操作) 例: 求下述数列前n项之和。 算法:数列的第1项为2,根据所给出的5项,可以得到求该数列各

9、项的递推公式。设为数列的第n项,则数列的第n+1项为:,813,58,35,23,12nnxx111例例:穷举法解不定方程。在穷举法解不定方程。在“算经算经”里有一百里有一百鸡问题:鸡翁一值钱五,鸡母一值钱三,三鸡鸡问题:鸡翁一值钱五,鸡母一值钱三,三鸡雏值钱一,百钱买百鸡。问鸡翁、鸡母、鸡雏雏值钱一,百钱买百鸡。问鸡翁、鸡母、鸡雏各几何?各几何? 分析:设公鸡x只,母鸡y只,小鸡z只,依题义可以列出方程组: 100335100zyxzyx5.4 列表框与组合框列表框与组合框5.4.1 列表框列表框1常用属性 (1)List属性: (2)ListIndex属性: (3)ListCount属性:

10、 (4)Selected属性: (5)Text属性: (6)Style属性:2事件 列表框可接收等事件。 注意,在程序运行中执行语句向属性ListIndex赋值的语句,也将触发列表框的Click事件。3方法 AddItem方法:object.AddItem item,index RemoveItem 方法:object.RemoveItem index Clear 方法:object.Clear例: 设计一个程序,找出1001000范围内所有能同时被3和7整除的自然数,在列表框中显示出来。例例5-14 选择和移动数据,用户界面如图5-29所示。窗体上有2个标签、2个列表框和2个命令按钮。左边列

11、表框(List1)列出10-99之间的整数,右边列表框(List2)列出被选中的数。程序运行时,按“选项右移”或“选项左移”可将已选择项移动到右边或左边列表框。 5.4.2 组合框组合框 这三种样式和属性Style设置值为: 下拉式组合框 0 vbComboDropDown 简单组合框 1 vbComboSimple 下拉式列表框 2 vbComboDropDownList例: 设计程序,把一批课程名放入组合框,再对组合框进行项目显示、添加、删除、全部删除等操作。习题习题5一单选题一单选题1下列循环语句所确定的循环次数是下列循环语句所确定的循环次数是 。For k = 200# To 100

12、Step -2 * 10 n = n + 1Next A. 6 B. 5 C. 4 D. 32写出下列事件过程的运行结果。写出下列事件过程的运行结果。Private Sub Command1_Click() s = 0 For k = 10 To 50 Step 15 s = s + k Next Print sEnd Sub A. 20 B. 130 C. 75 D. 553. 分析下列程序,回答以下问题:分析下列程序,回答以下问题:语句语句s=s+n被执行的次数为被执行的次数为 。程序的运行结果为程序的运行结果为 。Private Sub Command1_Click() n = 1: s

13、 = 1 Do While n 6 s = s + n If n 3 Then n = n + 1 Else n = n + 2 Loop Print sEnd Sub A. 2 B. 3 C. 4 D. 5 A. 13 B. 12 C. 11 D. 104写出下列程序运行的结果。写出下列程序运行的结果。Private Sub Command1_Click() s = 0123456789: c = For k = 2 To Len(s) Step 3 a = Left(s, k) b = Right(a, k) c = Mid(b, k, 1) + c Next Print cEnd Sub

14、 A. 7410 B. 741 C. 735 D. 415执行下列程序后,变量执行下列程序后,变量s的值是的值是 。Private Sub Command1_Click() s = 0 For m = 1 To 3 n = 1 Do While n = m s = s + n n = n + 1 Loop Next Print sEnd SubA. 4 B. 7 C. 10 D. 156以下程序代码所计算的数学式是以下程序代码所计算的数学式是 。Private Sub Command1_Click() s = 1: n = 2 Do While n 1000 s = s + n n = n +

15、 2 Loop Print s=; sEnd SubA. s=1+2+4+6+998B. s=1+2+4+6+1000C. s=2+4+6+998D. s=2+4+6+10007. 数列数列0,1,1,2,3,5,8,称为波契纳数列,它的前两称为波契纳数列,它的前两个数是个数是0和和1,以后每一个数都是前两个数之各和。输出这个数,以后每一个数都是前两个数之各和。输出这个数列的前列的前20个数。将下列程序代码补充完整。个数。将下列程序代码补充完整。Private Sub Command1_Click() a = 0: b = 1 Print a; b; For k = 3 To 20 Print

16、 c; NextEnd Sub A. c=a B. c=a+b C. c=b D. a=c+b A. b=a B. a=c C. a=b D. c=b A. b=a B. b=c C. a=b D. c=a 8将数据项将数据项“计算机计算机”添加到列表框添加到列表框List1中中作为第作为第8项的内容,应使用项的内容,应使用 。 A. List1.AddItem “计算机计算机”,8 B. List1.AddItem “计算机计算机”,7 C. List1.AddItem 8,“计算机计算机” D. List1.AddItem 7,“计算机计算机”9. 读取列表框中的第读取列表框中的第3个表项

17、值,把值赋个表项值,把值赋给变量给变量x,不可以采用,不可以采用 。 A. x=List1.List(2) B. x=List1.Text(2) C. List1.Selected(2)=True D. x=List1.Text10在组合框在组合框Combo1中选定某一表项后,单击命令中选定某一表项后,单击命令按钮按钮(名称为名称为Command1)即可删除该表项,即可删除该表项,Command1的单击事件过程是:的单击事件过程是:Private Sub Command1_Click() If Combo1.ListIndex -1 Then Combo1.RemoveItem End IfE

18、nd Sub A. Combl1.ListCount B. Combo1.ListIndex C. Combo1.Text D. Combo1.MultiSelect二填空题二填空题1设设n和和s均为整型变量,分别具有初值均为整型变量,分别具有初值1和和10。试指出下列。试指出下列循环语句的循环体各执行多少次,以及结束循环后循环语句的循环体各执行多少次,以及结束循环后n值各为多值各为多少?少?n = 1: s = 10n = 1: s = 10 Do While n 40 n = n + 3n = n * 2 LoopLoopn = 1: s = 10n = 1: s = 10 DoDo n

19、= n * 3n = s n Loop Until n sn = n + 2Loop While n sn = 1: s = 10 While n = m Then Print 2的的; n; 次方次方; m Exit Do End If LoopEnd Sub4如果只允许在列表框中每次只能选择一个如果只允许在列表框中每次只能选择一个列表项,则必须将其列表项,则必须将其MultiSelect属性设置属性设置为为 。5用户可以通过用户可以通过 属性来输入或取得属性来输入或取得组合框中的数据。组合框中的数据。6在在3种组合框中,仅供选择其中表项数据,种组合框中,仅供选择其中表项数据,但不允许添加数

20、据的组合框是但不允许添加数据的组合框是 。7在下拉组合框中添加表项,可以使用在下拉组合框中添加表项,可以使用 方法;为组合框删除表项,可以使用方法;为组合框删除表项,可以使用 方法。方法。8在窗体上已经建立了一个列表框在窗体上已经建立了一个列表框List1和一个标签和一个标签Label1,然后编写如下,然后编写如下3个事件过程:个事件过程:Private Sub Form_Load() List1.AddItem ItemA List1.AddItem ItemB List1.RemoveItem 1 List1.AddItem ItemC List1.AddItem ItemD, 1 Lis

21、t1.RemoveItem 2End SubPrivate Sub Form_Click() Label1.Caption = List1.List(List1.ListCount - 1)End SubPrivate Sub List1_DblClick() Label1.Caption = List1.TextEnd Sub运行程序后,开始时在列表框中显示的表项内容是运行程序后,开始时在列表框中显示的表项内容是 及及 。单击窗体,则在标签中显示。单击窗体,则在标签中显示 。当双。当双击列框中的列表项击列框中的列表项“ItemA”时,则在标签中显时,则在标签中显示示 。9从字符串中查找子字符

22、串从字符串中查找子字符串“123”,将该子字符串删除,但,将该子字符串删除,但“1234”子字符串保留,如将子字符串保留,如将“AB123C1234DE123F”处理成处理成“ABC1234EF”。完成下列程序代码。完成下列程序代码。Private Sub Form_Load() x = InputBox(输入字符串输入字符串) p = InStr(x, 123) Do While p 0 If Mid(x, p + 3, 1) 4 Then x = Left(x, p - 1) + Else p = p + End If p = InStr( , x, 123) Loop MsgBox (处

23、理结果:处理结果: + x) Unload MeEnd Sub上机编程练习上机编程练习51求级数求级数S=1/(1+4)+1/(1+24)+1/(1+34)+1/(1+n4)+的前的前100项之和。项之和。 2如果一个三位整数等于它的各位数的如果一个三位整数等于它的各位数的立方和,则此数称为立方和,则此数称为“水仙花数水仙花数”,如,如153=13+53+33。编写程序求所有的水仙。编写程序求所有的水仙花数。花数。3指定一个初始值,从该数值开始,找指定一个初始值,从该数值开始,找出出100个不能被个不能被7整除的自然数。要求通整除的自然数。要求通过文本框来接收初始值,找出的自然数显过文本框来接收初始值,找出的自然数显示在列表框中。示在列表框中。 4凡是满足凡是满足x2+y2=z2的正整数组的正整数组(x,y,z)就称为勾股数组成就称为勾股数组成(如如3,4,5)。请找出任意。请找出任意一个正整数一个正整数n(通过通过InputBox函数输入函数输入)以以内的所有勾股数组,把这些数组直接显示内的所有勾股数组,把这些数组直接显示在窗体上。在窗体上。5设计程序,在窗体上建立一个列表框设计程序,在窗体上建立一个列表框List1和一个和一个“显示显示”命令按钮命令按钮Command1。列表。列表框高框高(Height)为为177

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论