03程序设计的3种基本结构

上传人:工**** 文档编号:584817473 上传时间:2024-09-01 格式:PPT 页数:87 大小:329.02KB
返回 下载 相关 举报
03程序设计的3种基本结构_第1页
第1页 / 共87页
03程序设计的3种基本结构_第2页
第2页 / 共87页
03程序设计的3种基本结构_第3页
第3页 / 共87页
03程序设计的3种基本结构_第4页
第4页 / 共87页
03程序设计的3种基本结构_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《03程序设计的3种基本结构》由会员分享,可在线阅读,更多相关《03程序设计的3种基本结构(87页珍藏版)》请在金锄头文库上搜索。

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

2、t Exit ForFor语句、语句、Do/LoopDo/Loop循环结构的使用,掌握多重循环;循环结构的使用,掌握多重循环; (5 5)能够运用)能够运用3 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

4、存放存放最大数。其算法如下:最大数。其算法如下: 3.1 算法及算法的表示算法及算法的表示 例例3.2 输入输入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

5、是是否否小小于于10,若若成成立立则则转转到到第第(3)步步执执行行,否否则转到第(则转到第(6)步)步 (6)打印输出)打印输出max3.1 算法及算法的表示算法及算法的表示 3.1.2 算法的特性算法的特性 1有穷性有穷性2确定性确定性3有有0个或多个输入个或多个输入4有一个或多个输出有一个或多个输出5有效性有效性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.

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

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

