程序控制结构课件_第1页
程序控制结构课件_第2页
程序控制结构课件_第3页
程序控制结构课件_第4页
程序控制结构课件_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序控制结构第4章本章要点选择结构程序设计循环结构程序设计顺序结构程序设计4.1.1数据的输入4.1顺序结构程序设计顺序结构选择结构循环结构循环条件语句1语句2……..语句1语句2语句3分支1分支2分支n选择条件三种程序结构

顺序结构是指依顺序逐条执行的语句,只有在上一条语句执行完成后,才能执行下一条语句。4.1.1数据的输入4.1顺序结构程序设计InputBox函数的定义格式:变量=InputBox[$](<提示>[,<标题>][,<缺省>]

[,<x坐标位置>][,<y坐标位置>])功能:产生一个对话框,等待用户键入文本或选择一个按钮后,将会返回对话框中文本框的内容。

使用说明:(1)<提示项>为字符串表达式,不能省略,在对话框中作为显示信息。(2)<标题>为字符串表达式,是对话框的标题。若缺省,则默认显示应用程序名在标题栏中。4.1.1数据的输入4.1顺序结构程序设计(3)[,<x坐标位置>][,<y坐标位置>]为整型表达式,确定对话框左边与屏幕左边界的位置(屏幕左上角为坐标原点),若<x坐标位置>省略则对话框位于屏幕水平正中。(4)各项参数次序必须一一对应,除<提示>项不能省略,其余各项均为可选项,但若缺省参数间的逗号不能省略。(5)若返回数据参加算术运算,可用Val函数将其转换成数值型数据。(6)每执行一次InputBox函数只能输入一个值。要输入多个数据,需多次执行InputBox函数,实际应用中可和循环语句联合使用。另外要注意与文本框的使用区别。4.1.1数据的输入4.1顺序结构程序设计

代码为:srtName=InputBox("请输入您要查找的姓名:","姓名查找")说明:(1)设置在对话框弹出时默认文本为“张豫清”(2)设置对话框弹出的位置为(5000,5000)试分析你的显示屏幕右下角的坐标位置。例如显示一个需要输入查找姓名的对话框,如图:4.1.2数据的输出4.1顺序结构程序设计VB中用于数据输出的方法主要有以下几种:标签、文本框等控件;Print方法;输出消息框。(本小节重点介绍)

在编写代码时,常常需要告诉用户一些信息,这是需要用到信息对话框(MsgBox)。

与MsgBox函数功能相同的,还有MsgBox过程,它没有返回值,仅仅是用来输出信息。4.1.2数据的输出4.1顺序结构程序设计

函数使用格式:变量[$]=MsgBox(<提示>[,<按钮类型>][,<标题>])过程使用格式:MsgBox<提示>[,<按钮类型>][,<标题>]功能:执行MsgBox函数或过程时,屏幕弹出一个对话框,通过窗口中的命令按钮控制程序的执行。其中MsgBox函数的返回值是整数。4.1.2数据的输出4.1顺序结构程序设计使用说明:(1)<提示>是字符串,该项不能省略,是显示在对话框中的信息,其长度不能超过1024个字符,否则多余的字符将被截掉。(2)<按钮类型>为可选项,用来确定对话框中显示的按钮数目、形式、图表类型、默认按钮以及对话框模式等。该部分通常由3组参数共同构成:参数1决定对话框的按钮情况;参数2决定对话框中显示图标的样式;参数3指定对话框的默认(缺省)按钮,直接回车即等于单击了默认按钮。4.1.2数据的输出4.1顺序结构程序设计例4-3

利用MsgBox函数创建“退出”消息框。演示程序4.1.3顺序结构程序应用示例4.1顺序结构程序设计

例4-5

某地区电话号码由7位升为8位,其规律为:原有电话号码最高位数字加1(设原有最高位小于9),并在最高位之前加一个“8”。例如,原电话号码将变为。编写程序输入一个原电话号码(包括区号),输出新号码。演示程序4.1.3顺序结构程序应用示例4.1顺序结构程序设计小结:

本小节介绍了顺序结构的相关内容,顺序结构是按照语句的书写顺序执行的结构。它是程序的主体结构,组成顺序结构的主要语句有输入语句和输出语句。其中输入方法包括赋值语句、利用“文本框”控件输入数据和利用“对话框”输入数据;输出方法包括Print方法、利用“标签”控件输出数据和利用“消息对话框”输出数据。4.2.1简单的分支结构4.2选择结构程序设计简单分支结构分为单分支选择结构和双分支选择结构语句形式。1.单分支选择结构格式一:If<表达式>Then<语句块>EndIf格式二:

