欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    第六章vb控制结构.ppt

    • 资源ID:2261558       资源大小:710.01KB        全文页数:45页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    第六章vb控制结构.ppt

    第六章 Visual Basic 控制结构,刘杉,内容提要,选择控制结构 多分支控制结构 For循环控制结构 当循环控制结构 Do循环控制结构 多重循环,选择控制结构,单行结构条件语句 格式 If 条件 then 语句 else 语句,4.2.1 单分支IfThen语句 If Then 语句块 End If 或 If Then ,例:已知两个数x和y,比较它们的大小, 使得x大于y. If xy Then t=x : x=y: y=t End If 或 If xy Then t=x: x=y: y=t,选择控制结构,双分支结构IfThenElse语句 If Then Else End If If Then Else ,双分支选择结构执行过程,IF条件语句,例如:输出x,y两个中值较大的一个值。 IF XY Then Print X Else Print Y End If 也可以写成如下的单行形式: IF XY Then Print X Else Print Y,IF条件语句,IIf函数可用来执行简单的条件判断操作,它相当于IFThen.Else结构。IIF函数的使用格式: IIF(,) 说明: (1)与IF语句中的表达式相同,通常是关系表达式、逻辑表达式,也可为算术表达式。如果是算术表达式,其值按非0为True,0为False进行判断。 (2)当为真时,函数返回的值,当为假时,函数返回的值。 (3)、可以是任何表达式。,IIF函数,多分支结构IfThenElseIf语句 形式: If Then ElseIf Then Else 语句块 n+1 End If,执行过程,使用IF语句实现的程序段如下: If x=90 then Print “优秀“ ElseIf x=80 Then Print “良好“ ElseIf x=70 Then Print “中等“ ElseIf x=60 Then Print “及格“ Else Print “不及格“ End If,例4-2:输入一学生成绩,评定其等级。方法是:90100分为“优秀”,8089分为“良好”,7079分为“中等”,6069分为“及格”,60分以为“不合格”,Select Case语句(情况语句) 形式: Select Case 变量或表达式 Case 表达式列表1 语句块1 Case 表达式列表2 语句块2 Case Else 语句块n+1 End Select,数值型或字符串表达式,多分支选择语句Select语句,说明: :与同类型的下面四种形式之一: 表达式 A +5 一组枚举表达式(用逗号分隔) 2, 4, 6, 8 表达式1 To 表达式2 60 to 100 Is 关系运算符表达式 Is 60,例如:将例4-2 使用select case语句来实现的程序段如下: Select Case x Case 90 to 100 Print “优秀“ Case 80 to 89 Print “良好“ Case 70 to 79 Print “中等“ Case 60 to 69 Print “及格“ Case Else Print “不及格“ End Select,选择结构的嵌套 下面是两种正确的嵌套形式: (1) IF Then IF Then Else End If . Else . IF Then Else End If End IF,(2) IF Then Select Case Case IF Then Else End If Case. End Select . End IF,注意:只要在一个分支内嵌套,不出现交叉,满足结构规则,其嵌套的形式将有很多种,嵌套层次也可以任意多。对于多层IF嵌套结构中,要特别注意IF与Else的配对关系,一个Else必须与IF配结,配对的原则是:在写含有多层嵌套的程序时,建议使用缩进对齐方式,这样容易阅读和维护。,For循环语句 (一般用于循环次数已知) 形式: For 循环变量初值 to 终值 Step 步长 语句块 Exit For 语句块 Next 循环变量,For.Next循环结构,循环次数,例: For I=2 To 13 Step 3 Print I , Next I Print “I=“, I,循环执行次数 输出I的值分别为: 2 5 8 11 出了循环输出为: I=14,例5-1 编程计算:S=1+2+3+100,Dim S%, I% S=0 ' 累加前变量S为0 For I=1 to 100 S=S+I Next I Print “ S=“,S,例5-2的算法流程图,WhileWend语句 使用格式如下: While Wend 说明:该语句的功能与Do While .Loop实现的循环完全相同。,当循环控制结构,形式1:(当型循环) Do While|Until 语句块 Exit Do 语句块 Loop,DoLoop循环语句使用形式,Do循环控制结构,形式2:(直到循环) Do 语句块 Exit Do 语句块 Loop While|Until ,Do UntilLoop执行过程 DoLoop Until执行过程,说明: (1)当使用While构成循环时,当条件为“真”,则反复执行循环体,当条件为“假”,则退出循环。 (2)当使用Until 构成循环时,当条件为“假”,则反复执行循环体,直到条件成立,即为“真”时,则退出循环。,(3)在循环体内一般应有一个专门用来改变条件表达式中变量的语句,以使随着循环的执行,条件趋于不成立(或成立),最后达到退出循环。 (4)语句Exit Do的作用是退出它所在的循环结构,它只能用在DO/Loop结构中,并且常常是同选择结构一起出现在循环结构中,用来实现当满足某一条件时提前退出循环。,例5-3 将一个十进制数转换成二进制。,算法流程图,分析: 将一个十进制数转换成二进制采用连除2取余数的方法,即将十进制数除以2取余数,直到商为0,然后所得的余数即为二进制数各位的数码,从右到左排列,第一次除2的余数在最左边。算法设计如下:用变量Dec表示十进制数,Bin表示转换所得的二进制数字符串。 (1) 输入十进制Dec (2) Dec除以2得余数Res,商又赋值给Dec;让Bin = Res & Bin (3) 若Dec=0,则算法结束;否则执行(2) 算法的N-S流程图如图5-7所示。,将一个十进制数转换成二进制的程序如下:,Private Sub Form_Click() Dim Dec As Integer '表示十进制数 Dim Bin As String '转换为二进制表示 Dim Res As Integer Dec = Val(InputBox(“输入一个十进制数Dec=?“) Print “十进制数:“; Dec Do Res = Dec Mod 2 '求出除以2的余数 Bin = Res Bin End Sub,For Each Next语句 For Each Next语句语法格式如下: For Each In 语句块 Exit For 语句块 Next,For Each.Next 循环与 For.Next 循环类似,但它对数组或对象集合中的每一个元素重复执行一组语句,而不是重复语句一定的次数。如果不知道一个集合有多少元素, For Each.Next 循环非常有用。,例5-4 系统对象Controls是包含了窗体中所有控件的集合对象。使用For Each.Next来输出窗体上所有控件的名称和在窗体中的位置(Top及Left属性)。 Dim x As Control 定义X为Controls对象集合 Private Sub Form_Click() For Each x In Form1.Controls Print x.Name,x.Left,x.Top Next x End Sub,例5-5 使用For Each.Next对数组元素进入操作。下面是一个给数组输入和输出数组元素的程序。 Private Sub Command1_Click() Dim a(10) As Integer Dim fn For Each fn In a fn = Val(InputBox(“请输入a(“ & fn & “)=“) Print fn Next fn End Sub,循环的嵌套多重循环结构 如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。 上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:,多重循环,(1)For I=. For J=. . Next J Next I,(2)For I=. Do While/Until . . Loop Next I,(3)Do While. For J=. . Next J Loop,(4)Do While/Until. Do While/Until . . Loop Loop,例如:打印九九乘法表. For i = 1 To 9 For j = 1 To 9 se = i Next j Picture1.Print Next i,对于循环的嵌套,要注意以下事项: (1) 内循环变量与外循环变量不能同名; (2) 外循环必须完全包含内循环,不能交叉; (3) 不能从循环体外转向循环体内,也不能从外循环转向内循环. 下面是正确的嵌套,For i =1 To 10 For j=1 To 20 Next i Next j,For i =1 To 10 For i=1 To 20 Next i Next i,下面是不正确的嵌套,对于循环的嵌套,要注意以下事项: (1) 内循环变量与外循环变量不能同名; (2) 外循环必须完全包含内循环,不能交叉; (3) 不能从循环体外转向循环体内,也不能从外循环转向内循环.,例5-6,编一程序,显示出所有的水仙花数。所谓水仙花数,是指一个三位数,其各位数字立方和等于该数字本身。例如,153是水仙花数,因为:,循环结构与选择结构的嵌套,在循环结构中可以完整嵌套选择结构即整个选择结构都属于循环体。在选择结构中嵌套循环结构时,则要求整个循环结构必须完整地嵌套在一个分支内,一个循环结构不允许出现在两个或两个以上的分支内。,(1)For I= IF Then End IF Next I,(6) IF Then For I= End IF Next I,(5)Select Case For I= Case Case Next I End Select,(3)For I= IF Then Next I End IF,(2)IF Then For I= Next I End IF,(4)For I= Select Case Case Case End Select Next I,×,×,×,应用举例,累计求和、求乘积、计数等问题,例5-7 编程序计算:,此类问题都要使用循环,根据问题的要求,确定循环变量的初值、终值或结束条件及用来表示计数、和、阶乘的变量的初值。,应用举例,素数与哥德巴赫猜想,判断一个给定的整数是否为素数。,算法思路:素数指除了能被1和自身外,不能被其他整数整除的自然数。判断整数N是不是素数的基本方法是:将N分别除以2,3,N-1,若都不能整除,则N为素数。因为N=Sqr(N)*Sqr(N),所以,当N能被大于等于Sqr(N)的整数整除时,一定存在一个小于等于Sqr(N)的整数,使N能被它整除,因此只要判断N能否被2,3,Sqr(N)整除即可。 算法流程图如下:,Dim N %, I%, K% N = Val(InputBox(“N=?“) K= Int(Sqr(N) For I = 2 To K If N Mod I = 0 Then Exit For Next I If IK Then Print N; “ 是素数“ Else Print N; “ 不是素数“ End If,算法流程图,程序代码:,应用举例,例5-10 编一程序验证哥德巴赫猜想:一个大于等于6的偶数可以表示为两个素数之和。例如: 6=3+3 8=3+5 10= 3+7,算法设计:设N为大于等于6的任一偶数,将其分解为N1和N2两个数,使用N1+N2=N,分别判断N1和N2是否为素数,若都是,则为一组解。若N1不是素数,就不必再检查N2是否素数。先从N1=3开始,直到N1=N/2为止。算法流程图如图4-29所示。将程序代码写到窗体的单击事件中。,实现上面算法的程序代码如下:,应用举例,Private Sub Form_Click() Dim N%, N1%, N2%, I%, K1%, K2% N=Val(InputBox(“输入大于6的偶数“) For N1 = 3 To N 2 Step 2 K1 = Int(Sqr(N1) For I = 2 To K1 '判断N1是否是素数 If N1 Mod I = 0 Then Exit For Next I If I K1 Then '如果N1为素数,将N分解为N1+N2 N2 = N - N1 K2 = Int(Sqr(N2) For I = 2 To K2 '判断N2是否是素数 If N2 Mod I = 0 Then Exit For Next I If I K2 Then '如果N2也为素数,则打印输出 Print N & “=“ & N1 & “+“ & N2 End If End If Next N1 End Sub,应用举例,打印有规律图案 例5-11 打印由数字组成的如下所示金字塔图案。,应用举例,9 888 77777 6666666 555555555 44444444444 3333333333333 222222222222222 11111111111111111,穷举法,穷举法(又称“枚举法”)的基本思想是:一一列举各种可能的情况,并判断哪一种可能是符合要求的解,这是一种“在没有其它办法的情况的方法”,是一种最“笨”的方法,然而对一些无法用解析法求解的问题往往能奏效,常常采用循环来处理穷举问题。 例5-12 将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合?,应用举例,字符串处理,例5-13 统计一个文本框中英文单词的个数。设单词由“空格”、“逗号”、“分号”或“感叹号”作分隔符,回车符,换行符也是单词分隔符。,应用举例,例5-14 字符的加密和解密 加密算法是: 将每个字母C加(或减)一序数K,即用它后的第K个字母代替,变换式公式: c=chr(Asc(c)+k) 例如:设序数k为5,这时 “A“ “F“, “a“ “f“,“B“ “G“ 当加序数后的字母超过“Z“或“z“则 c=Chr(Asc(c)+k -26) 例如:You are good Dtz fwj ltti 解密算法:解密为加密的逆过程 将每个字母C减(或加)一序数K,即 c=chr(Asc(c)-k), 例如:序数k为5,这时 “Z“U“, “z“u“,“Y“T“ 当加序数后的字母小于“A“或“a“则 c=Chr(Asc(c)-k +26),应用举例,几种循环语句比较,本章小结,

    注意事项

    本文(第六章vb控制结构.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

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




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开