1.2程序设计的种基本结构ppt课件_第1页
1.2程序设计的种基本结构ppt课件_第2页
1.2程序设计的种基本结构ppt课件_第3页
1.2程序设计的种基本结构ppt课件_第4页
1.2程序设计的种基本结构ppt课件_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

1、第第3章章 程序设计的程序设计的3种基本结构种基本结构 本章内容及要求:本章内容及要求: (1了解算法概念及表示,掌握用了解算法概念及表示,掌握用NS流程图流程图表示算法;表示算法; ( 2熟练掌握赋值语句、输入熟练掌握赋值语句、输入/输出消息框函数输出消息框函数的使用;的使用; ( 3熟练掌握行熟练掌握行if语句、块语句、块if结构、结构、Select Case情情况选择结构有使用,掌握选择的嵌套结构;况选择结构有使用,掌握选择的嵌套结构; (4熟练掌握实现循环结构的熟练掌握实现循环结构的For/Next循环结构循环结构及及Exit For语句、语句、Do/Loop循环结构的使用,掌握多循环

2、结构的使用,掌握多重循环;重循环; (5能够运用能够运用3种结构进行综合程序设计。种结构进行综合程序设计。 重点:选择结构及循环结构的实现及其应用重点:选择结构及循环结构的实现及其应用难点:算法设计、选择的嵌套及多重循环结构难点:算法设计、选择的嵌套及多重循环结构3.1 算法及算法的表示算法及算法的表示 3.1.1 算法概述算法概述 什么是算法:什么是算法: 广义地讲:算法是为完成一项任务所应当遵循广义地讲:算法是为完成一项任务所应当遵循的一步一步的规则的、精确的、无歧义的描述,它的一步一步的规则的、精确的、无歧义的描述,它的总步数是有限的。的总步数是有限的。 狭义地讲:算法是解决一个问题采取

3、的方法和步狭义地讲:算法是解决一个问题采取的方法和步骤的描述。骤的描述。下面通过两个简单的例子加以说明:下面通过两个简单的例子加以说明:1) 输入输入A、B、C。2) A与与B中大的一个放入中大的一个放入MAX中。中。3) 把把C与与MAX中大的一个放入中大的一个放入MAX中。中。4) 输出输出MAX,MAX即为最大数。即为最大数。例例3.1 输入三个数,然后输出其中最大的数。输入三个数,然后输出其中最大的数。 将三个数依次输入到变量、将三个数依次输入到变量、B、C中,设变量中,设变量MAX存放存放最大数。其算法如下:最大数。其算法如下: 3.1 算法及算法的表示算法及算法的表示 例例3.2

4、输入输入10个数,打印输出其中最大的数。个数,打印输出其中最大的数。算法设计如下:算法设计如下: (1输入输入1个数个数,存入变量存入变量A中中,将记录数据个数的变量将记录数据个数的变量N赋赋值为值为1,即,即N=1 (2将将A存入表示最大值的变量存入表示最大值的变量Max中,即中,即Max=A (3再输入一个值给再输入一个值给A,如果,如果AMax 那么那么 Max=A, 否则否则Max不变不变 (4让记录数据个数的变量增加让记录数据个数的变量增加1,即,即N=N+1 (5判断判断N是否小于是否小于10,若成立则转到第,若成立则转到第3步执行,否步执行,否则转到第则转到第6步步 (6打印输出

5、打印输出max3.1 算法及算法的表示算法及算法的表示 3.1.2 算法的特性算法的特性 有穷性有穷性确定性确定性有有0个或多个输入个或多个输入有一个或多个输出有一个或多个输出有效性有效性3.1 算法及算法的表示算法及算法的表示 3.1.3 算法的表示算法的表示 一、自然语言与伪代码表示算法一、自然语言与伪代码表示算法自然语言:就是指人们日常使用的语言,自然语言:就是指人们日常使用的语言,可以是汉语、英语或其它语言。可以是汉语、英语或其它语言。伪代码:是用介于自然语言和计算机语言伪代码:是用介于自然语言和计算机语言之间的文字和符号包括数学符号来描述算之间的文字和符号包括数学符号来描述算法。法。

6、 3.1 算法及算法的表示算法及算法的表示 例如:例例如:例3.1可用如下的伪代码表示可用如下的伪代码表示Begin算法开始)算法开始) 输入输入 A,B,C IF AB 那么那么 AMax 否则否则 BMax IF CMax 那么那么 CMaxPrint MaxEnd (算法结束算法结束)3.1 算法及算法的表示算法及算法的表示 二二 用传统流程图表示算法用传统流程图表示算法处理框起止框I/O框判断框流程线1、传统流程图中的基本符号、传统流程图中的基本符号3.1 算法及算法的表示算法及算法的表示 2、三种基本结构的表示、三种基本结构的表示(1顺序结构顺序结构条件语句1语句2YN语句1语句2(

7、2选择结构选择结构3.1 算法及算法的表示算法及算法的表示 (3循环结构循环结构a) 当型循环当型循环b) 直到循环直到循环条件语句组YN( b )条件( a )YN语句组3.1 算法及算法的表示算法及算法的表示 三种基本结构的特点:三种基本结构的特点:(1只有一个入口只有一个入口(2只有一个出口只有一个出口(3不存在死语句不存在死语句(4不存在死循环不存在死循环例:例: 例例3.2输入输入10个数,打印输出其中的最大的数的流程图个数,打印输出其中的最大的数的流程图3.1 算法及算法的表示算法及算法的表示 从从10个数中选出最大的数个数中选出最大的数的算法流程图的算法流程图NMaxMax =A

8、输入A开场再输入给AN=N+1打印Max完毕YNNY3.1 算法及算法的表示算法及算法的表示 3.1.4 用用NS流程图表示算法流程图表示算法 将全部算法写在一个矩形框内,在矩形内还可包含其将全部算法写在一个矩形框内,在矩形内还可包含其它从属于它的框它从属于它的框三种基本结构的三种基本结构的NS图表示:图表示:语句A语句B语句A语句B条件YN1、顺序结构、顺序结构2、选择结构、选择结构3.1 算法及算法的表示算法及算法的表示 (3循环结构循环结构a) 当型循环当型循环b) 直到循环直到循环例:例: 画出从画出从10个数中选出最大的数的个数中选出最大的数的NS 流程图流程图语句组当条件成立( a

9、 )语句组直到当条件成立( b )3.1 算法及算法的表示算法及算法的表示 传统流程图NMaxMax =A输入A开场再输入给AN=N+1打印Max完毕YNNY输入A当NMaxYN输入A3.1 算法及算法的表示算法及算法的表示 Private Sub Form_Click() Dim a%, max%, i% a = Val(InputBox(A=?) max = a For i = 2 To 10 a = Val(InputBox(A=?) If a max Then max = a Next i Print Max=; maxEnd Sub下面是例下面是例3.2的计算机的计算机 程序,即为用

10、计算机语言表示算法:程序,即为用计算机语言表示算法:3.1 算法及算法的表示算法及算法的表示 3.1.6 结构化程序设计方法补充)结构化程序设计方法补充)(一)、用计算机解决问题的过程(一)、用计算机解决问题的过程提出、分提出、分析问题析问题确定算确定算法模型法模型设计设计算法算法编写编写程序程序调试调试程序程序分析输分析输出结果出结果正确正确合理合理完毕完毕不正确不正确3.1 算法及算法的表示算法及算法的表示 (二)、结构化程序设计思想(二)、结构化程序设计思想自顶向下、逐步细化、模块化自顶向下、逐步细化、模块化自顶向下:先从全局、整体设计自顶向下:先从全局、整体设计逐步细化:将一个问题分解

11、成几个较小的问题逐步细化:将一个问题分解成几个较小的问题解决解决模块化:模块化: 将一个大任务分解成若干个较小的将一个大任务分解成若干个较小的部分,部分, 每每 个部分承担一定功能,称为个部分承担一定功能,称为“功功能模块能模块”例:给例:给100个整数,打印输出其中的素数个整数,打印输出其中的素数3.1 算法及算法的表示算法及算法的表示 S1NS流程图流程图输入输入100个数存入个数存入X1,x2,x100打印打印x1.x100中不等于中不等于0的数的数让让x1,x2,x100中的中的非素变为非素变为0S3S2输入输入xi当当i=100i=i+1i=1S1细化细化xi0当当i=100i=i+

12、1i=1YN打印打印xiS3细化细化3.1 算法及算法的表示算法及算法的表示 S1NS流程图流程图输入输入100个数存入个数存入X1,x2,x100打印打印x1.x100中不等于中不等于0的数的数让让x1,x100中中的非素变为的非素变为0S3S2S2细化细化判断判断xi是否是素数,是否是素数,若不是则将若不是则将xi=0当当i=100i=i+1i=1S21r=0rxi/2S21细化细化3.1 算法及算法的表示算法及算法的表示 输入输入100个数存入个数存入X1,x2,x100打印打印x1.x100中不等于中不等于0的数的数让让x1,x100中的非素变为中的非素变为0细化后的流程图细化后的流程

13、图输入输入xi当当i=100i=i+1i=1当当ixi/2i=i+1xi0当当i=100i=1YN打印打印xii=i+13.2 顺序结构顺序结构3.2.1 3.2.1 赋值语句赋值语句 形式形式: : 变量名表达式变量名表达式 对象对象. .属性表达式属性表达式 功能:功能: 将表达式的值赋值给变量名或指定将表达式的值赋值给变量名或指定对象的属性。对象的属性。 一般用于给变量赋值或对控件一般用于给变量赋值或对控件设定属性值设定属性值. . 例:例: sRate!=0.1 sRate!=0.1 Text1.Text Text1.Text 欢迎使用欢迎使用Visual Basic 6.0Visua

14、l Basic 6.0”说明:说明: 1 1 执行过程:先求表达式的值,然后将值赋执行过程:先求表达式的值,然后将值赋值给左边的变量。值给左边的变量。 2 2 右边的表达式可以是变量、常量、函数调右边的表达式可以是变量、常量、函数调用等特殊的表达式。用等特殊的表达式。 3 3 不要将不要将“”理解为数学上的等号:理解为数学上的等号: A=A+1 A=A+1 是表示将是表示将A A单元单元的值加后以放回到的值加后以放回到A A单元。单元。执行过程如右图执行过程如右图3.赋值符号赋值符号“=”左边一定只能是变量名或对象的属性引用,左边一定只能是变量名或对象的属性引用,不能是常量、符号常量、表达式。

15、不能是常量、符号常量、表达式。 下面的赋值语句都是错的:下面的赋值语句都是错的:5=X 左边是常量。左边是常量。Abs(X)=20 左边是函数调用,即是表达式。左边是函数调用,即是表达式。 5. 赋值符号赋值符号“=”两边的数据类型一般要求应一致。两边的数据类型一般要求应一致。 3.2 顺序结构顺序结构3.2.2 数据的输出数据的输出Print方法方法 Print方法的一般格式:方法的一般格式: 对象名对象名.Print,|;说明:说明: 对象名对象名. 可以是窗体名、图片框名,也可是立即窗口可以是窗体名、图片框名,也可是立即窗口“Debug”。若省略对象,则表示在当前窗体上输出。若省略对象,

16、则表示在当前窗体上输出。 用用Print方法在图片框和立即窗口对象中输出与在窗体方法在图片框和立即窗口对象中输出与在窗体对象中输出完全相同。对象中输出完全相同。 3.2 顺序结构顺序结构3.2.3 用户交互函数和过程用户交互函数和过程 1. InputBox函数函数变量名变量名=InputBox$(, , ) 其中其中:提示提示 提示信息提示信息,标题标题 标题区显示标题区显示,缺省缺省输入区缺省值。输入区缺省值。例如,要在屏幕上显示如下的对话框例如,要在屏幕上显示如下的对话框:3.2 顺序结构顺序结构 例如:有下列语句如下例如:有下列语句如下: Dim x% x= Val(InputBox(

17、“请输入一个数请输入一个数”, “输入框输入框”, 100) 语句执行后打开如下对话框。语句执行后打开如下对话框。缺省值标题提示3.2 顺序结构顺序结构2. MsgBox函数和函数和MsgBox过程过程 函数形式函数形式: 变量变量% = MsgBox(提示提示,按钮按钮图图标标+ 缺省按钮缺省按钮+形式形式,标题,标题) 过程形式过程形式: MsgBox 提示提示,按钮按钮图标图标 +缺省按缺省按钮钮+ 形式形式,标题标题图标标题提示信息命令按钮3.2 顺序结构顺序结构说明:说明: “标题和标题和“提示与提示与InputBox函数中对应的函数中对应的参数相同;参数相同; “按钮图标按钮图标

18、+缺省按钮缺省按钮+形式是整型表达形式是整型表达式,决定信息框按钮数目、出现在信息框上的图标式,决定信息框按钮数目、出现在信息框上的图标类型及操作模式类型及操作模式(见表见表3.1) 若程序中需要返回值,则使用函数,否则可若程序中需要返回值,则使用函数,否则可调用过程。调用过程。 3.2 顺序结构顺序结构按钮及图标值如下按钮及图标值如下:根据用户所选按钮,函数返根据用户所选按钮,函数返回回1717的整数值,其含义的整数值,其含义如下表如下表: :(表(表3-2)3-2)3.2 顺序结构顺序结构3.2.4 注释语句注释语句 其语法格式为:其语法格式为:Rem 或或 说明:说明:1. 指要包括的任

19、何注释文本。在指要包括的任何注释文本。在Rem关键字关键字和注释内容之间要加一个空格。可以用一个英文单引号和注释内容之间要加一个空格。可以用一个英文单引号“”来来代替代替Rem关键字。关键字。2. 如果在其他语句行后面使用如果在其他语句行后面使用Rem关键字,必需用冒号关键字,必需用冒号(:)与语句隔开。若用英文单引号与语句隔开。若用英文单引号“”,则在其他语句行后面,则在其他语句行后面不必加冒号不必加冒号(:)。例如:例如:Const PI=3.1415925 符号常量符号常量PIS=PI*r*r : Rem计算圆的面积计算圆的面积3.2 顺序结构顺序结构3.2.5 应用举例应用举例 例例3

20、.3 输入时间小时,分和秒),然后使用输出消息输入时间小时,分和秒),然后使用输出消息框输出总计多少秒。框输出总计多少秒。使用文本框输入数据,使用消息框输出计算结果,程序使用文本框输入数据,使用消息框输出计算结果,程序运行界面如图运行界面如图3-14所示。所示。3.2 顺序结构顺序结构图图3-14 程序运行界面程序运行界面3.2.5 应用举例应用举例例例3.4 编一程序,求一内半径编一程序,求一内半径R1=10cm,外半径,外半径R2=20cm的球环的体积。要求按四舍五入保留到小数点后的球环的体积。要求按四舍五入保留到小数点后4位。位。解:球的体积公式解:球的体积公式 :本题所求的球环面的体积

21、公式本题所求的球环面的体积公式 :3.2 顺序结构顺序结构334RV)(34343431323132RRRRV 选择结构是根据条件选择执行不同的分支语句,以完成选择结构是根据条件选择执行不同的分支语句,以完成问题的要求。在问题的要求。在Visual BasicVisual Basic程序设计中,使用程序设计中,使用IFIF语句和语句和Select CaseSelect Case语句来处理选择结构。其特点是:根据所给定的语句来处理选择结构。其特点是:根据所给定的条件成立条件成立TrueTrue或不成立或不成立FalseFalse),从各实际可能的不同),从各实际可能的不同分支中执行某一分支的相应

22、操作程序块),并且任何情况分支中执行某一分支的相应操作程序块),并且任何情况下总有下总有“无论条件多寡,必择其一;虽然条件众多,仅选其一无论条件多寡,必择其一;虽然条件众多,仅选其一的特性。的特性。 3.3 选择结构选择结构3.3.1 If条件语句条件语句 1. IfThen语句语句(单分支结构单分支结构) If Then 语句块语句块 End If 或或 If Then tyx例例:已知两个数已知两个数x和和y,比较它们的大小,比较它们的大小, 使得使得x大于大于y. If xy Then t=x : x=y: y=t End If 或或 If xy Then t=x: x=y: y=t 3

23、.3.1 If条件语句条件语句2. IfThenElse语句语句(双分支结构双分支结构) If Then Else End If If Then Else 双分支选择结构执行过程双分支选择结构执行过程 3.3.1 If条件语句条件语句例如:输出例如:输出x,y两个中值较大的一个值。两个中值较大的一个值。IF XY Then Print XElse Print YEnd If也可以写成如下的单行形式:也可以写成如下的单行形式: IF XY Then Print X Else Print Y 3.3.1 If条件语句条件语句 例例3.5 设计一个求解一元二次方程的程序,要求考虑实设计一个求解一元二

24、次方程的程序,要求考虑实根、虚根等情况。根、虚根等情况。算法分析:算法分析:(1一元二次方程根的计算公式:一元二次方程根的计算公式:(2求解首先要输入方程的系数求解首先要输入方程的系数a,b,c,计算的值,由其值是,计算的值,由其值是否大于等于零来决定是实根还是虚根。否大于等于零来决定是实根还是虚根。 3.3.1 If条件语句条件语句aacbbX2422, 13. 条件函数条件函数Iif() IIf函数可用来执行简单的条件判断操作,它相当于函数可用来执行简单的条件判断操作,它相当于IFThen.Else结构。结构。IIF函数的使用格式:函数的使用格式:IIF(,)说明:说明: (1)与与IF语

25、句中的表达式相同,通常是关系表语句中的表达式相同,通常是关系表达式、逻辑表达式,也可为算术表达式。如果是算术表达式,达式、逻辑表达式,也可为算术表达式。如果是算术表达式,其值按非其值按非0为为True,0为为False进行判断。进行判断。 (2当当为真时,函数返回为真时,函数返回的值,当的值,当为假时,函数返回为假时,函数返回的值。的值。 (3)、可以是任何表达式。可以是任何表达式。例如:例如:Max=IIFXY, X, Y )它与下面语句等价:)它与下面语句等价: IF XY Then Max=x Else Max=Y 3.3.1 If条件语句条件语句4. IfThenElseIf语句语句(

26、多分支结构多分支结构) 形式形式: If Then ElseIf Then Else 语句块语句块 n+1 End If执行过程 3.3.1 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 例例3.6 输入一学生成绩,评定其等级。方法是:输入一学生成绩,评定其等级。方法是:90100分分为为“优秀优秀”,80

27、89分为分为“良好良好”,7079分为分为“中等中等”,6069分为分为“及格及格”,60分以为分以为“不合格不合格” 3.3.1 If条件语句条件语句3.3.2 Select Case语句情况语句)语句情况语句)形式:形式:Select Case 变量或表达式变量或表达式Case 表达式列表表达式列表1语句块语句块1Case 表达式列表表达式列表2语句块语句块2Case Else语句块语句块n+1End Select数值型或字符串表达式3.3 选择结构选择结构 说明:说明: :与:与同类型的同类型的下面四种形式之一:下面四种形式之一: 表达式表达式 A +5 一组枚举表达式一组枚举表达式(用

28、逗号分隔用逗号分隔) 2, 4, 6, 8 表达式表达式1 To 表达式表达式2 60 to 100 Is 关系运算符表达式关系运算符表达式 Is 603.3 选择结构选择结构例如:将例例如:将例3.3 使用使用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 Select3.3 选择结构选择结

29、构2. Choose函数函数Choose函数使用格式:函数使用格式:Choose(,. )说明:说明: Choose函数根据函数根据的值来决定返回其的值来决定返回其后后中的那个表达式的值。假设中的那个表达式的值。假设的值为的值为1,则返回,则返回的值,假设的值,假设的值为的值为2,则返回,则返回的值,以此类推。的值,以此类推。假设假设的值小于的值小于1或大于或大于n,则函数返回,则函数返回Null。例如:根据例如:根据Nop的值,得到的值,得到+、-、*,/的运算符,可的运算符,可由理面语句来实现。由理面语句来实现。Nop= IntRnd * 4)+ 1OP= ChooseNop, +, -,

30、 *, /)3.3 选择结构选择结构3.3.3 选择结构的嵌套选择结构的嵌套下面是两种正确的嵌套形式:下面是两种正确的嵌套形式:(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 IF3.3 选择结构选择结构 注意:只要在一个分支内嵌套,不出现交叉,满足结构规注意:只要在一个分支内嵌套,不出现交叉,满足结构规则,其嵌套的形式将有很多种,嵌套层次

31、也可以任意多。对则,其嵌套的形式将有很多种,嵌套层次也可以任意多。对于多层于多层IF嵌套结构中,要特别注意嵌套结构中,要特别注意IF与与Else的配对关系,一个的配对关系,一个Else必须与必须与IF配结,配对的原则是:在写含有多层嵌套的程序配结,配对的原则是:在写含有多层嵌套的程序时,建议使用缩进对齐方式,这样容易阅读和维护。时,建议使用缩进对齐方式,这样容易阅读和维护。例例3.7 设计一个用户身份验证程序,运行界面如下图所示。 3.3 选择结构选择结构 循环结构是一种重复执行的程序结构。它判断给定的条件,循环结构是一种重复执行的程序结构。它判断给定的条件,如果条件成立,即为如果条件成立,即

32、为“真真”(True),则重复执行某一些语句),则重复执行某一些语句称为循环体);否则,即为称为循环体);否则,即为“假假”(False),则结束循环。通),则结束循环。通常循环结构有常循环结构有“当型循环当型循环”(先判断条件,后执行循环和(先判断条件,后执行循环和“直到直到型循环型循环”(先执行循环,再判断条件两种。在(先执行循环,再判断条件两种。在Visual Basic中,中,实现循环结构的语句主要有实现循环结构的语句主要有4种:种: ForNext语句语句 Do While/UntilLoop DoLoop While/Until语句语句 WhileWend语句语句3.4 循环结构循

33、环结构3.4.1 ForNext3.4.1 ForNext循环语句循环语句 For For循环语句循环语句 ( (一般用于循环次数一般用于循环次数已知已知) )形式:形式: For For 循环变量初值循环变量初值 to to 终值终值 Step Step 步长步长 语句块语句块Exit ForExit For 语句块语句块 Next Next 循环变量循环变量 循环变量在终值内 语句块 Exit For 语句块 循环变量加步长 T F 循 环 变 量 得 初值 循环体 0 初值初值终值终值 =1 时时,可省略可省略终值终值=0 死循环死循环 步长步长3.4 循环结构循环结构循环次数循环次数)

34、 1(步长初值终值Int例例: For I=2 To 13 Step 3 Print I , Next I Print “I=“, I 4) 1(3213Int循环执行次数循环执行次数 输出输出I的值分别为的值分别为: 2 5 8 11 出了循环输出为出了循环输出为: I=143.4 循环结构循环结构例例3.8 编程计算:编程计算:S=1+2+3+100Dim S%, I%S=0 累加前变量累加前变量S为为0For I=1 to 100 S=S+INext IPrint S=,S 当N=100N=N+1打印SS=0,N=1S=S+N例例3-8 算法流程图算法流程图3.4 循环结构循环结构形式形

35、式1:(当型循环):(当型循环) Do While|Until 语句块语句块 Exit Do 语句块语句块 Loop 条 件 F T Exit D o 语 句 块 语 句 块 D o W hile Loop 执 行 过 程 3.4.2 DoLoop循环语句循环语句 3.4 循环结构循环结构形式形式2:(直到循环)直到循环)Do 语句块语句块 Exit Do 语句块语句块Loop While|Until T F Exit D o 语 句 块 语 句 块 条 件 D o Loop W hile 的 执 行 过 程 3.4 循环结构循环结构条 件语句块语句块TFExit Do条 件语句块语句块TFE

36、xit Do Do UntilLoop执行过程执行过程 DoLoop Until执行过程执行过程 3.4 循环结构循环结构说明:说明: (1当使用当使用While构成循环时,当条件为构成循环时,当条件为“真真”,则反复执行循环体,当条件为,则反复执行循环体,当条件为“假假”,则退出循,则退出循环。环。 (2当使用当使用Until 构成循环时,当条件为构成循环时,当条件为“假假”,则反复执行循环体,直到条件成立,即为,则反复执行循环体,直到条件成立,即为“真真时,则退出循环。时,则退出循环。 (3在循环体内一般应有一个专门用来改变条件表达式中在循环体内一般应有一个专门用来改变条件表达式中变量的语

37、句,以使随着循环的执行,条件趋于不成立或成变量的语句,以使随着循环的执行,条件趋于不成立或成立),最后达到退出循环。立),最后达到退出循环。 (4语句语句Exit Do的作用是退出它所在的循环结构,它只能的作用是退出它所在的循环结构,它只能用在用在DO/Loop结构中,并且常常是同选择结构一起出现在循环结构中,并且常常是同选择结构一起出现在循环结构中,用来实现当满足某一条件时提前退出循环。结构中,用来实现当满足某一条件时提前退出循环。 3.4 循环结构循环结构3.4.3 WhileWend语句语句使用格式如下:使用格式如下:While Wend 说明:该语句的功能与说明:该语句的功能与Do W

38、hile .Loop实现的循环完全相同。实现的循环完全相同。例例3.9:用:用doLoop语句改写前面的例题语句改写前面的例题3.83.4 循环结构循环结构例例3.10 求两个整数的最大公约数、最小公倍数求两个整数的最大公约数、最小公倍数Dim n%,m%,nm%,r%m=Val(InputBox(m=)n=Val(InputBox(n=)nm=n*mIf mn Then t=m: m=n: n=t r=m mod n Do While (r 0) m=n n=r r= m mod n LoopPrint 最大公约数最大公约数=, n Print 最小公倍数最小公倍数=, nm/n 算法流程图

39、算法流程图3.4 循环结构循环结构 3.4.4 循环的嵌套循环的嵌套多重循环结构多重循环结构 如果在一个循环内完整地包含另一个循环结构,如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。层称为三重循环。 上面介绍的几种循环控制结构可以相互嵌套,上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:下面是几种常见的二重嵌套形式:3.4 循环结构循环结构(1For I=. . For J=. . Next J

40、 . Next I(2For I=. . Do While/Until . . Loop . Next I(3Do While. . For J=. . Next J . Loop(4Do While/Until. . Do While/Until . . Loop . Loop3.4 循环结构循环结构例如:打印九九乘法表例如:打印九九乘法表. For i = 1 To 9 For j = 1 To 9 se = i & & j & = & i * j Picture1.Print Tab(j - 1) * 9 + 1); se; Next j Picture1

41、.Print Next i3.4 循环结构循环结构 例例3.11 将一张面值为将一张面值为100元的人民币等值换成元的人民币等值换成100张张5元、元、1元和元和0.5元的零钞,要求每种零钞不少于元的零钞,要求每种零钞不少于1张,问有哪几种组张,问有哪几种组合?合? 编程分析:如果用编程分析:如果用X,Y,Z来分别代表来分别代表5元、元、1元和元和0.5元的元的零钞的张数,根据题意只能得到下面两个方程。零钞的张数,根据题意只能得到下面两个方程。 X+Y+Z=100 5X+Y+0.5Z=100 3.4 循环结构循环结构 For i =1 To 10 For j=1 To 20 Next j Ne

42、xt i For i =1 To 10 Next i For i =1 To 10 Next i 对于循环的嵌套,要注意以下事项:对于循环的嵌套,要注意以下事项: (1) 内循环变量与外循环变量不能同名;内循环变量与外循环变量不能同名; (2) 外循环必须完全包含内循环,不能交叉;外循环必须完全包含内循环,不能交叉; (3) 不能从循环体外转向循环体内,也不能从外循环转向内不能从循环体外转向循环体内,也不能从外循环转向内循环循环. 下面是正确的嵌套下面是正确的嵌套3.4 循环结构循环结构 For i =1 To 10 For j=1 To 20 Next i Next j For i =1 T

43、o 10 For i=1 To 20 Next i Next i下面是不正确的嵌套下面是不正确的嵌套3.4 循环结构循环结构对于循环的嵌套,要注意以下事项:对于循环的嵌套,要注意以下事项:(1) 内循环变量与外循环变量不能同名;内循环变量与外循环变量不能同名;(2) 外循环必须完全包含内循环,不能交叉;外循环必须完全包含内循环,不能交叉; (3) 不能从循环体外转向循环体内,也不不能从循环体外转向循环体内,也不能从外循环转向内循环能从外循环转向内循环. 3.4 循环结构循环结构3.4.5 几种循环语句比较几种循环语句比较 For.toNextDo while/until.Loopdo.Loop

44、 W hile/until.循 环 类 型当 型 循 环当 型 循 环直 到 循 环循 环 控 制 条件循 环 变 量 大 于或 小 于 终 值条 件 成 立 /不 成 立执 行 循 环条 件 成 立 /不 成 立执 行 循 环循 环 变 量 初值在 FOR 语 句 行中在 DO 之 前在 DO 之 前使 循 环 结 束For 语 句 中 无需 专 门 语 句必 须 用 专 门 语 句必 须 使 用 专 门 语 句使 用 场 合循 环 次 数 容 易确 定循 环 /结 束 控 制 条件 易 给 出循 环 /结 束 控 制 条件 易 给 出3.4 循环结构循环结构3.4.6 循环结构与选择结构的

45、嵌套循环结构与选择结构的嵌套 在循环结构中可以完整嵌套选择结构即整个选择结构在循环结构中可以完整嵌套选择结构即整个选择结构都属于循环体。在选择结构中嵌套循环结构时,则要求整都属于循环体。在选择结构中嵌套循环结构时,则要求整个循环结构必须完整地嵌套在一个分支内,一个循环结构个循环结构必须完整地嵌套在一个分支内,一个循环结构不允许出现在两个或两个以上的分支内。不允许出现在两个或两个以上的分支内。 3.4 循环结构循环结构(1For I= IF Then End IF Next I(6) IF Then For I= End IF Next I(5Select Case For I= Case Ca

46、se Next I End Select(3For I= IF Then Next I End IF(2IF Then For I= Next I End IF(4For I= Select Case Case Case End Select Next I3.4 循环结构循环结构3.5.1 Goto 语句语句 形式形式: Go To 标号标号|行号行号 作用是无条件地转移到标号或行号指定的那行作用是无条件地转移到标号或行号指定的那行语句语句. 标号是一个字符序列标号是一个字符序列,行号是一个数字序行号是一个数字序列。列。例如:例如: Lp: goto lp 3.5 3.5 其它控制语句其它控制

47、语句 3.5.2 Exit 语句语句 Exit 语句用于退出语句用于退出 Do.Loop、For.Next、Function或或Sub代码块。代码块。 对应的使用格式为:对应的使用格式为:Exit Do、Exit For、Exit Function、Exit Sub。分别表示退出。分别表示退出DO循环、循环、For循环、函循环、函数过程、子过程。数过程、子过程。例如:例如: 下面的例子是使用下面的例子是使用 Exit 语句退出语句退出 For.Next 循环、循环、Do.Loop 循环及子过程。循环及子过程。3.5 3.5 其它控制语句其它控制语句 Private Sub Form_Click

48、()Dim I%, Num% Do While True 建立无穷循环。建立无穷循环。 For I = 1 To 100 循环循环 100 次。次。 Num = Int(Rnd * 100) 生成一个生成一个099的随机数。的随机数。 Select Case Num Case 10: Exit For 退出退出 For.Next 循环。循环。 Case 50: Exit Do 退出退出 Do.Loop 循环。循环。 Case 64: Exit Sub 退出子过程。退出子过程。 End Select Next I LoopEnd Sub3.5 3.5 其它控制语句其它控制语句 3.5.3 End

49、 语句语句 形式:形式: End 功能:结束一个程序的运行。功能:结束一个程序的运行。 在在Visual Basic中还有多种形式的中还有多种形式的End语句,语句,用于结束一个程序块或过程。用于结束一个程序块或过程。 其形式有:其形式有: End If End Select End Type End With End Sub End Function等,它们与对应的语句配对使等,它们与对应的语句配对使用。用。3.5 3.5 其它控制语句其它控制语句 3.5.4 暂停语句暂停语句 Stop语句用来暂停程序的执行,相当于在事件代语句用来暂停程序的执行,相当于在事件代码中设置断点。码中设置断点。

50、语法格式为:语法格式为: Stop说明:说明:1. Stop语句的主要作用是把解释程序置为中断语句的主要作用是把解释程序置为中断(Break)形式,以便对程序进行检查和调试。可以在程序的形式,以便对程序进行检查和调试。可以在程序的任何地方放置任何地方放置Stop语句,当执行语句,当执行Stop语句时,系统将语句时,系统将自动打开立即窗口。自动打开立即窗口。2. 与与End语句不同。语句不同。 3.5 3.5 其它控制语句其它控制语句 3.5.5 With.End With 语句语句 形式:形式: With 对象名对象名 语句块语句块 End With 说明:说明:With 语句可以对某个对象执

51、行一系列的语句,语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称。而不用重复指出对象的名称。 例如,要改变一个对象的多个属性,可以在例如,要改变一个对象的多个属性,可以在 With 控制控制结构中加上属性的赋值语句,这时候只是引用对象一次而不结构中加上属性的赋值语句,这时候只是引用对象一次而不是在每个属性赋值时都要引用它。下面的例子显示了如何使是在每个属性赋值时都要引用它。下面的例子显示了如何使用用 With 语句来给同一个对象的几个属性赋值。语句来给同一个对象的几个属性赋值。3.5 3.5 其它控制语句其它控制语句 例如,需要对同一对象设置几个属性。途径之一是使用例如,需要对同一

52、对象设置几个属性。途径之一是使用多条语句。多条语句。Private Sub Form_Load() Command1.Caption = 退出退出(E&xit) Command1.Top = 500 Command1.Left = 4500 Command1.Enabled = TrueEnd Sub3.5 3.5 其它控制语句其它控制语句 使用使用With.End With 语句,上面程序的代码如下。语句,上面程序的代码如下。Private Sub Form_Load() With Command1 .Caption = 退出退出(E&xit) .Top = 500 .Lef

53、t = 4500 .Enabled = True End WithEnd Sub 3.5 3.5 其它控制语句其它控制语句 3.5.6 On Error语句与语句与Resume 语句语句 3.5 3.5 其它控制语句其它控制语句 1设置错误陷阱设置错误陷阱用用On Error语句设置错误陷阱,捕捉错误,形式如下:语句设置错误陷阱,捕捉错误,形式如下:(1On Error GoTo语句标号语句标号 发生错误时,转到发生错误时,转到语句标号语句标号所指示的程序块所指示的程序块(2On Error Resume Next 发生错误时,忽略发生错误时,忽略错误行,继续执行下一语句错误行,继续执行下一语

54、句(3On Error GoTo 0 禁止当前过程中任何已禁止当前过程中任何已启动的错误启动的错误3.5.6 On Error语句与语句与Resume 语句语句 3.5 3.5 其它控制语句其它控制语句 2编写错误处理程序编写错误处理程序 编写错误处理程序一般要使用到编写错误处理程序一般要使用到Err 对象,它是一对象,它是一个系统对象,在个系统对象,在Visual Basic中,可以通过中,可以通过Err对象来对象来获取错误的消息。当出现获取错误的消息。当出现Visual Basic错误时,有关错误时,有关错误的信息存储在错误的信息存储在Err对象中。对象中。Err对象每次只维护一对象每次只

55、维护一个错误的信息。当出现新的错误时,个错误的信息。当出现新的错误时,Err对象将更新为对象将更新为新的错误信息。新的错误信息。 Err对象的默认属性是对象的默认属性是Number属性。当运行时发生属性。当运行时发生错误时,错误时,Err对象的属性被填入明确识别错误的信息以对象的属性被填入明确识别错误的信息以及处理这个错误所使用的信息。及处理这个错误所使用的信息。 3.5.6 On Error语句与语句与Resume 语句语句 3.5 3.5 其它控制语句其它控制语句 3退出错误处理在错误处理程序中,当遇到 Exit Sub、Exit Function、End Sub、End Function

56、等语句时,将退出错误捕获。在错误处理程序结束后,要恢复原有的运行,可用Resume 语句。语法格式为:(1Resume 重新执行产生错误的语句(2Resume Next 重新执行产生错误的语句的下一语句(3Resume 语句标号 从语句标号初恢复执行3.5 3.5 其它控制语句其它控制语句 例如,下面的例如,下面的Form_Click()过程是一个错误处理过程的典型用法。过程是一个错误处理过程的典型用法。Private Sub Form_Click() On Error GoTo out Dim x As Single, y As Single x = 1 / y 引发一个引发一个除以零除以零

57、的错误的错误 Exit Subout: MsgBox Err.Number 输出错误信息号输出错误信息号 MsgBox Err.Description 输出错误信息输出错误信息 检查是否发生检查是否发生除以零除以零的错误的错误 If Err.Number = 11 Then y = y + 1 End If ResumeEnd Sub3.6 应用程序举例应用程序举例3.6.1 素数与哥德巴赫猜想素数与哥德巴赫猜想 例例3.12 判断一个给定的整数是否为素数。判断一个给定的整数是否为素数。 算法思路:素数指除了能被算法思路:素数指除了能被1和自身外,不能被其他整和自身外,不能被其他整数整除的自然

58、数。判断整数数整除的自然数。判断整数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(Sq

59、r(N)For I = 2 To K If N Mod I = 0 Then Exit ForNext IIf IK Then Print N; 是素数是素数Else Print N; 不是素数不是素数End If 3.6 应用程序举例应用程序举例算法流程图算法流程图程序代码:程序代码: 例例3.13 编一程序验证哥德巴赫猜想:一个大于等于编一程序验证哥德巴赫猜想:一个大于等于6的偶数的偶数可以表示为两个素数之和。例如:可以表示为两个素数之和。例如: 6=3+3 8=3+5 10= 3+7 算法设计:设算法设计:设N为大于等于为大于等于6的的任一偶数,将其分解为任一偶数,将其分解为N1和和N2

60、两两个数,使用个数,使用N1+N2=N,分别判断,分别判断N1和和N2是否为素数,若都是,则是否为素数,若都是,则为一组解。若为一组解。若N1不是素数,就不必不是素数,就不必再检查再检查N2是否素数。先从是否素数。先从N1=3开开始,直到始,直到N1=N/2为止。算法流程图为止。算法流程图如图如图4-29所示。将程序代码写到窗所示。将程序代码写到窗体的单击事件中。体的单击事件中。实现上面算法的程序代码如下:实现上面算法的程序代码如下:3.6 应用程序举例应用程序举例Private Sub Form_Click() Dim N%, N1%, N2%, I%, K1%, K2% N=Val(InputBox(输入大于输入大于6的偶数的偶数) For N1 = 3 To

温馨提示

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

评论

0/150

提交评论