If

<表达式>

Then

<语句>功能:先计算<表达式>的值,若值为True,则执行<语句块>或<语句>操作,否则跳过<语句块>或<语句>操作,直接执行EndIf后面的语句。条件=?选择1继续向前TrueFalse4.2.1简单的分支结构4.2选择结构程序设计条件=?选择1选择2继续TrueFalse2.双分支选择结构格式一:

If

<表达式>

Then

<语句块1>Else

<语句块2>EndIf格式二:If

<表达式>Then<语句1>Else<语句2>

功能:先计算

<表达式>的值,当

<表达式>的值为True(条件满足)时,执行<语句块1>或<语句1>;否则,执行<语句块2>或<语句2>。无论执行哪个语句块的操作,都将顺序执行EndIf的下一条语句。4.2.1简单的分支结构4.2选择结构程序设计例如:讨论并求解一元二次方程

解法1:仅就有实数根时求解(使用单行If语句,省略Else选项):a=32:b=28:c=-45d=b^2-4*a*cifd>=0thenx1=(-b+sqr(d))/(2*a)x2=(-b-sqr(d))/(2*a)Print“x1=”;x1,”x2=”;x24.2.1简单的分支结构4.2选择结构程序设计解法2:有实数根时求解,否则输出无实根:a=Val(InputBox(“请输入A”)b=Val(InputBox(“请输入B”)c=Val(InputBox(“请输入C”)d=b^2-4*a*cifd>=0thenx1=(-b+sqr(d))/(2*a)x2=(-b-sqr(d))/(2*a)Print“x1=”;x1,”x2=”;x2ElsePrint“没有实数根!”EndIf输入系数a,b,c开始计算根的判别式d=b*b-4*a*c结束d>=0?输出无实根计算x1=计算x2=输出实根x1,x2TrueFalse而第三种解法就三种情况讨论:有两不等实数根、两相等实数根和无实根。这如何解决呢?4.2.2多分支选择结构4.2选择结构程序设计1.If…Then…ElseIf语句格式:

If

<表达式1>

Then

<语句块1>

ElseIf

<表达式2>

Then

<语句块2>

……

[Else

<语句块n+1>]

EndIf4.2.2多分支选择结构4.2选择结构程序设计

功能:根据<表达式i>,确定执行<语句块i>,VB测试条件的顺序为表达式1、表达式2…,一旦遇到表达式值为True(非零),则执行该条件下的语句块。

说明:

(1)不管有几个分支,程序执行了一个分支后,其余分支不再执行;(2)ElseIf不能写成ElseIf;(3)当多分支中有多个表达式同时满足,则只执行第一个与之匹配的语句块4.2选择结构程序设计4.2.2多分支选择结构流程图:

功能:根据<变量或表达式>的值从上至下依次检查n个<表达式列表>,果有一个与<变量或表达式>的值相匹配,选择n+1个<语句块1>中对应的一个执行,其余分支不再执行,当所有case中的<表达式列表>中没有与<变量或表达式>的值相匹配时,如果有CaseElse项,则执行<语句块n+1>,然后执行EndSelect后面的下一条语句;否则,直接执行EndSelect后面的下一条语句。4.2选择结构程序设计4.2.2多分支选择结构4.2选择结构程序设计解法3:就三种情况讨论:有两不等实数根、两相等实数根和无实根:a=Val(InputBox(“请输入A”)b=Val(InputBox(“请输入B”)c=Val(InputBox(“请输入C”)d=b^2-4*a*cIfd>0thenx1=(-b+sqr(d))/(2*a)x2=(-b-sqr(d))/(2*a):?x1=”;x1,”x2=”;x2ElseIfd=0then?”x1=x2=”;-b/(2*a)ElsePrint“无实根”

EndIfEndIf输入系数a,b,c开始计算根的判别式d=b*b-4*a*c输出无实根结束d>0?计算x1=计算x2=输出实根x1,x2d=0?输出等实根TrueTrueFalseFalse4.2.2多分支选择结构4.2选择结构程序设计多分支选择结构是在选择结构中进行多个条件的测试,根据测试的条件,执行相应的语句块。例如,上述三分支问题采用两个单分支嵌套的方式,为了简化嵌套格式VB采用下列固定格式:a=Val(InputBox(“请输入A”)b=Val(InputBox(“请输入B”)c=Val(InputBox(“请输入C”)d=b^2-4*a*cIfd>0thenx1=(-b+sqr(d))/(2*a)x2=(-b-sqr(d))/(2*a):?x1=”;x1,”x2=”;x2ElseIfd=0then?”x1=x2=”;-b/(2*a)ElsePrint“无实根”4.2.2多分支选择结构

4.2.3条件函数4.2选择结构程序设计它是双分支选择结构的另一种形式。函数格式:IIf(<表达式1>,<表达式2>,<表达式3>)功能:先计算<表达式1>的值,当<表达式1>的值为

True时,函数的返回值为<表达式2>的计算结果;当<表达式1>的值为False时,函数返回值为<表达式3>的计算结果。使用说明:(1)<表达式1>必须是关系表达式或逻辑表达式。(2)<表达式2>和<表达式3>可以是任意表达式。

4.2.3条件函数4.2选择结构程序设计

例4-13

进行两个数的大小比较,并在标签中显示出比较结果。演示程序4.2.4选择结构程序应用示例4.2选择结构程序设计

例4-14

设计一个窗体,计算某国个人收入所得税,所得税率如表所示。个人收入(元)<2000020000~2999930000~599999≥60000税率5%10%20%40%演示程序4.2选择结构程序设计

小结:

选择结构也叫分支结构,它可以使程序在运行过程中根据设定的条件来选择执行相应的程序语句,从而完成较复杂的任务。本章重点讲述了单分支、双分支和多分支结构的选择语句。在VB中,实现选择结构的语句有:

If...Then...Else、If...Then...ElseIf、SelectCase等语句。

4.2.4选择结构程序应用示例4.3.1For循环结构4.3循环结构程序设计

循环结构是用来描述有规律地重复执行的某一程序段,简化程序,提高效率。它只有一个入口,一个出口。常用的循环结构有以下2种:

先判断后执行循环条件语句1语句2……..先执行后判断循环条件语句1语句2……..循环体:循环中反复执行的部分

循环体:循环中反复执行的部分

在VB中,循环结构主要通过以下3个语句实现:For循环(For…Next循环)--先判断后执行当循环(While…Wend循环)

--先判断后执行Do循环(Do…Loop循环)---可以实现两种结构重点重点+难点:循环程序设计方法+循环的嵌套4.3.1For循环结构4.3循环结构程序设计

一个循环结构应由4个主要部分构成:

(1)循环变量,它保证循环体在循环过程中,相关的量能按一定的规律变化。

(2)循环的初始部分,它是循环结构开始执行的语句,往往编写在循环体的开头部分,逻辑上先从这一部分开始执行。

(3)循环体,完成循环程序的主要工作。

(4)循环条件,它控制循环程序按规定的条件正确进行,并结束循环。3种不同风格的循环结构:(1)For…Next语句

(2)While…Wend语句

(3)Do…Loop语句4.3.1For循环结构4.3循环结构程序设计For循环又称计数循环,用来处理循环次数预先知道的。循环格式为:For循环变量=循环变量初值To终值[Step

步长]语句块

[ExitFor]语句块

Next

循环变量功能:用循环计数器循环变量来控制语句块即循环体内的执行次数。循环体4.3循环结构程序设计4.3.1For循环结构

例4-16

设计一窗体,在窗体上显示如图4-19所示图形。演示程序4.3循环结构程序设计4.3.1For循环结构赋初值:x=1判断:x“超过”终值?执行:执行一次循环体跨步:x=x+步长,返回退出循环是4.3循环结构程序设计4.3.1For循环结构4.3.2While循环与Do循环结构

1.While语句

While语句又称“当”型循环控制语句,它是通过“循环条件”控制重复执行一组语句。

格式:While<循环条件><循环体>Wend

功能:当<循环条件>为True时,执行<循环体>内的语句,遇到Wend语句后,再次返回。继续测试<循环条件>是否为True,直到<循环条件>为False,跳出整个循环,执行Wend语句的下一条语句。4.3循环结构程序设计判断:条件是否满足?执行:执行一次循环体返回否是退出循环4.3.2While循环与Do循环结构4.3循环结构程序设计2.Do语句格式1:Do<While|Until循环条件>

<循环体>

<Exit

Do>

<循环体>

Loop功能:当<循环条件>为True时,或直到<循环条件>变为True之前,重复执行循环体内的语句,否则,执行Loop语句的下一条。

4.3.2While循环与Do循环结构格式2:

Do

<循环体>

<Exit

Do>

<循环体>Loop<While|Until循环条件>4.3循环结构程序设计共派生以下5种形式:(1)DoWhile条件…Loop循环DoWhile条件循环体Loop判断:条件是否满足?执行:执行一次循环体返回是否退出循环4.3.2While循环与Do循环结构4.3循环结构程序设计(2)DoUntil条件…Loop循环DoUntil条件循环体Loop判断:条件是否满足?执行:执行一次循环体返回是退出循环4.3.2While循环与Do循环结构4.3循环结构程序设计(3)Do…LoopWhile条件循环

Do

循环体LoopWhile条件判断:条件是否满足?执行:执行一次循环体否是退出循环4.3.2While循环与Do循环结构4.3循环结构程序设计(4)Do…LoopUntil条件循环

Do

循环体LoopUntil条件判断:条件是否满足?执行:执行一次循环体是否退出循环4.3.2While循环与Do循环结构4.3循环结构程序设计(5)Do…Loop循环

Do

循环体Loop执行:执行一次循环体返回

省略了“{While∣Until}条件”子句的循环,则为无条件循环。这种形式没有要判断的逻辑表达式,此时必须在循环体内适当位置插入“ExitDo”语句,否则会陷入死循环。4.3.2While循环与Do循环结构4.3循环结构程序设计For-Next循环与Do-Loop循环的比较:赋初值:x=1判断:x“超过”终值?执行:执行一次循环体跨步:x=x+步长,返回否是退出循环判断:条件是否满足?执行:执行一次循环体返回是否退出循环4.3.2While循环与Do循环结构4.3循环结构程序设计

(1)For循环格式固定,只能实现”先判断,后执行”方式,Do循环则比较灵活,可以实现良种方式;(2)For循环控制方式都是自动的,包括循环控制变量的指定、赋初值、循环跨步等都是自动完成。而Do循环中这些操作都要自己设置;(3)For循环控制方式采用“X=初值To终值”的描述方法,而Do循环则用逻辑表达式的值进行控制。4.3.2While循环与Do循环结构4.3循环结构程序设计例4-18

求1!+2!+…+n!的和。

1演示程序4.3.2While循环与Do循环结构4.3循环结构程序设计习题P100—4(5)如果一个三位数三个数字的立方和等于这个数,称为水仙花数。编一段程序,打印所有水仙花数。【思路】(1)三位整数范围:Forx=100To999(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?1354.3.2While循环与Do循环结构4.3循环结构程序设计4.3.3其它辅助控制语句

1.Goto语句格式:GoTo[标号|行号]

功能:是无条件地转移到标号或行号指定的那一行语句。因此常被称作无条件转向语句。使用说明:(1)标号、行号:标号是一个以冒号结尾的标识符;行号是一个整形数,不以冒号结尾。标号和行号标识一个位置,可以使用GoTo语句转到这一位置。(2)Goto语句中的标号和行号,在程序中必须存在,且是唯一的。(3)Goto语句只能在一个过程内转向。4.3循环结构程序设计4.3.3其它辅助控制语句在VB中,有如下几种中途提前跳出循环的辅助语句:

(1)ExitFor:用于中途跳出For循环,可以直接使用,也可以用条件判断语句加以限制,在满足某个条件时才能执行此语句,跳出For循环。例如:在For循环内部添加语句“If条件

ThenExitFor”。

(2)ExitDo:用于中途跳出Do循环,其用法与ExitFor类似。

(3)ExitSub:用于中途跳出Sub过程。

(4)ExitFunction:用于中途跳出Function过程。ExitSub和ExitFunction的用法在第六章详细介绍。2.Exit语句

4.3循环结构程序设计4.3.4循环的嵌套

一个循环体内包含另一个完整的循环结构,称为循环的嵌套结构。在循环结构中可以嵌套任何循环结构,也可以嵌套选择结构。在程序设计时,许多问题用二重或多重循环才能解决。前面介绍的For循环,Do循环,While循环都可以互相嵌套,如在For…Next循环体内使用While循环,而在While…Wend循环体内也可以内使用For循环等。循环开始循环结束4.3循环结构程序设计循环开始循环结束

在循环嵌套中要注意,内层循环应完全在外层循环的里面,不允许出现交叉。

4.3.4循环的嵌套4.3循环结构程序设计例4-22

用数字显示金字塔图案。(1)问题分析:“数字金字塔”是由左右两部分组成,左半部分的数字从开始,顺序递增,到一行中的最大值结束,右半部分的数字从一行中的最大值开始,顺序递减,到1结束。要打印的“数字金字塔”共

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论