第五章 程序设计(xunhuan)

上传人:jiups****uk12 文档编号:88681413 上传时间:2019-05-06 格式:PPT 页数:82 大小:2.18MB
返回 下载 相关 举报
第五章  程序设计(xunhuan)_第1页
第1页 / 共82页
第五章  程序设计(xunhuan)_第2页
第2页 / 共82页
第五章  程序设计(xunhuan)_第3页
第3页 / 共82页
第五章  程序设计(xunhuan)_第4页
第4页 / 共82页
第五章  程序设计(xunhuan)_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《第五章 程序设计(xunhuan)》由会员分享,可在线阅读,更多相关《第五章 程序设计(xunhuan)(82页珍藏版)》请在金锄头文库上搜索。

1、第5章 循环结构程序设计,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+1,Sum=0,i=1,sum=sum+i,循环设计三要素:,2、循环条件,3、循环体,1、初始化,(1)用“计数”,(2)用“

2、条件”,递推、迭代、穷举,对变量赋初值,例:计算1+2+3+100。,开始,i=100,输出sum的值,结 束,i=i+1,Sum=0,i=1,sum=sum+i,用计数方式设置条件,例2:我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。,利用循环实现, 算法流程图如图:,开 始,p26,输出p,y,结 束,y=y+1,p=13,y=0,p=p*1.08,开 始,p26,输出p,y,结 束,y=y+1,p=13,y=0,p=p*1.08,算法流程图:,5.2.2 循环语句,Visual Basic中实现循环结构语句有: WhileWend DoLoop ForNext

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

4、 循环体 Loop,条件,循环体,真,假,例1:计算1+2+3+100。,开始,i=100,输出sum的值,结 束,i=i+1,Sum=0,i=1,sum=sum+i,开 始,p26,输出p,y,结 束,y=y+1,p=13,y=0,p=p*1.08,例2程序实现:,4)直到型循环后测试型 语法格式: Do 循环体 Loop Until 条件,条件,循环体,真,假,例:下面程序运行结果是( ) Private Sub Form_Click() i = 4 a = 5 Do i = i + 1 a = a + 2 Loop Until i = 7 Print “i=“; i; Print “a=

5、“; a End Sub A.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 v,V不超过e2,Ve1,Vv+e3,计算e1,e2,e3,循环体,执行next后的语句,For-Next语句执行过程,真,假,引例:计算1+2+3+n。,开始,i=n,输出sum的值,结 束,i=i+1,Sum=0,输入n,i=1,Sum=sum+i,5.3 循环程序举例,例:以下程序代码所计算的数学式是 。 Private Sub Command1_Click() s =

6、1: n = 2 Do While n 1000 s = s + n n = n + 2 Loop Print “s=“; s End Sub A. s=1+2+4+6+998 B. s=1+2+4+6+1000 C. s=2+4+6+998 D. s=2+4+6+1000,例:求n!。,例:输入两个正整数,求它的最大公约数。,分析:求最大公约数可以用“辗转相除法”。如果两个正整数分别为m和n,其具体操作为: 求出m/n的余数r; 若r0,则把原来的除数n作为新的被除数m,把余数r作为新的除数n; 重复、的操作,直到r=0为止。最后的除数n便是最大公约数。,例:设计一个窗体,输入一个十进制整数

7、,将其转换成二进制数后输出。(上机操作),例:编写程序,计算123n,找出能使计算结果大于106的n的值,开 始,f106,输出i-1,结 束,i=i+1,f=1,i=1,f=f*i,算法流程图:,真,例:求素数。输入一个正整数,判断该数是否是素数。,分析:所谓的“素数”是指一个自然数除了1和该数本身,不能被任何其它整数整除。判断一个自然数n(n=3)是否为素数,只要依次用2Sqr(n)整数作为除数去除n,若n不能被其中任何一个数整除,则n为素数,否则便不是素数。,例:编写程序,实现单击窗体后,在窗体上输出的图形如图所示。,5.3 多重循环 多重循环的执行过程是:外层循环每执行一次,内层循环就

