版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序控制结构,第4章,本章要点,选择结构程序设计,循环结构程序设计,顺序结构程序设计,4.1.1 数据的输入,4.1 顺序结构程序设计,顺序结构,选择结构,循环结构,循环条件,语句1 语句2 .,语句1,语句2,语句3,分支1,分支2,分支n,选择条件,三种程序结构,顺序结构是指依顺序逐条执行的语句,只有在上一条语句执行完成后,才能执行下一条语句。,4.1.1 数据的输入,4.1 顺序结构程序设计,原始数据: 725 273 456 .,处理结果:,处理,输入,输出,数据的输入/输出操作是程序设计的重要环节。实际上,第二章 介绍的赋值操作和在文本框中输入也是数据的输入操作,除此之外VB提供了多
2、种非常方便的数据输入/输出操作语句。 在Visual Basic中,更为灵活、方便的InputBox函数、以一种“对话框”的形式进行数据输入。即通过人-机对话方式(InputBox)输入。,4.1.1 数据的输入,4.1 顺序结构程序设计,InputBox函数的定义格式: 变量=InputBox$( , ,) 功能:产生一个对话框,等待用户键入文本或选择一个按钮后,将会返回对话框中文本框的内容。 使用说明: (1)为字符串表达式,不能省略,在对话框中作为显示信息。 (2)为字符串表达式,是对话框的标题。若缺省,则默认显示应用程序名在标题栏中。,4.1.1 数据的输入,4.1 顺序结构程序设计,
3、(3),为整型表达式,确定对话框左边与屏幕左边界的位置(屏幕左上角为坐标原点),若省略则对话框位于屏幕水平正中。 (4)各项参数次序必须一一对应,除项不能省略,其余各项均为可选项,但若缺省参数间的逗号不能省略。 (5)若返回数据参加算术运算,可用Val函数将其转换成数值型数据。 (6)每执行一次InputBox函数只能输入一个值。要输入多个数据,需多次执行InputBox函数,实际应用中可和循环语句联合使用。 另外要注意与文本框的使用区别。,4.1.1 数据的输入,4.1 顺序结构程序设计,代码为:srtName = InputBox(请输入您要查找的姓名:, 姓名查找) 说明: (1) 设置
4、在对话框弹出时默认文本为“张豫清” (2)设置对话框弹出的位置为(5000,5000) 试分析你的显示屏幕右下角的坐标位置。,例如显示一个需要输入查找姓名的对话框,如图:,4.1.1 数据的输入,4.1 顺序结构程序设计,例4-2 编写程序,求解鸡兔同笼问题。一个笼中有鸡n只,兔m只,每只鸡有2只脚,每只兔有4只脚,已知鸡和兔的总头数为x,总脚数为y。求笼中鸡和兔各多少只?设x=63,y=148。,根据题意,可列出如下的联立方程式 :,n+m=x,2n+4m=y,m=(y-2x) /2,n=(4x-y)/2,4.1.2数据的输出,4.1 顺序结构程序设计,VB中用于数据输出的方法主要有以下几种
5、: 标签、文本框等控件; Print方法; 输出消息框。(本小节重点介绍),在编写代码时,常常需要告诉用户一些信息,这是需要用到信息对话框(MsgBox)。,与MsgBox函数功能相同的,还有MsgBox过程,它没有返回值,仅仅是用来输出信息。,4.1.2 数据的输出,4.1 顺序结构程序设计,函数使用格式: 变量$=MsgBox(,) 过程使用格式: MsgBox , 功能:执行MsgBox函数或过程时,屏幕弹出一个对话框,通过窗口中的命令按钮控制程序的执行。其中MsgBox函数的返回值是整数。,4.1.2 数据的输出,4.1 顺序结构程序设计,使用说明: (1)是字符串,该项不能省略,是显
6、示在对话框中的信息,其长度不能超过1024个字符,否则多余的字符将被截掉。 (2)为可选项,用来确定对话框中显示的按钮数目、形式、图表类型、默认按钮以及对话框模式等。该部分通常由3组参数共同构成:参数1决定对话框的按钮情况;参数2决定对话框中显示图标的样式;参数3指定对话框的默认(缺省)按钮,直接回车即等于单击了默认按钮。,4.1.2 数据的输出,4.1 顺序结构程序设计,例如:当用户单击某个按钮后,出现一个包含停止图标及“终止”、“重试”和“忽略”按钮的对话框以显示程序出错信息,“错误”信息对话框如图所示。,Private Sub Command1_Click() Inkey = MsgBo
7、x(程序发生严重错误!, 256 + 2 + 16, 错误) End Sub,4.1.2 数据的输出,4.1 顺序结构程序设计,例4-3 利用MsgBox函数创建“退出”消息框。,4.1.3顺序结构程序应用示例,4.1 顺序结构程序设计,例4-5 某地区电话号码由7位升为8位,其规律为:原有电话号码最高位数字加1(设原有最高位小于9),并在最高位之前加一个“8”。例如,原电话号码3124567将变为84124567。编写程序输入一个原电话号码(包括区号),输出新号码。,4.1.3 顺序结构程序应用示例,4.1 顺序结构程序设计,小结: 本小节介绍了顺序结构的相关内容,顺序结构是按照语句的书写顺
8、序执行的结构。它是程序的主体结构,组成顺序结构的主要语句有输入语句和输出语句。其中输入方法包括赋值语句、利用“文本框”控件输入数据和利用“对话框”输入数据;输出方法包括Print方法、利用“标签”控件输出数据和利用“消息对话框”输出数据。,顺序结构的程序远远满足不了解决真实世界中的各种问题的需要。在实际生活中,人们往往要根据不同的情况做出不同的决策。这就是所谓的选择结构。 例如,来到一个三叉路口,前面面临两种不同的选择:去海滨游泳则选择右转,去山区打猎则直走。 出门时,根据气温来决定是添加衣服、减少衣服或是保持不变。 选择结构是计算机科学领域用来描述分支现象的重要手段。其特点是根据所给定的条件
9、为真(即条件成立)与否,而决定从各实际可能的不同分支中执行某一分支的相应操作。,4.2 选择结构程序设计,4.2.1 简单分支结构,4.2.1 简单的分支结构,4.2 选择结构程序设计,简单分支结构分为单分支选择结构和双分支选择结构语句形式。,1单分支选择结构 格式一: If Then End If 格式二: If Then 功能:先计算的值,若值为True,则执行或操作,否则跳过或操作,直接执行End If后面的语句。,条件=?,选择1,继续向前,True,False,4.2.1 简单的分支结构,4.2 选择结构程序设计,条件=?,选择1,选择2,继续,True,False,2双分支选择结构
10、 格式一: If Then Else End If 格式二: If Then Else ,功能:先计算的值,当的值为True(条件满足)时,执行或;否则,执行或。无论执行哪个语句块的操作,都将顺序执行End If的下一条语句。,4.2.1简单的分支结构,4.2 选择结构程序设计,例如:讨论并求解一元二次方程 解法1:仅就有实数根时求解(使用单行If语句,省略 Else选项): a=32:b=28:c=-45d= b2-4*a*c if d=0 then x1=(-b+sqr(d)/(2*a) x2=(-b-sqr(d)/(2*a) Print “x1=”;x1,”x2=”;x2,4.2.1简单
11、的分支结构,4.2 选择结构程序设计,使用多行If语句,输入方式改用对话框: a=Val(InputBox(“请输入A”) b= Val(InputBox(“请输入B”) c= Val(InputBox(“请输入C”) d= b2-4*a*c if d=0 then x1=(-b+sqr(d)/(2*a) x2=(-b-sqr(d)/(2*a) Print “x1=”;x1,”x2=”;x2 End If,4.2.1简单的分支结构,4.2 选择结构程序设计,解法2:有实数根时求解,否则输出无实根: a=Val(InputBox(“请输入A”) b= Val(InputBox(“请输入B”) c
12、= Val(InputBox(“请输入C”) d= b2-4*a*c if d=0 then x1=(-b+sqr(d)/(2*a) x2=(-b-sqr(d)/(2*a) Print “x1=”;x1,”x2=”;x2 Else Print “没有实数根!” End If,而第三种解法就三种情况讨论:有两不等实数根、两相等实数根和无实根。这如何解决呢?,4.2.2多分支选择结构,4.2 选择结构程序设计,1. IfThenElseIf语句 格式: If Then ElseIf Then Else End If,4.2.2多分支选择结构,4.2 选择结构程序设计,功能:根据,确定执行,VB测试
13、条件的顺序为表达式1、表达式2,一旦遇到表达式值为True(非零),则执行该条件下的语句块。 说明: (1)不管有几个分支,程序执行了一个分支后,其余分支不再执行; (2)ElseIf不能写成Else If ; (3)当多分支中有多个表达式同时满足,则只执行第一个与之匹配的语句块,2Select语句 Select语句又称为情况分支语句,它是根据多个表达式列表的值,选择多个操作中的一个对应执行。 格式:Select Case Case Case Case Case Else End Select,4.2 选择结构程序设计,4.2.2多分支选择结构,4.2 选择结构程序设计,4.2.2多分支选择结
14、构,流程图:,功能: 根据的值从上至下依次检查n个,果有一个与的值相匹配,选择n+1个中对应的一个执行,其余分支不再执行,当所有case中的中没有与的值相匹配时,如果有Case Else项,则执行,然后执行End Select后面的下一条语句;否则,直接执行End Select后面的下一条语句。,4.2 选择结构程序设计,4.2.2多分支选择结构,4.2 选择结构程序设计,例4-10 输入一学生成绩,评定其等级。方法是:90100分为“优秀”,8089分为“良好”,7079分为“中等”,6069分为“及格”,60分以为“不合格”。,3使用嵌套If实现多分支结构 在IF语句的Then分支和Els
15、e分支中可以完整地嵌套另一IF语句或Select Case语句,同样Select Case语句每一个Case分支中都可嵌套另一IF语句或另一Select Case语句。,4.2.2多分支选择结构,4.2 选择结构程序设计,注意: 只要在一个分支内嵌套,不出现交叉,满足结构规则,其嵌套的形式将有很多种,嵌套层次也不受限制。对于多层IF嵌套结构中,要特别注意IF与Else的配对关系,一个Else必须与一个IF配对,配对的原则是:一个Else与离它最近的IF配对。在写含有多层嵌套的程序时,建议使用缩进对齐方式,这样容易阅读和维护。,4.2.2多分支选择结构,4.2 选择结构程序设计,解法3:就三种情
16、况讨论:有两不等实数根、两相等实数根和无实根: a=Val(InputBox(“请输入A”) b= Val(InputBox(“请输入B”) c= Val(InputBox(“请输入C”) d= b2-4*a*c If d0 then x1=(-b+sqr(d)/(2*a) x2=(-b-sqr(d)/(2*a): ?x1=”;x1,”x2=”;x2 Else If d=0 then ?”x1=x2=”;-b/(2*a) Else Print “无实根” End If End If,4.2.2多分支选择结构,4.2 选择结构程序设计,多分支选择结构是在选择结构中进行多个条件的测试,根据测试的条
17、件,执行相应的语句块。例如,上述三分支问题采用两个单分支嵌套的方式,为了简化嵌套格式VB采用下列固定格式: a=Val(InputBox(“请输入A”) b= Val(InputBox(“请输入B”) c= Val(InputBox(“请输入C”) d= b2-4*a*c If d0 then x1=(-b+sqr(d)/(2*a) x2=(-b-sqr(d)/(2*a): ?x1=”;x1,”x2=”;x2 ElseIf d=0 then ?”x1=x2=”;-b/(2*a) Else Print “无实根”,4.2.2多分支选择结构,4.2.3 条件函数,4.2 选择结构程序设计,它是双分
18、支选择结构的另一种形式。 函数格式: IIf(,) 功能:先计算的值,当的值为 True时,函数的返回值为的计算结果;当的值为False时,函数返回值为的计算结果。 使用说明: (1)必须是关系表达式或逻辑表达式。 (2)和可以是任意表达式。,4.2.3 条件函数,4.2 选择结构程序设计,例4-13 进行两个数的大小比较,并在标签中显示出比较结果。,4.2.4 选择结构程序应用示例,4.2 选择结构程序设计,例4-14 设计一个窗体,计算某国个人收入所得税,所得税率如表所示。,4.2 选择结构程序设计,小结: 选择结构也叫分支结构,它可以使程序在运行过程中根据设定的条件来选择执行相应的程序语
19、句,从而完成较复杂的任务。本章重点讲述了单分支、双分支和多分支结构的选择语句。 在VB中,实现选择结构的语句有: If.Then.Else、If.Then.ElseIf、Select Case等语句。,4.2.4 选择结构程序应用示例,4.3.1 For循环结构,4.3 循环结构程序设计,循环结构是用来描述有规律地重复执行的某一程序段,简化程序,提高效率。它只有一个入口,一个出口。常用的循环结构有以下2种:,在VB中,循环结构主要通过以下3个语句实现:,For循环(ForNext循环)- 先判断后执行,当循环(WhileWend循环) - 先判断后执行,Do循环(DoLoop循环)-可以实现两
20、种结构,重点+难点:循环程序设计方法+循环的嵌套,4.3.1 For循环结构,4.3 循环结构程序设计,一个循环结构应由4个主要部分构成: (1) 循环变量,它保证循环体在循环过程中,相关的量能按一定的规律变化。 (2) 循环的初始部分,它是循环结构开始执行的语句,往往编写在循环体的开头部分,逻辑上先从这一部分开始执行。 (3) 循环体,完成循环程序的主要工作。 (4) 循环条件,它控制循环程序按规定的条件正确进行,并结束循环。 3种不同风格的循环结构:(1) ForNext语句 (2) WhileWend语句 (3) DoLoop语句,4.3.1 For循环结构,4.3 循环结构程序设计,F
21、or循环又称计数循环,用来处理循环次数预先知道的。 循环格式为:,For 循环变量=循环变量初值 To 终值 Step步长 语句块 Exit For 语句块 Next循环变量 功能:用循环计数器循环变量来控制语句块即循环体内的执行次数。,循环体,4.3 循环结构程序设计,4.3.1 For循环结构,例4-16 设计一窗体,在窗体上显示如图4-19所示图形。,4.3 循环结构程序设计,4.3.1 For循环结构,赋初值:x=1,判断:x“超过”终值?,执行:执行一次循环体,跨步:x=x+步长,返回,退出循环,是,4.3 循环结构程序设计,4.3.1 For循环结构,4.3.2 While循环与D
22、o循环结构,1. While语句 While语句又称“当”型循环控制语句,它是通过“循环条件”控制重复执行一组语句。,格式: While Wend,功能:当为True时,执行内的语句,遇到Wend语句后,再次返回。继续测试是否为True,直到为False,跳出整个循环,执行Wend语句的下一条语句。,4.3 循环结构程序设计,判断:条件是否满足?,执行:执行一次循环体,返回,否,是,退出循环,4.3.2 While循环与Do循环结构,4.3 循环结构程序设计,2. Do语句,格式1: Do Loop 功能:当为True时,或直到变为True之前,重复执行循环体内的语句,否则,执行Loop 语句
23、的下一条。,4.3.2 While循环与Do循环结构,格式2: Do Loop ,4.3 循环结构程序设计,共派生以下5种形式:,(1)Do While 条件Loop循环,Do While 条件 循环体 Loop,判断:条件是否满足?,执行:执行一次循环体,返回,是,否,退出循环,4.3.2 While循环与Do循环结构,4.3 循环结构程序设计,(2) Do Until 条件Loop循环,Do Until 条件 循环体 Loop,判断:条件是否满足?,执行:执行一次循环体,返回,是,退出循环,4.3.2 While循环与Do循环结构,4.3 循环结构程序设计,(3) Do Loop Whil
24、e条件循环,Do 循环体 Loop While 条件,4.3.2 While循环与Do循环结构,4.3 循环结构程序设计,(4) Do Loop Until条件 循环,Do 循环体 Loop Until 条件,判断:条件是否满足?,执行:执行一次循环体,是,否,退出循环,4.3.2 While循环与Do循环结构,4.3 循环结构程序设计,(5) Do Loop循环,Do 循环体 Loop,省略了“WhileUntil 条件”子句的循环,则为无条件循环。这种形式没有要判断的逻辑表达式,此时必须在循环体内适当位置插入“Exit Do”语句,否则会陷入死循环。,4.3.2 While循环与Do循环结
25、构,4.3 循环结构程序设计,For-Next循环与Do-Loop循环的比较:,赋初值:x=1,判断:x“超过”终值?,执行:执行一次循环体,跨步:x=x+步长,返回,否,是,退出循环,4.3.2 While循环与Do循环结构,4.3 循环结构程序设计,(1) For循环格式固定,只能实现”先判断,后执行”方式,Do循环则比较灵活,可以实现良种方式; (2) For循环控制方式都是自动的,包括循环控制变量的指定、赋初值、循环跨步等都是自动完成。而Do循环中这些操作都要自己设置; (3)For循环控制方式采用“X=初值 To 终值”的描述方法,而Do循环则用逻辑表达式的值进行控制。,4.3.2
26、While循环与Do循环结构,4.3 循环结构程序设计,例4-18 求1!+2!+n!的和。,1,4.3.2 While循环与Do循环结构,4.3 循环结构程序设计,习题P1004(5)如果一个三位数三个数字的立方和等于这个数,称为水仙花数。编一段程序,打印所有水仙花数。 【思路】 (1)三位整数范围:For x=100 To 999 (2)求三位数字:A、B、C: 百位数字: A=Int(x/100) 十位数字: B=Int(x-100*A)/10) 个位数字: C=x-100*A-10*B (3) 判断:A3+B3+C3=x?,1,3,5,4.3.2 While循环与Do循环结构,4.3
27、循环结构程序设计,4.3.3其它辅助控制语句,1Goto 语句 格式: Go To 标号|行号 功能:是无条件地转移到标号或行号指定的那一行语句。因此常被称作无条件转向语句。 使用说明: (1)标号、行号:标号是一个以冒号结尾的标识符;行号是一个整形数,不以冒号结尾。标号和行号标识一个位置,可以使用GoTo语句转到这一位置。 (2)Goto语句中的标号和行号,在程序中必须存在,且是唯一的。 (3)Goto语句只能在一个过程内转向。,4.3 循环结构程序设计,4.3.3其它辅助控制语句,在VB中,有如下几种中途提前跳出循环的辅助语句: (1)Exit For:用于中途跳出For循环,可以直接使用
28、,也可以用条件判断语句加以限制,在满足某个条件时才能执行此语句,跳出For循环。例如:在For循环内部添加语句“If 条件 Then Exit For”。 (2)Exit Do:用于中途跳出Do循环,其用法与Exit For类似。 (3)Exit Sub:用于中途跳出Sub过程。 (4)Exit Function:用于中途跳出Function过程。 Exit Sub 和Exit Function的用法在第六章详细介绍。,2Exit 语句,4.3 循环结构程序设计,4.3.4循环的嵌套,一个循环体内包含另一个完整的循环结构,称为循环的嵌套结构。在循环结构中可以嵌套任何循环结构,也可以嵌套选择结构。 在程序设计时,许多问题用二重或多重循环才能解决。前面介绍的For循环,Do循环,While循环都可以互相嵌套,如在ForNext循环体内使用While循环,而在WhileWend循环体内也可以内使用For循环等。,循环开始,循环结束,4.3 循环结构程序设计,循环开始,循环结束,在循环嵌套中要注意,内层循环应完全在外层循环的里面,不允许出现交叉。,4.3.4循环的嵌套,4.3 循环结构程序设计,例4-22 用数字显示金字塔图案。 (1)问题分析:“数字金字塔”是由左右两部分组成,左半部分的数字从开始
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营养配餐员岗中技能竞赛考核试卷含答案
- 架线维护工岗位实践综合水平考核试卷含答案
- 镁冶炼工岗位创新意识考核试卷含答案
- 滴水法松香工岗位综合考核试卷含答案
- 织布工岗中跨领域知识考核试卷含答案
- 电鸣乐器接装工沟通技巧模拟考核试卷含答案
- 油制氢装置操作工岗前个人技能考核试卷含答案
- 金属铬还原工安全文化强化考核试卷含答案
- 化工企业设备安装或检维修方案编写指导书范本
- 集团安全生产管理讲解
- 沪科版九年级物理14-2让电灯发光课件
- 第六届全国农业行业职业技能大赛(农业经理人赛项)理论参考试题库-上(单选题)
- 陌生拜访话术流程
- 3-费希尔DVC6000系列定位器的调校
- 代订机票合同
- 高考必备文学常识
- GB/T 228.1-2021金属材料拉伸试验第1部分:室温试验方法
- 福建省2013年考试录用公务员招考职位表
- 2023年十堰市竹溪县事业单位笔试真题
- 现代果树生产技术-葡萄教案
- 起重伤害应急演练总结
评论
0/150
提交评论