欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    第5章 循环结构程序设计.docx

    • 资源ID:7757384       资源大小:116.04KB        全文页数:19页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第5章 循环结构程序设计.docx

    1、第5章 循环结构程序设计第5章 循环结构程序设计循环是指在程序设计中,从某处开始有规律地反复执行某一程序块的现象。例如:计算2n 。如果这样计算:s=1s=s*2 s=s*2s=s*2很显然,这不是解决问题的方法.在程序设计中要解决此问题,就需使用循环结构语句使用了循环结构编写程序,可以简化程序;避免重复的不必要的工作;提高编程效率。VB提供三种不同风格的循环结构,包括: 当循环(While-Wend循环) Do循环(Do-Loop循环) FOR循环(For-Next 循环)其中For循环按规定的次数执行循环体,而当循环和Do循环则是在给定的条件满足时执行循环体。1、WhileWend语句(当

    2、循环语句)1、格式:While Wend上述格式中,“条件”为一布尔表达式,用以指定循环条件。2、功能:根据条件进行判断,决定是否执行循环体。3、执行过程: 如果“条件”为True(非0),执行由“语句序列”组成的循环体,当遇到Wend语句时,控制语句返回到While语句,并对“条件”进行测试,如果仍为True,则重复上述过程。如果“条件”为False,则不再执行循环体内容,而转去执行Wend后继语句,跳出循环。执行流程如图所示。4、举例例5_1_1 计算2n程序:Dim n#, s#, k&n = InputBox(input n)s = 1k = 1While k = n s = s *

    3、2 k = k + 1WendPrint s=; s例5_1_1a 计算程序:Dim n#, s#, x&n = InputBox(input n)s = 0x = 1While x = n s = s + x x = x + 1WendPrint s=; s-例5_1_1b 计算Dim n#, s#, x&n = InputBox(input n)s = 1x = 1While x = n s = s * x x = x + 1WendPrint s=; s例5_1_2 从键盘上输入一串字符(每次输入一个字符),以“!”结束,并对输入字符中的字母个数和数字个数进行统计。分析:需要输入的字符个

    4、数没有指定,停止计数的条件是输入字符为“!”,所以用whilewend语句是合适的。程序中,变量ch接受键盘输入的字符,变量T1, T2分别用于统计字母,数字的个数。Private Sub command1_click() Dim ch$, T1%, T2% Cls T1 = 0: T2 = 0 While ch ! ch = InputBox(请输入一个字符:) If ch = a And ch = A And ch =a and Lcase(ch)= 0 And ch = 9 Then T2 = T2 + 1 End If Wend Print 字母个数:; T1 Print 数字个数:,

    5、 T2 End Sub5、说明1. WhileWend循环语句先对“条件”进行测试,然后才决定是否执行循环体。如果进入循环体之前,“条件”为False,则一次也不执行循环。因此,进入循环体之前应正确设置循环条件。2. 循环体内应该有修改循环条件的语句,使得循环能正常执行和终止。否则,会出现死循环,这是程序设计中容易出现的错误,应当尽量避免。一旦出现“死循环”现象,可按下“Ctrl+Break”键强行退出。2、DoLoop语句Do 循环有两种:1、 先判断后执行Do While|Until 条件.Loop 2、先执行后判断Do.Loop While|Until 条件一 、先判断条件形式1格式:D

    6、o While| Until Loop2 . 功能:While 当条件为 True 时循环。 Until 当条件首次为 True 时退出。3. 举例例5_2_1 用Do while Loop 改写 例5_1_1程序:n=val(inputbox(“input n”)s=1k=1Do while k=n s=s*2 k=k+1Loopprint “s=”;s可以看出,Do While Loop 和 While . Wend 语句功能相同。例5_2_3 计算S=1+2+3+ 100 改写 例5_1_1a程序:Private Sub Form_Activate()Dim s&, x&s = 0x =

    7、 1Do While x 100s = s + xx = x + 1LoopPrint s=; sEnd Sub例 5_2_2 输入一个正整数(3),判断其是否为一素数。分析:所谓素数是指除了1和该数本身外,不能被任何整数整除的数。可以依次用2X-1作除数去除X (X=3),若X不能被其中任何一个数整除,则X为素数。程序:Private Sub Command1_Click()Dim x&Clsx = InputBox(输入一个整数X,(X=3))flag = Truei = 2Do While i = x 1 理论证明判断至即可,即SQR(x) If x Mod i = 0 Then fla

    8、g = False i = i + 1LoopIf flag Then Print x & 是一个素数。Else Print x & 不是一个素数。End IfEnd Sub例5_2_4 求SIN(x)的级数展开的值。其中: x x3 x5 x7 Y=sinx= - + - + 1! 3! 5! 7! 有以下关系:Pn= Pn-1 (n=2,) P1=X 程序:Private Sub Form_Activate()Dim y#, x#, p#, n%x0 = Val(InputBox(输入角度值X)n = InputBox(输入N的值)x = x0 * 3.14159265359 / 180

    9、将角度值转换为弧度值p = xy = pi = 2Do While i = np = p * (-x * x / (2 * i - 1) * (2 * i - 2)y = y + pi = i + 1LoopPrint sin( & x0 & )= & yEnd Sub例5_2_5打印图形,如下: * * * * *程序:Private Sub Form_Activate()FontSize = 30i = 1Do While i =1 也可用语句Do Until b 1 Print Tab(20 - 2 * b); Right(A, b) 函数Left、right、mid、len把一个汉字或

    10、全角字符中非字母和数字的字符视为一个字符位, 但是函数Tab、Space仍把一个汉字作为两个字符位 b = b - 1LoopEnd Sub二、后判断条件形式1格式:Do Loop While| Until 2. 功能:至少执行一次循环。While 当条件为 True 时循环。 Until 当条件为 True 时退出。3举例例5_2_7 例5_2_3 计算S=1+2+3+ 100程序:Private Sub Form_Activate()Dim s&, x&s = 0x = 1Dos = s + xx = x + 1Loop While x = 100Print s=; sEnd Sub例5_

    11、2_8输入有效数字位数,利用下韦达公式(法国数学家1593年)计算圆周率的近似值=分析:分母通项公式为: Pn= 前n项的乘积为: Yn=2 Yn-1 /Pn ( n=2,3,. ) P1=0 , Y1=2 程序:(使用迭代法,且精确至|YnYn-1|)Private Sub Command1_Click()Dim p#, y#, s#, m%Clsm = InputBox(输入有效数字位数)p = 0: y = 2Dos = yp = Sqr(2 + p)y = 2 * y / pLoop Until Abs(y - s) 10 -mf = String(m, #)Print 有效位数到 &

    12、 m & 位的的近似值是: _ & vbCrLf & Format(y, 0. & f)End Sub例5_2_9 求两个正整数M和N的最大公约数。(龚P91例4.12)分析:采用“辗转相除法”的思想。(南宋 秦九韶)(1) 先将,中的较大数a,较小数b(2) 用大数a除以小数b,余数为R;(3) 若R=0,则b就是它们的最大公约数;若R0,则ab,bR,重复上(2)(3)过程,直至R=0(4) 最后得到的a就是最大公约数。程序:Private Sub Command1_Click()Dim a, b, r, m&, n&Clsm = InputBox(M=)n = InputBox(N=)I

    13、f m n Then t = m: m = n: n = t 该句可省略a = m: b = nDor = a Mod ba = bb = rLoop until r = 0Print m; 和; n; 的最大公约数是:; aEnd Sub3 ForNext 语句For循环也称计数循环。常用于循环次数已知的程序结构中。1、格式: For = To Step Next 2、说明: (1). For格式中有多个参量,这些参量的含义如下: 循环变量: 亦称控制变量 。它是一个数值变量,但不能是下标变量或记录元素。 初值: 循环变量的初值,它是一个数值表达式。 终值:循环变量的终值,它也是一个数值表达

    14、式。 步长: 循环变量的增量,是一个数值表达式。其值可以是正数( 递增循环)或负数(递减循环),但不能为0。如果步长为1, 则可略去不写。 循环体: 在For语句和Next语句之间的语句序列, 可以是一个或多个语句。 Next: 循环终结语句,在Next后面的循环变量与For语句中的 循环变量必须相同。 (2). For循环语句的执行过程是: 首先把初值赋给循环变量, 接着检查循环变量的值是否超过终值,如果超过就跳出循环, 执行Next后继语句; 否则执行循环体,然后把循环变量+步长的值赋给循环变量,重复上述过程。 这里所说的超过有两种含义,即大于或小于。当步长为正值时, 检查循环变量是否大于

    15、终值;当步长为负值时,判断循环变量的值是否 小于终值。3、举例例5_3_1 例5_2_3 计算S=1+2+3+ 100例5_3_2 例5_2_5打印三角形图形例5_3_3求斐波那契数列的前40项值。即:1,1,2,3,5,8,13,程序:Private Sub Form_Activate()Dim f&, f1&, f2&f1 = 1f2 = 1Print f1, f2,For i = 3 To 40 f = f1 + f2 f1 = f2 f2 = f Print f, If i Mod 5 = 0 Then PrintNext iEnd Sub例5_3_4. 梯形法求定积分 I= y y=

    16、f(x) x a b分析:求定积分从几何概念上求f(x)下的面积,将a,b均分为n等份,则有n+1个分点: a=x0x1xn=b ;每两个邻点间距:h=(b-a)/n ;每个点的函数值为: y0=f(a) y1=f(a+h) yn-1=f(a+(n-1)h) yn=f(b)把每个小分段都看成小梯形,分别算出它们的面积,然后相加,就近似求得积分I。即: 试编写求半径为1的园面积。I= 4 dX的程序。程序:Private Sub Form_Activate()Dim n&, a%, b%, k&, i#, h!n = Val(InputBox(n=)b = 1a = 0h = (b - a) /

    17、 ni = (Sqr(1 - a * a) + Sqr(1 - b * b) / 2For k = 1 To n - 1 x = a + k * h i = i + Sqr(1 - x * x)Next ki = 4 * i * hPrint i=; iEnd Sub4、多重循环与循环的退出一、 多重循环在一个循环体中嵌套另一个循环结构,称为多重循环。VB没有具体规定嵌套层数。但是要注意嵌套时,不能交叉嵌套。举例例5_4 计算S= 程序:Private Sub Command1_Click()Dim n#, m#, i#, j#, s#n = InputBox(n=)m = InputBox(

    18、m=)s = 0For i = 1 To n For j = 1 To m s = s + i * jNext j, iPrint sEnd Sub例5_4_1 “水仙花数 ”是指一个3位数,其各位数的立方和等于该数。例如:153=13+53+33 ,求100到999之间的所有水仙花数。程序:Private Sub Form_Activate()For i = 1 To 9 For j = 0 To 9 For k = 0 To 9 p1 = i * 100 + j * 10 + k p2 = i 3 + j 3 + k 3 If p1 = p2 Then Print i; j; k Next

    19、 k Next jNext iEnd Sub例5_4_2 编写输出九九乘法口诀表程序。(龚P92例4.13)程序:Private Sub Form_Activate()ClsFor x = 1 To 9 Print Tab(x - 1) * 10 + 2); For y = x To 9 n = x & * & y & = & x * y Print Format(n, !); Next y PrintNext xEnd Sub例5_4_3(例5_3_2 例5_2_5打印三角形图形) 例5_4_6(龚P98例4.16)百元买百鸡问题。假定公鸡每只2元,母鸡每只3元,小鸡每只5角。现有一百元钱买

    20、一百只鸡,编程列出所有方案。分析:设母鸡、公鸡、小鸡各为X、Y、Z。根据题意,有:X+Y+Z=1003*X+2*Y+Z/2=100X=33Y=50程序:(枚举法)Private Sub Form_Activate()Dim x&, y&, z&Print 母鸡, 公鸡, 小鸡For x = 0 To 33 For y = 0 To 50 z = 100 - x - y If 3 * x + 2 * y + z / 2 = 100 Then Print x, y, z End If Next yNext xEnd Sub二、 循环的退出除了当条件满足时退出循环外,VB还提供了 “Exit Do”

    21、和“Exit For” 两个语句,可以根据需要,在循环体中退出循环。1、 格式: Exit do Exit For2、 举例例5_4_4 显示3100之间的所有素数。(素数:只能被1或其本身整除的自然数)程序: Private Sub Form_Activate()For x = 3 To 100 Step 2 flag = True For n = 2 To Sqr(x) If x Mod n = 0 Then flag = False: Exit For Next n If flag Then Print xNext xEnd Sub例5_4_5 判断回文数(例如:,等)Private S

    22、ub Command1_Click()Dim a$, w%, flag%flag = Truea = Text1w = Len(a)For i = 1 To w 2 If Mid(a, i, 1) Mid(a, w - i + 1, 1) Then flag = False Exit For End IfNext iIf flag Then Text2 = a & 是回文数Else Text2 = a & 不是回文数End IfEnd SubPrivate Sub Command2_Click()EndEnd Sub各种循环语句的比较语句形式特点循环条件终止条件循环次数WhileWend先判断TrueFalse0Do Whileloop先判断TrueFalse0Do UntilLoop先判断FalseTrue0DoLoop While后判断TrueFalse1Doloop Until后判断FalseTrue1ForNext先判断循环变量递增:终值递减:终值循环变量终值终值


    注意事项

    本文(第5章 循环结构程序设计.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开