9、环结构)循环结构a) 当型当型循环循环b) 直到循环直到循环例:例: 画出从画出从10个数中选出最大的数的个数中选出最大的数的NS 流程图流程图语句组当条件成立( a )语句组直到当条件成立( 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

10、(A=?) If a max Then max = a Next i Print Max=; maxEnd Sub下面是例下面是例3.2的计算机的计算机 程序,即为用计算机语言表示算法:程序,即为用计算机语言表示算法:3.1 算法及算法的表示算法及算法的表示 3.1.6 结构化程序设计方法(补充)结构化程序设计方法(补充)(一)、用计算机解决问题的过程(一)、用计算机解决问题的过程提出、分提出、分析问题析问题确定算确定算法模型法模型设计设计算法算法编写编写程序程序调试调试程序程序分析输分析输出结果出结果正确正确合理合理结束结束不正确不正确3.1 算法及算法的表示算法及算法的表示 (二)、结构化

11、程序设计思想(二)、结构化程序设计思想自顶自顶向下、逐步细化、模块化向下、逐步细化、模块化自顶自顶向下:向下:先从全局、整体设计先从全局、整体设计逐步细化:逐步细化:将一个问题分解成几个较小的问题解决将一个问题分解成几个较小的问题解决模块化:模块化: 将一个大任务分解成若干个较小的部分,将一个大任务分解成若干个较小的部分, 每每 个部分承担一定功能,称为个部分承担一定功能,称为“功能模功能模块块”例:给例:给100个整数,打印输出其中的素数个整数,打印输出其中的素数3.1 算法及算法的表示算法及算法的表示 S1NS流程图流程图输入输入100个数存入个数存入X1,x2,x100打印打印x1.x1

12、00中中不等于不等于0的数的数让让x1,x2,x100中的中的非素变为非素变为0S3S2输入输入xi当当i=100i=i+1i=1S1细化细化xi0当当i=100i=i+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 算法及算法的表示算法及算法的表示

13、 输入输入100个数存入个数存入X1,x2,x100打印打印x1.x100中中不等于不等于0的数的数让让x1,x100中中的非素变为的非素变为0细化后的流程图细化后的流程图输入输入xi当当i=100i=i+1i=1当当ixi/2i=i+1xi0当当i=100i=1YN打印打印xii=i+13.2 顺序结构顺序结构3.2.1 3.2.1 赋值语句赋值语句 形式形式: : 变量名表达式变量名表达式 对象对象.属性表达式属性表达式 功能:功能: 将表达式的值赋值给变量名或指定对象的属性。将表达式的值赋值给变量名或指定对象的属性。 一般用于给变量赋值或对控件设定属性值一般用于给变量赋值或对控件设定属性

14、值. 例:例: sRate!=0.1 Text1.Text 欢迎使用欢迎使用Visual Basic 6.0”说明:说明: 1 执行过程:先求表达式的值,然后将值赋值给左边的变量执行过程:先求表达式的值,然后将值赋值给左边的变量。 2 右边的表达式可以是变量、常量、函数调用等特殊的表达式。右边的表达式可以是变量、常量、函数调用等特殊的表达式。 3 不要将不要将“”理解为数学上的等号:理解为数学上的等号: A=A+1 是表示将是表示将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 顺序结构顺序结构 例如:有下列语句如下例如:有下列语句如

17、下: Dim x% x= Val(InputBox(“请输入一个数请输入一个数”, “输入框输入框”, 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 注释语句注释语句 其语法格式为:

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

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

21、的体积公式 :本题所求的球环面的体积公式本题所求的球环面的体积公式 :3.2 顺序结构顺序结构 选择结构是根据条件选择执行不同的分支语句,以完成选择结构是根据条件选择执行不同的分支语句,以完成问题的要求。在问题的要求。在Visual Basic程序设计中,使用程序设计中,使用IF语句和语句和Select Case语句来处理选择结构。其特点是:根据所给定的语句来处理选择结构。其特点是:根据所给定的条件成立(条件成立(True)或不成立(或不成立(False),),从各实际可能的不同从各实际可能的不同分支中执行某一分支的相应操作(程序块),并且任何情况分支中执行某一分支的相应操作(程序块),并且任

22、何情况下总有下总有“无论条件多寡,必择其一;虽然条件众多,仅选其无论条件多寡,必择其一;虽然条件众多,仅选其一一”的特性。的特性。 3.3 选择结构选择结构3.3.1 If条件语句条件语句 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 3.3.1 If条件语句条件语句2. IfThenElse语句语句(双分支结

23、构双分支结构) 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条件语句条件语句3. 条件函数条件函数Iif() IIf函函数数可可用用来来执执行行简简单单的的条条件件判判断断操操作作,它它相相当当于于IFThen.Else结构。结构。IIF函数的使用格式:函数的使用格式:IIF(,)说明:说明: (1)与与IF语语句句中中的的表表达达式式相相同同,通通常常是是关关系系表表达达式式、逻逻辑辑表表达达式式,也也可可为

25、为算算术术表表达达式式。如如果果是是算算术术表表达达式式,其值按非其值按非0为为True,0为为False进行判断。进行判断。 (2)当当为为真真时时,函函数数返返回回的的值值,当当为假时,函数返回为假时,函数返回的值。的值。 (3)、可以是任何表达式。可以是任何表达式。例如:例如:Max=IIF(XY, X, Y )它与下面语句等价:它与下面语句等价: IF XY Then Max=x Else Max=Y 3.3.1 If条件语句条件语句4. IfThenElseIf语句语句(多分支结构多分支结构) 形式形式: If Then ElseIf Then Else 语句块语句块 n+1 End

26、 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分分为为“优秀优秀”,8089分为分为“良好良好”,7079分为分为“中等中等”,6069分为分为“及格及格”,60分以为分以为“不合格不合

27、格” 3.3.1 If条件语句条件语句3.3.2 Select Case语句(情况语句)语句(情况语句)形式:形式:Select Case 变量或表达式变量或表达式Case 表达式列表表达式列表1语句块语句块1Case 表达式列表表达式列表2语句块语句块2Case Else语句块语句块n+1End Select数值型或字符串表达式3.3 选择结构选择结构 说明:说明: :与:与同类型的同类型的下面四种形式之一:下面四种形式之一: 表达式表达式 A +5 一组枚举表达式一组枚举表达式(用逗号分隔用逗号分隔) 2, 4, 6, 8 表达式表达式1 To 表达式表达式2 60 to 100 Is 关

28、系运算符表达式关系运算符表达式 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 选择结构选择结构2. Choose函数函数Choose函数使用格式:函数使用格式:Choose(,. )说明:说明: Cho

29、ose函函数数根根据据的的值值来来决决定定返返回回其其后后中中的的那那个个表表达达式式的的值值。如如果果的的值值为为1,则则返返回回的的值值,如如果果的的值值为为2,则则返返回回的的值值,以以此此类类推推。若若的的值值小小于于1或或大大于于n,则函数返回则函数返回Null。例例如如:根根据据Nop的的值值,得得到到+、-、*,/的的运运算算符符,可可由由理理面面语语句来实现。句来实现。Nop= Int(Rnd * 4)+ 1OP= Choose(Nop, +, -, *, /)3.3 选择结构选择结构3.3.3 选择结构的嵌套选择结构的嵌套下面是两种正确的嵌套形式:(1) IF Then .

30、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 选择结构选择结构 注注意意:只只要要在在一一个个分分支支内内嵌嵌套套,不不出出现现交交叉叉,满满足足结结构构规规则则,其其嵌嵌套套的的形形式式将将有有很很多多种种,嵌嵌套套层层次次也也可可以以任任意意多多。对对于于多多层层IF嵌嵌套套结结构构中中,要要特特别别注注意意IF与与Else的的配配对对关关系系,一一

31、个个Else必必须须与与IF配配结结,配配对对的的原原则则是是:在在写写含含有有多多层层嵌嵌套套的的程程序序时,建议使用缩进对齐方式,这样容易阅读和维护。时,建议使用缩进对齐方式,这样容易阅读和维护。例例3.7 设计一个用户身份验证程序,运行界面如下图所示。 3.3 选择结构选择结构 循循环环结结构构是是一一种种重重复复执执行行的的程程序序结结构构。它它判判断断给给定定的的条条件件,如如果果条条件件成成立立,即即为为“真真”(True),则则重重复复执执行行某某一一些些语语句句(称称为为循循环环体体);否否则则,即即为为“假假”(False),则则结结束束循循环环。通通常常循循环环结结构构有有

32、“当当型型循循环环”(先先判判断断条条件件,后后执执行行循循环环)和和“直直到到型型循循环环”(先先执执行行循循环环,再再判判断断条条件件)两两种种。在在Visual Basic中,实现循环结构的语句主要有中,实现循环结构的语句主要有4种:种: ForNext语句语句 Do While/UntilLoop DoLoop While/Until语句语句 WhileWend语句语句3.4 循环结构循环结构3.4.1 3.4.1 ForNextForNext循环语句循环语句 For循环语句循环语句 (一般用于循环次数已知一般用于循环次数已知)形式:形式: For 循环变量初值循环变量初值 to 终值

33、终值 Step 步长步长 语句块语句块Exit For 语句块语句块 Next 循环变量循环变量循环体 0 初值初值终值终值 =1 时时,可省可省略略终值终值=0 死循环死循环 步长步长3.4 循环结构循环结构循环次数循环次数例例: For I=2 To 13 Step 3 Print I , Next I Print “I=“, I 循环执行次数循环执行次数 输出输出I的值分别为的值分别为: 2 5 8 11 出了循环输出为出了循环输出为: I=143.4 循环结构循环结构例例3.8 编程计算:编程计算:S=1+2+3+100Dim S%, I%S=0 累加前变量累加前变量S为为0For I

34、=1 to 100 S=S+INext IPrint S=,S 当N=100N=N+1打印SS=0,N=1S=S+N例例3-8 算法流程图算法流程图3.4 循环结构循环结构形式形式1:(当型循环):(当型循环) Do While|Until 语句块语句块 Exit Do 语句块语句块 Loop3.4.2 DoLoop循环语句循环语句 3.4 循环结构循环结构形式形式2:(直到循环)直到循环)Do 语句块语句块 Exit Do 语句块语句块Loop While|Until 3.4 循环结构循环结构条 件语句块语句块TFExit Do条 件语句块语句块TFExit Do Do UntilLoop执

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

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

37、实现现的的循环完全相同。循环完全相同。例例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 算法流程图算法流程图3.4 循环

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

39、)For I=. . Do While/Until . . Loop . Next I(3)Do While. . For J=. . Next J . Loop(4)Do 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.Print Next i3.4 循环结构循环结构

40、 例例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 Next i For i =1 To 10 Next i For

41、 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 To 10 For i=1 To 20 Next i Next

42、 i下面是不正确的嵌套下面是不正确的嵌套3.4 循环结构循环结构对于循环的嵌套,要注意以下事项:对于循环的嵌套,要注意以下事项:(1) 内循环变量与外循环变量不能同名;内循环变量与外循环变量不能同名;(2) 外循环必须完全包含内循环,不能交叉;外循环必须完全包含内循环,不能交叉; (3) 不能从循环体外转向循环体内,也不能从外不能从循环体外转向循环体内,也不能从外循环转向内循环循环转向内循环. 3.4 循环结构循环结构3.4.5 几种循环语句比较几种循环语句比较 3.4 循环结构循环结构3.4.6 循环结构与选择结构的嵌套循环结构与选择结构的嵌套 在循环结构中可以完整嵌套选择结构即整个选择结构

43、在循环结构中可以完整嵌套选择结构即整个选择结构都属于循环体。在选择结构中嵌套循环结构时,则要求整都属于循环体。在选择结构中嵌套循环结构时,则要求整个循环结构必须完整地嵌套在一个分支内,一个循环结构个循环结构必须完整地嵌套在一个分支内,一个循环结构不允许出现在两个或两个以上的分支内。不允许出现在两个或两个以上的分支内。 3.4 循环结构循环结构(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 The

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

45、于退出 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()Dim I%, Num% Do While True 建立无穷循

46、环。建立无穷循环。 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 语句语句 形式:形式: End 功能:结束一个程序的运行。功能:结

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

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

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

50、rm_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 .Left = 4500 .Enabled = True End WithEnd Sub 3.5 3.5

51、 其它控制语句其它控制语句 3.5.6 On Error语句与语句与Resume 语句语句 3.5 3.5 其它控制语句其它控制语句 1设置错误陷阱设置错误陷阱用用On Error语句设置错误陷阱,捕捉错误,形式如下:语句设置错误陷阱,捕捉错误,形式如下:(1)On Error GoTo语语句句标标号号 发发生生错错误误时时,转转到到语语句句标标号号所指示的程序块所指示的程序块(2)On Error Resume Next 发发生生错错误误时时,忽忽略略错错误误行行,继继续执行下一语句续执行下一语句(3)On Error GoTo 0 禁禁止止当当前前过过程程中中任任何何已已启启动动的的错错误

52、误3.5.6 On Error语句与语句与Resume 语句语句 3.5 3.5 其它控制语句其它控制语句 2编写错误编写错误处理处理程序程序 编编写写错错误误处处理理程程序序一一般般要要使使用用到到Err 对对象象,它它是是一一个个系系统统对对象象,在在Visual Basic中中,可可以以通通过过Err对对象象来来获获取取错错误误的的消消息息。当当出出现现Visual Basic错错误误时时,有有关关错错误误的的信信息息存存储储在在Err对对象象中中。Err对对象象每每次次只只维维护护一一个个错错误误的的信信息息。当当出出现现新新的的错错误误时时,Err对象将更新为新的错误信息。对象将更新

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

54、要要恢恢复复原原有有的的运运行行,可可用用Resume 语语句。句。语法格式为:语法格式为:(1)Resume 重新执行产生错误的语句重新执行产生错误的语句(2)Resume Next 重新执行产生错误的语句的下一语句重新执行产生错误的语句的下一语句(3)Resume 语句标号语句标号 从语句标号初恢复执行从语句标号初恢复执行3.5 3.5 其它控制语句其它控制语句 例如,下面的例如,下面的Form_Click()过程是一个错误处理过程的典型用法。过程是一个错误处理过程的典型用法。Private Sub Form_Click() On Error GoTo out Dim x As Singl

55、e, y As Single x = 1 / y 引发一个引发一个除以零除以零的错误的错误 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 判断一个给定的整数是否为素数。判断一个给定的整数是否为素数。 算算法法思思路路:素素数数指

56、指除除了了能能被被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 =

57、Val(InputBox(N=?)K= Int(Sqr(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的的任

58、任一一偶偶数数,将将其其分分解解为为N1和和N2两两个个数数,使使用用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%,

59、 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 Th

60、en 如果如果N2也为素数,则打印输出也为素数,则打印输出 Print N & = & N1 & + & N2 End If End If Next N1End Sub3.6 应用程序举例应用程序举例3.6.2 字符串处理字符串处理 例例3.14 统统计计文文本本框框中中英英文文单单词词的的个个数数(设设单单词词由由空空格格、逗逗号号、分号、感叹号、回车符、换行符作为单词之间的分隔符)。分号、感叹号、回车符、换行符作为单词之间的分隔符)。 编程分析:编程分析: 用用变变量量Last存存放放上上一一次次取取出出的的字字符符、Char存存放放当当前前所所取取出出字字符符,变变量量nw累累计计单单词

61、词数数,从从左左边边开开始始的的第第I个个字字符符的的位位置置用用变变量量I存放、其初值为存放、其初值为1。 从从文文本本(字字符符串串)的的左左边边开开始始,取取出出第第I个个字字符符值值赋赋给给Char,如如果果Char是是英英文文字字母母,同同时时它它的的前前一一个个字字符符Last是是为为单单词词分分隔隔符,则表示当前的字母是新单词的开始,累计单词数。符,则表示当前的字母是新单词的开始,累计单词数。 将将Char值赋给值赋给Last、I自增自增1,重复第,重复第2、3步直到文本末尾。步直到文本末尾。 3.6 应用程序举例应用程序举例例例3.15 字符的加密和解密字符的加密和解密加加密密

62、的的思思想想是是:将将每每个个字字母母c加加(或或减减)一一序序数数k,即即用用它它后后的的第第k个字母代替,变换式公式:个字母代替,变换式公式:c=c+k例例如如序序数数k为为3,这这时时 A D, ad,BE, be .当当加加序序数数后后的的字母超过字母超过Z或或z则则 c=c+k26例如:例如: You are good!经上述方法加密经上述方法加密后的字符为后的字符为Brx duh jrrg! 3.6 应用程序举例应用程序举例解密为加密的逆过程:解密为加密的逆过程: 迭代法在数学上也称迭代法在数学上也称“递推法递推法”,凡是由一给定的初,凡是由一给定的初值,通过某一算法(公式)可求得

63、新值,再由新值按照同值,通过某一算法(公式)可求得新值,再由新值按照同样的算法又可求得另一个新值,这样经过有限次即可求得样的算法又可求得另一个新值,这样经过有限次即可求得其解。其解。3.6.3 迭代法迭代法 例例3.14 用迭代法求某个数的平方根。用迭代法求某个数的平方根。 已知求平方根的迭代公式为:已知求平方根的迭代公式为: 3.6 应用程序举例应用程序举例算法思想如下:算法思想如下: 设平方根的解为设平方根的解为x,可假定一个初值可假定一个初值x0=a/2(估计值估计值),根据迭代公式得到一个新的值根据迭代公式得到一个新的值x1,这个新值这个新值x1比初值比初值x0更更接近要求的值接近要求

64、的值x;再以新值作为初值,即:再以新值作为初值,即:x1x0,重新重新按原来的方法求按原来的方法求x1,重复这一过程直到重复这一过程直到|x1-x0|(某一给定某一给定的精度的精度)。此时可将。此时可将x1作为问题的解。作为问题的解。3.6 应用程序举例应用程序举例本章小结本章小结 1本本章章介介绍绍了了结结构构化化程程序序设设计计方方法法及及其其算算法法表表示示,这这对对初初学学程程序序设设计计的的同同学学来来说说可可能能认认识识不不到到它它的的重重性性,其其实实算算法法是是程程序序设设计计的的灵灵魂魂,因因为为要要编编写写一一个个好好的的程程序序,首首先先就就要要设设计计好好的的算算法法。即即使使一一个个简简单单程程序序,在在编编写写时时也也要要考考虑虑先先做做什什么么,再再做做什么,最后做什么。什么,最后做什么。 2面面向向对对象象的的程程序序设设计计并并不不是是要要抛抛弃弃结结构构化化程程序序设设计计方方法法,而而是是站站在在比比结结构构化化程程序序设设计计更更高高、更更抽抽象象的的层层次次上上去去解解决决问问题题。当当它它被被分分解解为为低低级级代代码码模模块块时时,仍仍需需要要结结构构化化编编程程的的方方法法和和技技巧巧。程程序序都都是是由由顺顺序序结结构构、选选择择结结构构和和循循环环结结构构3种种结结构构的的复复杂组合。杂组合。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号