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

    第3章控制结构.ppt

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

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

    第3章控制结构.ppt

    台州学院计算机系,1,第3章 控制结构,台州学院计算机系,2,本章内容,3.1 程序结构与流程图 3.2 选择控制结构 3.2.1 单行结构条件语句 3.2.2 多行结构条件语句 3.2.3 多分支选择控制结构 3.3 循环控制结构 3.3.1 ForNext循环 3.3.2 WhileWend循环 3.3.3 DoLoop循环 3.3.4 多重循环,台州学院计算机系,3,3.1 程序结构与流程图,台州学院计算机系,4,3.1 程序结构与流程图,三种基本结构的共同特点: 只有一个入口,一个出口。 无死语句,所谓“死语句”是指始终不执行的语句。 无死循环,即循环次数是有限的。 顺序结构是程序中最简单、最基本的结构。在顺序结构中,程序的执行过程是从上往下一行一行地执行。执行的顺序与程序中语句的排列顺序相同。,台州学院计算机系,5,3.2 程序结构与流程图,3.2.1 单行结构条件语句 3.2.2 多行结构条件语句 3.2.3 多分支选择控制结构,台州学院计算机系,6,3.2.1 单行结构条件语句,单行If语句的格式如下: If Then Else 该语句的功能是:当条件成立时执行语句块1,否则执行语句块2;Else和语句块2可以缺省。 说明: (1)单行If 语句必须在同一行内写完。 (2)“条件”可以是关系表达式或布尔表达式,还可以是任何计算数值的表达式,Visual Basic会将其结果转换成True或False。如果该值是0,则被视为False,所有非0值被视为True。 (3)“语句块”可以是一条语句,也可以是多条语句;如果是多条语句,那么语句与语句之间用冒号分割。,台州学院计算机系,7,3.2.1 单行结构条件语句,【例3-1】编程,在文本框中输入你的身高,如果小于165,那么显示“你的身高不够”。,台州学院计算机系,8,3.2.1 单行结构条件语句,【例3-1】编程,在文本框中输入你的身高,如果小于165,那么显示“你的身高不够”。 在窗体上建立文本框控件Text1和命令按钮Command1。编制事件过程 Command1_Click 如下: Private Sub Command1_Click() If Text1.Text 165 Then Print “你的身高不够“ End Sub,台州学院计算机系,9,3.2.1 单行结构条件语句,【例3-2】输入x,计算y的值,其中:,台州学院计算机系,10,3.2.1 单行结构条件语句,分析:该题是数学中的一个分段函数,它表示当时,用公式来计算y的值;当x 0时,用公式 y = 1 - 3 x 来计算y的值。在选择条件时,我们即可以选择作为条件,也可以选择 x 0作为条件。在这里,我们选作为选择条件。这时,当为真时,执行;为假时,执行y = 1 - 3 x。,台州学院计算机系,11,3.2.1 单行结构条件语句,写出按钮Command1的单击Click事件代码为: Private Sub Command1_Click() Dim x As Single, y As Single x = Text1.Text If x = 2 Then y = x * x + 3 * x Else y = 1 - 3 * x Text2.Text = y End Sub,台州学院计算机系,12,3.2.2 多行结构条件语句,多行IF语句格式为: If Then ElseIf Then ElseIf Then Else End If 执行过程:Visual Basic首先测试条件1,如果它为False,Visual Basic就测试条件2,依次类推,直到找到一个为True的条件。当它找到一个为True的条件时,Visual Basic就会执行相应的语句块,然后执行End If后面的代码。作为选择,可以包含Else语句块,如果所有条件都为False,则执行Else语句块。,台州学院计算机系,13,3.2.2 多行结构条件语句,我们把例3-2用多行If语句完成,程序代码如下: Private Sub Command1_Click() Dim x As Single, y As Single x = Text1.Text If x = 2 Then y = x * x + 3 * x Else y = 1 - 3 * x End If Text2.Text = y End Sub,台州学院计算机系,14,3.2.2 多行结构条件语句,【例3-3】输入学生成绩(百分制),判断该成绩的等级(优、良、中、及格、不及格)。 界面设计略,程序代码如下: Private Sub Command1_Click() Dim score As Single, temp As String score = Val(Text1.Text) temp = “成绩等级为:“ If score 0 Then Label2.Caption = “成绩出错“ ElseIf score 60 Then Label2.Caption = temp + “不及格“ ElseIf score = 69 Then Label2.Caption = temp + “及格“ ElseIf score = 79 Then Label2.Caption = temp + “中“ ElseIf score = 89 Then Label2.Caption = temp + “良“ ElseIf score = 100 Then Label2.Caption = temp + “优“ Else Label2.Caption = “成绩出错“ End If End Sub,台州学院计算机系,15,3.2.2 多行结构条件语句,【例3-4】请参考图3-3,完成“健康称”程序的设计。计算公式为:标准体重=身高-105;体重高于标准体重*1.1为偏胖,提示“偏胖,注意节食”;体重低于标准体重*0.9为偏瘦,提示“偏瘦,增加营养”;其他为正常,提示“正常,继续保持”。,台州学院计算机系,16,3.2.2 多行结构条件语句,程序代码如下: Private Sub Command1_Click() Dim x As Integer, y As Integer, z As Integer x = Text1.Text y = Text2.Text z = x 105 '计算标准体重 If y z * 1.1 Then '体重高于标准体重*1.1 Label5.Caption = “偏胖,注意节食“ ElseIf y z * 0.9 Then '体重低于标准体重*0.9 Label5.Caption = “偏瘦,增加营养“ Else '其他为正常 Label5.Caption = “正常,继续保持“ End If End Sub,台州学院计算机系,17,3.2.2 多行结构条件语句,【例3-5】编写程序求一元二次方程式的根,用InputBox函数输入a、b、c,计算结果通过MsgBox函数显示。 程序代码如下: Private Sub Form_Click() Dim a As Single, b As Single, c As Single Dim d As Single, x1 As Single, x2 As Single a = InputBox(“a=“) b = InputBox(“b=“) c = InputBox(“c=“) d = b * b - 4 * a * c If d 0 Then MsgBox (“方程无实根!“) Else If d = 0 Then x1 = -b / (2 * a) MsgBox (“X1=X2=“ & x1) Else x1 = (-b + Sqr(d) / (2 * a) x2 = (-b + Sqr(d) / (2 * a) MsgBox (“X1=“ & x1 & “ X2=“ & x2) End If End If End Sub,台州学院计算机系,18,3.2.3 多分支选择控制结构,Select Case语句的语法格式如下: Select Case Case Case Case Else End Select 执行流程:先对“测试表达式”求值,然后将测试表达式的值按从上到下的顺序与每一个Case的表达式列表值进行比较。如果相符,就执行该Case分支的语句块,并把控制转到End Select后面的语句;如果没有找到相符,则执行与Case Else子句有关的语句块,然后把控制转到End Select后面的语句。,台州学院计算机系,19,3.2.3 多分支选择控制结构,【例3-6】用Case语句实现例3-3所完成的功能。 程序代码如下: Private Sub Command1_Click() Dim score As Integer, temp As String score = Val(Text1.Text) temp = “成绩等级为:“ Select Case score Case 0 To 59 Label2.Caption = temp + “不及格“ Case 60 To 69 Label2.Caption = temp + “及格“ Case 70 To 79 Label2.Caption = temp + “中“ Case 80 To 89 Label2.Caption = temp + “良“ Case 90 To 100 Label2.Caption = temp + “优“ Case Else Label2.Caption = “成绩出错“ End Select End Sub,台州学院计算机系,20,3.2.3 多分支选择控制结构,【例3-7】输入年、月份,输出该月的天数。 分析:如果该月是1、3、5、7、8、10或12月份,那么就有31天;如果该月是4、6、9或11月份,那么就有30天;而如果是2月份,还要看该年是否为闰年,闰年29天,否则为28天。判断闰年的条件是(y代表年份): y Mod 4 = 0 And y Mod 100 0 Or y Mod 400 = 0,台州学院计算机系,21,3.2.3 多分支选择控制结构,代码如下: Private Sub Command1_Click() Dim y As Integer, m As Integer, d As Integer y = InputBox(“请输入年份:“) m = InputBox(“请输入月份:“) Select Case m Case 1, 3, 5, 7, 8, 10, 12 d = 31 Case 4, 6, 9, 11 d = 30 Case 2 If y Mod 4 = 0 And y Mod 100 0 Or y Mod 400 = 0 Then d = 29 Else d = 28 End If End Select Print y; “年“; m; “月有“; d; “天“ End Sub,台州学院计算机系,22,3.2.3 多分支选择控制结构,【例3-8】将一个十六进制符号转换为十进制数值,运行效果如图3-4所示。,台州学院计算机系,23,3.2.3 多分支选择控制结构,代码如下: Private Sub Command1_Click() Dim s As String, n As Integer s = Text1.Text Select Case s Case “a“, “A“ n = 10 Case “b“, “B“ n = 11 Case “c“, “C“ n = 12 Case “d“, “D“ n = 13 Case “e“, “E“ n = 14 Case “f“, “F“ n = 15 Case Else n = Val(s) End Select Text2.Text = n End Sub,台州学院计算机系,24,3.3 循环控制结构,3.3.1 ForNext循环 3.3.2 WhileWend循环 3.3.3 DoLoop循环 3.3.4 多重循环,台州学院计算机系,25,3.3.1 ForNext循环,语法格式如下: For = To Step Exit For Next 执行过程:首先将赋值给,然后判断是否“超过”,若为True时,则结束循环,执行Next后面的下一条语句;否则,执行内的语句,再将自动按增加或减少,再重新判断当前的值是否“超过”,若为True时,则结束循环,否则重复上述过程,直到其结果为真。,台州学院计算机系,26,3.3.1 ForNext循环,这里所说的“超过”有两种含义,当步长为正值时,检查的值是否大于;当步长为负值时,检查的值是否小于。 关于ForNext语句的几点说明: (1)“初值”、“终值”和“步长”均是数值表达式,不一定是整数,还可以是小数。 (2)如果“步长”为1,则Step可以省略。 (3)关于Exit For:循环中可以在任何位置上放置任意个Exit For语句,以随时退出循环。Exit For经常在条件判断之后使用,例如,IfThen能将控制权转移到紧接在Next之后的语句。 (4)循环次数的计算公式为:循环次数=Int(终值-初值)/步长+1。,台州学院计算机系,27,3.3.1 ForNext循环,【例3-9】计算1100之间自然数之和。 程序代码如下: Private Sub Form_Click() Dim i As Integer, sum As Integer For i = 1 To 100 sum = sum + i 'sum起到了累加器的作用 Next i Print sum End Sub sum变量的作用是:i每循环一次,sum将i的值和它原来的值累加后再赋给自己。所以,当循环结束时,sum中存放的就是0+1+2+100的结果(其中0就是sum的初值。在Visual Basic中,任何变量都有默认的初值,其中,数值型变量的初值为0,字符型变量的初值为空字符)。,台州学院计算机系,28,3.3.1 ForNext循环,【例3-10】计算10的阶乘。 分析:,也就是说,一个自然数的阶乘,等于该自然数与前一个自然数阶乘的乘积,即从1开始连续地乘下一个自然数,直到10为止。 代码如下: Private Sub Command1_Click() Dim i As Integer, s As Single s = 1 '给s赋初值1 For i = 1 To 10 s = s * i 's用作存放累乘结果的“容器” Next i Print s End Sub,台州学院计算机系,29,3.3.1 ForNext循环,【例3-11】计算1!+2!+3!+10!。 程序代码如下: Private Sub Command1_Click() Dim i As Integer, sum As Single, a As Single a = 1 For i = 1 To 10 a = a * i sum = sum + a Next i Print sum End Sub 语句a = a * i也称乘法器。先将a置1(不能置0)。在循环程序中,常用累加器和累乘器来完成各种计算任务。,台州学院计算机系,30,3.3.1 ForNext循环,代码如下: Private Sub Command1_Click() Dim i As Integer, x As Single, n As Integer, s As Single, t As Single x = InputBox(“请输入 x 的值:“) n = InputBox(“请输入 n 的值:“) t = 1 For i = 1 To n t = t * i s = s + x (2 * n - 1) / t Next i Print s End Sub,台州学院计算机系,31,3.3.2 WhileWend循环,While循环的语法格式如下: While 循环体 Wend 功能:当条件为真时执行循环体。 While循环语句的执行过程如下:如果条件为 True,则执行循环体,当遇到 Wend 语句时,控制返回到 While 语句,并再一次检查条件,如果条件还是为 True,则重复执行。如果不为 True,则程序会从 Wend 语句之后的语句继续执行。,台州学院计算机系,32,3.3.2 WhileWend循环,【例3-13】小李今年8岁,她母亲比她大28岁,编程计算出她的母亲在几年后比她的年龄大一倍,以及那时母女的年龄。 代码如下: Private Sub Form_Click() Dim n As Integer n = 8 While n * 2 n + 28 n = n + 1 Wend Print (n - 8) & “年后,母女的年龄分别是:“ & n & “和“ & n + 28 End Sub,台州学院计算机系,33,3.3.3 DoLoop循环,Do循环的格式如下: 格式一: Do While|Until 循环体 Loop 格式二: Do 循环体 Loop While|Until Do循环语句的功能是:当指定的条件为True或直到指定的条件变为True之前重复执行一组语句。,台州学院计算机系,34,3.3.3 DoLoop循环,说明: (1)选项“While”当条件为True时执行循环体,选项“Until”当条件为False时执行循环体 (2)循环体中可以使用“Exit Do”来退出循环,将控制转移到Do循环后一语句,台州学院计算机系,35,3.3.3 DoLoop循环,台州学院计算机系,36,3.3.3 DoLoop循环,【例3-15】猜数游戏,随机生成一个1,100整数m,用户通过InputBox函数输入一个整数n,假如m = n,那么显示猜中信息;假如m n,那么显示小于信息;假如m n,那么显示大于信息。要求总次数不能超过10次。 分析:先通过Rnd函数得到要猜的数字m。因为不知道循环的确切次数,所以我们使用Do WhileLoop循环来实现。先引入一个变量i,初始为0,在循环体中使i的值加1,那么我们可以在循环的条件中去判断i的值是否小于10,这样能保证循环最多运行10次。然后弹出输入框用于用户输入,假如输入的数字n等于m,那么程序结束。当n等于m时我们可以使用Exit Do来跳出Do WhileLoop循环。,台州学院计算机系,37,3.3.3 DoLoop循环,程序代码如下: Private Sub Form_Click() Dim i As Integer, m As Integer, n As Integer Randomize m = Int(Rnd * 100 + 1) '产生一个1-100 的任意整数 Do While i n Then MsgBox (“太小了,继续猜!“) ElseIf m n Then MsgBox (“太大了,继续猜!“) End If Loop If i = 10 Then MsgBox (“猜数失败,游戏结束!“) End Sub,台州学院计算机系,38,3.3.3 DoLoop循环,台州学院计算机系,39,3.3.3 DoLoop循环,程序如下: Private Sub Form_Click() Dim i As Integer, s As Single, p As Single Dim x As Single, t As Single p = 1 s = 1 x = InputBox(“请输入x的值:“) Do i = i + 1 p = p * I 'p 表示 i 的阶乘 t = x i / p 't 表示通项式 s = s + t Loop Until t 10 -5 Print s End Sub,台州学院计算机系,40,3.3.3 DoLoop循环,【例3-17】输入两个正整数,求它们的最大公约数。 分析:我们可以使用“辗转相除法”解此题,“辗转相除法”算法:求出m/n余数r,若r0,n即为最大公约数;若r非0,则把原来的分母n作为新的分子m,把余数r作为新的分母n继续求解。,台州学院计算机系,41,3.3.3 DoLoop循环,依据以上分析,可得程序代码如下: Private Sub Command1_Click() Dim m As Integer, n As Integer, r As Integer m = InputBox(“请输入 m 的值:“) n = InputBox(“请输入 n 的值:“) r = m Mod n Do Until r = 0 m = n n = r r = m Mod n Loop Print “最大公约数:“ & n End Sub,台州学院计算机系,42,3.3.4 多重循环,台州学院计算机系,43,3.3.4 多重循环,程序如下: Private Sub Form_Click() Dim x As Integer, y As Integer, z As Integer For x = 0 To 20 For y = 0 To 33 z = 100 - x - y If 5 * x + 3 * y + z / 3 = 100 Then Print x, y, x End If Next y Next x End Sub,台州学院计算机系,44,3.3.4 多重循环,【例3-19】求3100之间的所有的素数,并统计素数的个数(只能被1和它本身整除的数称为素数)。 分析:如何判断一个数是否为素数,对于24,我们只要判断是否被2、3、4除即可,这是因为若n能被某一个整数整除,则可表示为 n = a * b,a和b之中必然有一个小于或等于Sqr(n)。判断n是否为素数的过程就是从2Sqr(n)依次去整除n的过程,如果其中有一个数能够整除n,则n肯定不是素数。解此题只要我们从3一直遍历到100,依次判断每一个数是否为素数,如果是就输出,台州学院计算机系,45,3.3.4 多重循环,程序代码如下: Private Sub Form_Click() Dim i As Integer, j As Integer Dim t As Integer '统计素数的个数 For i = 3 To 100 For j = 2 To Int(Sqr(i) If i Mod j = 0 Then Exit For End If Next j If j Sqr(i) Then Print i t = t + 1 End If Next i Print “素数的个数:“; t End Sub,台州学院计算机系,46,3.3.4 多重循环,台州学院计算机系,47,3.3.4 多重循环,代码如下: Private Sub Form_Click() Dim i As Integer, j As Integer For i = 1 To 6 Print Space(15 - i); For j = 1 To 2 * i - 1 Print “*“; Next j Print Next i End Sub,台州学院计算机系,48,3.3.4 多重循环,台州学院计算机系,49,3.3.4 多重循环,台州学院计算机系,50,程序代码如下: Private Sub Form_Click() Dim i As Integer, j As Integer Dim s As String For i = 1 To 9 For j = 1 To i s = i Next j Print Next i End Sub,

    注意事项

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

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




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

    三一文库
    收起
    展开