8、要从头开始执行一轮。,例:编写程序,计算级数1+1/3!+1/5!+1/(2N+1)!的值,直到最后一个级数项的值小于10-6为止。,例:编写程序,实现单击窗体后,在窗体上输出的图形如图所示。,例: 计算1!+2!+3!+n!(上机操作),例:编写程序,实现单击窗体后,在窗体上输出的图形如图所示。(上机操作),例: 计算1!+2!+3!+n!(上机操作),5.4 列表框与组合框,5.4.1 列表框,表项,1常用属性 (1)List属性: (2)ListIndex属性: (3)ListCount属性: (4)Selected属性: (5)Text属性: (6)Style属性:,2事件 列表框可接

9、收Click,DblClick等事件。 注意,在程序运行中执行语句向属性ListIndex赋值的语句,也将触发列表框的Click事件。,3方法 AddItem方法:object.AddItem item,index RemoveItem 方法:object.RemoveItem index Clear 方法:object.Clear,例: 设计一个程序,找出1001000范围内所有能同时被3和7整除的自然数,在列表框中显示出来。,例: 设计一个程序,在列表框中选择项目,然后在文本框中显示,并在列表框中删除已选择的项目,5.4.2 组合框,这三种样式和属性Style设置值为: 下拉式组合框 0

10、vbComboDropDown 简单组合框 1 vbComboSimple 下拉式列表框 2 vbComboDropDownList,例: 设计程序,把一批课程名放入组合框,再对组合框进行项目显示、添加、删除、全部删除等操作。,5.5 常用算法举例,例:计算1+(1+2)+(1+2+3)+(1+2+3+n),一、求和,例: 求下述数列前n项之和。 算法:数列的第1项为2,根据所给出的5项,可以得到求该数列各项的递推公式。设为数列的第n项,则数列的第n+1项为:,例:穷举法解不定方程。在“算经”里有一百鸡问题:鸡翁一值钱五,鸡母一值钱三,三鸡雏值钱一,百钱买百鸡。问鸡翁、鸡母、鸡雏各几何? 分析

11、:设公鸡x只,母鸡y只,小鸡z只,依题义可以列出方程组:,例:新郎和新娘 三对情侣参加婚礼,三个新郞为A、B、C,三个新娘为X、Y、Z。有人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是这样的:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人听后知道他们在开玩笑,全是假话。请编程找出谁将和谁结婚。,分析: 将A、B、C三人用1,2,3表示,将X和A结婚表示为“X=1”,将Y不与A结婚表示为“Y1”。按照题目中的叙述可以写出表达式: x1 A不与X结婚 x3 X的未婚夫不是C z3 C不与Z结婚 还隐含着X、Y、Z三个新娘不能结为配偶,则有: xy且xz且yz 穷举以上

12、所有可能的情况,代入上述表达式中进行推理运算,若假设的情况使上述表达式的结果均为真,则假设情况就是正确的结果。,Private Sub Command1_Click() Dim x As Integer, y As Integer, z As Integer For x = 1 To 3 For y = 1 To 3 For z = 1 To 3 If (x 1 And x 3 And z 3 And x y And x z And y z) Then Print “X will marry to “; Chr(Asc(“A“) + x - 1) Print “Y will marry to

13、“; Chr(Asc(“A“) + y - 1) Print “Z will marry to “; Chr(Asc(“A“) + z - 1) End If Next z, y, x End Sub,THE END,THE END,习题5 一单选题 1下列循环语句所确定的循环次数是 。 For k = 200# To 100 Step -2 * 10 n = n + 1 Next A. 6 B. 5 C. 4 D. 3,2写出下列事件过程的运行结果。 Private Sub Command1_Click() s = 0 For k = 10 To 50 Step 15 s = s + k N

14、ext Print s End Sub A. 20 B. 130 C. 75 D. 55,3. 分析下列程序,回答以下问题: 语句s=s+n被执行的次数为 。 程序的运行结果为 。 Private Sub Command1_Click() n = 1: s = 1 Do While n 6 s = s + n If n 3 Then n = n + 1 Else n = n + 2 Loop Print s End Sub A. 2 B. 3 C. 4 D. 5 A. 13 B. 12 C. 11 D. 10,4写出下列程序运行的结果。 Private Sub Command1_Click()

15、 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 c End Sub A. 7410 B. 741 C. 735 D. 41,5执行下列程序后,变量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 s End Sub A. 4 B. 7 C. 10 D. 15,6以下程序代码所计算的数学式是 。 Private Sub Command1_Click() s = 1: n = 2 Do While n 1000 s = s + n n = n + 2 Loop Print “s

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

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