3 VB结构化编程语言_第1页
3 VB结构化编程语言_第2页
3 VB结构化编程语言_第3页
3 VB结构化编程语言_第4页
3 VB结构化编程语言_第5页
已阅读5页,还剩71页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、第三章第三章 VBVB结构化编程语言结构化编程语言第三章第三章 VB结构化编程语言结构化编程语言第三章第三章 VBVB结构化编程语言结构化编程语言 面向对象编程思想面向对象编程思想 Visual Basic编程程步骤及算法描述编程程步骤及算法描述 基本语句基本语句 分支程序结构分支程序结构 循环程序结构循环程序结构 结构嵌套结构嵌套本章内容:本章内容:第三章第三章 VBVB结构化编程语言结构化编程语言3. 1 VB程序设计基础程序设计基础3.1.1 编程的基本步骤和算法描述编程的基本步骤和算法描述1. 编程步骤编程步骤问题分析代码实现算法设计调试运行归纳分析第三章第三章 VBVB结构化编程语言

2、结构化编程语言2. 算法的描述工具算法的描述工具 算法(算法(Algorithm)就是根据题目要求设计好的一个)就是根据题目要求设计好的一个确定的解题步骤,或者是解题思想的描述。这样的解题确定的解题步骤,或者是解题思想的描述。这样的解题步骤的描述,必须对设计是无歧义的,应该能指明控制步骤的描述,必须对设计是无歧义的,应该能指明控制流程、处理功能、数据组织甚至是一些实现细节。流程、处理功能、数据组织甚至是一些实现细节。 常用的算法描述工具有语言描述、程序流程图及常用的算法描述工具有语言描述、程序流程图及 N-S流程图三种。流程图三种。(1)语言描述)语言描述 用自然语言描述算法设计的步骤。用自然

3、语言描述算法设计的步骤。第三章第三章 VBVB结构化编程语言结构化编程语言(2)程序流程图)程序流程图程序流程图的主要元素:程序流程图的主要元素: 圆角矩形:表示开始、结束。圆角矩形:表示开始、结束。 矩形:表示一个处理步骤。矩形:表示一个处理步骤。 菱形:表示一个逻辑条件。菱形:表示一个逻辑条件。 箭头:表示控制流向。箭头:表示控制流向。 平行四边形:输入或输出的数据。平行四边形:输入或输出的数据。第三章第三章 VBVB结构化编程语言结构化编程语言(3)N-S流程图流程图顺序结构顺序结构选择结构(选择结构(1)选择结构(选择结构(2)第三章第三章 VBVB结构化编程语言结构化编程语言循环结构

4、循环结构过程调用过程调用第三章第三章 VBVB结构化编程语言结构化编程语言3.1.2 VB语言基础语言基础【案例案例3.1】已知球体半径,计算球的体积,并通过窗体打已知球体半径,计算球的体积,并通过窗体打印输出。印输出。 球体体积计算公式:球体体积计算公式:v = 4/3r3。考虑到程序的实用性,。考虑到程序的实用性,半径由用户给出,可通过输入语句或文本框控件,将半径半径由用户给出,可通过输入语句或文本框控件,将半径值传给程序。值传给程序。第三章第三章 VBVB结构化编程语言结构化编程语言代码如下:代码如下:Dim r As Single, v As Single 声明变量声明变量Const

5、pi=3.14 定义常量定义常量r=Val(Text1.Text) 从文本框读取圆半径值从文本框读取圆半径值v=4/3*pi*r3 计算圆面积计算圆面积Print 球半径为:球半径为:; r; 体积为:体积为:; v 在窗体上输出计算结果在窗体上输出计算结果N-SN-S流程图流程图第三章第三章 VBVB结构化编程语言结构化编程语言1.常量与变量常量与变量 在程序运行过程中需要变化的数据定义为变量,保持在程序运行过程中需要变化的数据定义为变量,保持不变的数据定义为常量。不变的数据定义为常量。(1)数据类型)数据类型 Visual Basic中对数据进行了分类中对数据进行了分类 ,VB中的标准数据

6、类中的标准数据类型见下图。型见下图。第三章第三章 VBVB结构化编程语言结构化编程语言数据类型数据类型关键字关键字类型符号类型符号字节数字节数范范 围围 数数值值型型字节型字节型Byte无无10255整型整型Integer%2-3276832767长整型长整型Long&4-21474836482147483647单精度型单精度型Single!4-3.40282310383.4028231038双精度型双精度型Double#8-1.7103081.710308,15位精度位精度货币型货币型Currency8-296-1296-1,28位精度位精度字符型字符型String$不定不定065535个字

7、符个字符日期时间型日期时间型Date(Time)无无8100-1-1 9999-12-310:00:0023:59:59布尔型布尔型Boolean无无2True或或False对象型对象型Object无无4任何引用的对象任何引用的对象变体型变体型Variant无无不定不定以上任意类型以上任意类型第三章第三章 VBVB结构化编程语言结构化编程语言 (2)变量的命名规则)变量的命名规则 变量名必须以字母或汉字开头,由字母、汉字、下画变量名必须以字母或汉字开头,由字母、汉字、下画线、数字及变量类型符号组成的长度不超过线、数字及变量类型符号组成的长度不超过255的字符串。的字符串。 变量名不区分大小写。

8、变量名不区分大小写。 变量名不能与关键词冲突,如变量名不能与关键词冲突,如single即非法变量名。即非法变量名。 变量名在变量的有效范围内必须是唯一的。变量名在变量的有效范围内必须是唯一的。第三章第三章 VBVB结构化编程语言结构化编程语言 (3)变量的声明)变量的声明 变量使用之前,一般需要通过声明语句给变量分配一定内变量使用之前,一般需要通过声明语句给变量分配一定内存空间,同时把变量的相关信息通知给应用程序。变量的声明存空间,同时把变量的相关信息通知给应用程序。变量的声明语句语法为:语句语法为:Dim 变量名变量名 As 变量类型变量类型或或Static 变量名变量名 As 变量类型变量

9、类型 也可在声明时用类型符号指明变量的类型。如:也可在声明时用类型符号指明变量的类型。如:Dim s As Single 等价于:等价于:Dim s!第三章第三章 VBVB结构化编程语言结构化编程语言(4)变量的作用域)变量的作用域变量的作用域分为三级:局部变量、模块级变量和全局变量。变量的作用域分为三级:局部变量、模块级变量和全局变量。 变量作用域变量作用域 声声 明明 方方 式式声明语句所在位置声明语句所在位置能否被本模块能否被本模块其他过程使用其他过程使用能否被其他能否被其他模块使用模块使用局部变量局部变量Dim或或Static过程内过程内否否否否模块级变量模块级变量 Dim或或Priv

10、ate 模块的通用代码段模块的通用代码段 能能否否全局变量全局变量Public模块的通用代码段模块的通用代码段 能能能能第三章第三章 VBVB结构化编程语言结构化编程语言【案例案例3.2】在下面代码段中声明了在下面代码段中声明了4个变量个变量a、b、c、d,其中其中a为全局变量,为全局变量,b、c为模块级变量,为模块级变量,d为局部变量。为局部变量。 分分析单击窗体四次后的运行结果。析单击窗体四次后的运行结果。Option Explicit 通用代码段通用代码段Public a As IntegerPrivate b As IntegerDim c As StringPrivate Sub F

11、orm_Click() 窗体单击事件窗体单击事件 Dim d As Integer a=a+1 b=b+1 d=d+1 Print a, b, c, d 分别输出分别输出a,b,c,dEnd SubPrivate Sub Form_Load() 窗体装载事件窗体装载事件 c=Visual BasicEnd Sub第三章第三章 VBVB结构化编程语言结构化编程语言 (5)常量)常量 程序运行过程中,不变的数据即可定义成用户自定义的常程序运行过程中,不变的数据即可定义成用户自定义的常量,常量声明语句语法为:量,常量声明语句语法为:Const 常量名常量名As 数据类型数据类型 = 常量值常量值第三

12、章第三章 VBVB结构化编程语言结构化编程语言2. 表达式表达式 单个的常量、变量、内部函数或者由运算符将它们连接起单个的常量、变量、内部函数或者由运算符将它们连接起来的式子就是表达式。来的式子就是表达式。 VB运算符包括算术运算符、字符串运运算符包括算术运算符、字符串运算符、关系运算符和逻辑运算符。算符、关系运算符和逻辑运算符。第三章第三章 VBVB结构化编程语言结构化编程语言运运 算算 符符运运 算算 名名 称称优优 先先 级级举举 例例运运 算算 结结 果果幂幂115225-取反取反10-(-5)5*乘乘95*525/除除95/22.5整除整除8522Mod取余取余75 Mod 21+加

13、加62+35-减减62-3-1(1)算术运算符)算术运算符第三章第三章 VBVB结构化编程语言结构化编程语言(2)字符串运算)字符串运算运运 算算 符符运运 算算 名名 称称优优 先先 级级举举 例例运运 算算 结结 果果&字符串连接字符串连接5Visual & BasicVisualBasic+2+323 符号符号“&”和和“+”都可进行字符串连接运算,但略有区都可进行字符串连接运算,但略有区别。别。“&”有自动转换为字符串运算的功能,而有自动转换为字符串运算的功能,而“+”则有自则有自动转换成算术运算的功能。动转换成算术运算的功能。 第三章第三章 VBVB结构化编程语言结构化编程语言(3)

14、关系运算)关系运算运运 算算 符符运运 算算 名名 称称优优 先先 级级举举 例例运运 算算 结结 果果大于大于42 3F=大于等于大于等于42 + 3 = 3T小于小于42 3T=小于等于小于等于4abcd = abcF=等于等于4ABCD = abcdF不等于不等于42 3T第三章第三章 VBVB结构化编程语言结构化编程语言(4)逻辑运算)逻辑运算运运 算算 符符运运 算算 名名 称称优优 先先 级级举举 例例运运 算算 结结 果果 Not非非3Not TFNot FTAnd与与2F And FFF And TFT And FFT And TTOr或或1F Or FF F Or TT T

15、Or FT T Or TT Xor异或异或1F Xor F0 F Xor T1 T Xor F1 T Xor T0 第三章第三章 VBVB结构化编程语言结构化编程语言3.1.3 基本语句基本语句 基本语句主要有赋值语句、输入基本语句主要有赋值语句、输入/输出语句、结束语句、输出语句、结束语句、错误处理语句及注释语句等。错误处理语句及注释语句等。 1. 赋值语句赋值语句 赋值语句用于改变变量或对象的属性值。语法结构为:赋值语句用于改变变量或对象的属性值。语法结构为:变量名变量名=表达式表达式 或或 对象对象.属性属性=表达式表达式 赋值语句执行时,先计算赋值号赋值语句执行时,先计算赋值号“=”右

16、端表达式的值,右端表达式的值,然后再将其值赋给左端。然后再将其值赋给左端。 第三章第三章 VBVB结构化编程语言结构化编程语言2. 输入输入/输出语句输出语句 (1)输出语句)输出语句 常用的输出方式有通过文本框或标签显示、调用常用的输出方式有通过文本框或标签显示、调用print方法打印输出以及调用方法打印输出以及调用MsgBox函数输出。函数输出。 通过文本框或标签控件显示通过文本框或标签控件显示Label1.Caption=欢迎来到欢迎来到VB编程世界编程世界! 第三章第三章 VBVB结构化编程语言结构化编程语言 调用调用print方法打印输出方法打印输出 Print方法功能为在对象上打印

17、参数列表所指内容,语法形方法功能为在对象上打印参数列表所指内容,语法形式为:式为:对象对象. Print 参数列表参数列表 其中对象可以是窗体、图形框或打印机,默认为当前窗体。其中对象可以是窗体、图形框或打印机,默认为当前窗体。参数列表中可包括:参数列表中可包括:定位函数,用于决定打印内容的相对位置:定位函数,用于决定打印内容的相对位置:Tab(n)从对象最左从对象最左端起向后移动端起向后移动n列开始打印;列开始打印;Spc(n),插入,插入n个空格。个空格。表达式,用于决定打印内容。表达式,用于决定打印内容。分隔符,输出多项内容时各项之间的分隔。分号,紧跟在上一分隔符,输出多项内容时各项之间

18、的分隔。分号,紧跟在上一个显示符号之后;逗号,下一个打印区域的开始位置;不使用个显示符号之后;逗号,下一个打印区域的开始位置;不使用分隔符,则下一符号将换行打印。分隔符,则下一符号将换行打印。第三章第三章 VBVB结构化编程语言结构化编程语言调用调用MsgBox函数输出函数输出MsgBox有函数和过程两种用法。有函数和过程两种用法。函数形式:函数形式:n = MsgBox(提示(提示 ,按钮,按钮 ,标题,标题)过程形式:过程形式:MsgBox 提示提示 ,按钮,按钮 ,标题,标题其中,参数其中,参数“提示提示”为字符串类型的表达式,是显示在消为字符串类型的表达式,是显示在消息框正文的提示信息

19、内容;息框正文的提示信息内容;“按钮按钮” 决定消息框按钮的类决定消息框按钮的类型组合及图标类型;型组合及图标类型;“标题标题” 决定消息框窗口标题栏内容。决定消息框窗口标题栏内容。第三章第三章 VBVB结构化编程语言结构化编程语言分分 组组内内 部部 常常 数数按按 钮钮 值值意意 义义按钮按钮数目数目vbOkOnlyvbOkCancelvbAbortRetryIgnorevbYesNoCancelvbYesNovbRetryCancel012345只显示只显示“确定确定”按钮按钮显示显示“确定确定”、“取消取消”按钮按钮显示显示“终止终止”、“重试重试”、“忽略忽略”按钮按钮显示显示“是是

20、”、“否否”、“取消取消”按按钮钮显示显示“是是”、“否否”按钮按钮显示显示“重试重试”、“取消取消”按钮按钮图标图标类型类型vbCriticalvbQuestionvbExclamationvbInformation16324864关键信息图标关键信息图标询问信息图标询问信息图标警告信息图标警告信息图标信息图标信息图标“按钮按钮”参数表参数表第三章第三章 VBVB结构化编程语言结构化编程语言分分 组组内内 部部 常常 数数按按 钮钮 值值意意 义义缺省按钮缺省按钮vbDefaultButton1vbDefaultButton2vbDefaultButton30256512第一个按钮为缺省第一

21、个按钮为缺省第二个按钮为缺省第二个按钮为缺省第三个按钮为缺省第三个按钮为缺省模式模式vbApplicationModalvbSystemModal04096应用模式应用模式系统模式系统模式“按钮按钮”参数表(续)参数表(续)第三章第三章 VBVB结构化编程语言结构化编程语言内内 部部 常常 数数返返 回回 值值被按下的铵钮被按下的铵钮vbOk1确定确定vbCancel2取消取消vbAbout3终止终止vbRetry4重试重试vbIgnore5忽略忽略vbYes6是是vbNo7否否“按钮按钮”返回值返回值第三章第三章 VBVB结构化编程语言结构化编程语言【案例案例3.3】设计一个简单的登录界面,

22、单击命令按钮,设计一个简单的登录界面,单击命令按钮,实现如下功能:(实现如下功能:(1)当用户在文本框输入)当用户在文本框输入12345678字符字符串时,弹出消息框提示串时,弹出消息框提示“密码正确密码正确”,同时在窗体的标,同时在窗体的标签控件中显示签控件中显示“登录成功登录成功”;(;(2)若用户输入错误时,)若用户输入错误时,弹出一个带有弹出一个带有“重试重试”、“取消取消”按钮的消息框,若用按钮的消息框,若用户选择户选择“重试重试”按钮,则清空文本框并置光标准备接收按钮,则清空文本框并置光标准备接收新输入,若用户选择新输入,若用户选择“取消取消”按钮则结束程序运行。按钮则结束程序运行

23、。第三章第三章 VBVB结构化编程语言结构化编程语言pass=Text1.Textpass=Text1.Text If pass=12345678 Then If pass=12345678 Then MsgBox MsgBox 密码正确密码正确, , , , 输入密码输入密码 Label1.Caption= Label1.Caption=欢迎进入系统欢迎进入系统 Else Elsei=MsgBox(i=MsgBox(密码错误密码错误, 5 + vbExclamation, , 5 + vbExclamation, 输入密码输入密码)If i=4 ThenIf i=4 Then Text1.T

24、ext= Text1.Text= Text1.SetFocus Text1.SetFocusElseIf i=2 ThenElseIf i=2 Then End End End If End IfEnd IfEnd If第三章第三章 VBVB结构化编程语言结构化编程语言(2)输入)输入 常用的输入方式有:通过文本框接收用户输入、调用常用的输入方式有:通过文本框接收用户输入、调用InputBox输入框函数接收用户输入两种。输入框函数接收用户输入两种。InputBox函数调用语法形式:函数调用语法形式:InputBox(提示(提示 ,标题,标题 ,默认值,默认值 ,x坐标坐标 ,y坐标坐标)其中其

25、中“提示提示” 是显示在输入框正文的提示信息内容;是显示在输入框正文的提示信息内容;“标标题题” 决定输入框窗口标题栏内容;决定输入框窗口标题栏内容;“默认值默认值”是当用户在输是当用户在输入框文本框内未输入任何内容而单击入框文本框内未输入任何内容而单击“确定确定”按钮的函数返按钮的函数返回值;回值;“x坐标坐标”、“y坐标坐标”是整型表达式,决定输入框在是整型表达式,决定输入框在屏幕的位置。屏幕的位置。第三章第三章 VBVB结构化编程语言结构化编程语言3结束语句结束语句 End结束语句用于在程序代码中立即结束应用程序的结束语句用于在程序代码中立即结束应用程序的运行。程序执行了运行。程序执行了

26、End语句后,其后面的所有代码不会执语句后,其后面的所有代码不会执行,事件也不会被触发,对象的各个引用将被释放。行,事件也不会被触发,对象的各个引用将被释放。 除此以外,除此以外,End还可与其他保留字结合使用,如还可与其他保留字结合使用,如 End If:结束一个:结束一个If语句块。语句块。 End Function:结束一个:结束一个Function过程。过程。 End Sub:结束一个:结束一个Sub过程。过程。 End Type:结束记录类型定义。:结束记录类型定义。 End Select:结束:结束Select语句结构。语句结构。 第三章第三章 VBVB结构化编程语言结构化编程语言

27、4错误处理语句错误处理语句On Error Resume next 出错继续执行下一条出错继续执行下一条On Error Goto 行号行号 出错跳转到指定行号出错跳转到指定行号On Error Goto 0 关闭错误捕获关闭错误捕获5注释语句注释语句 注释就是为了增加程序可读性程序员在代码适当位置注释就是为了增加程序可读性程序员在代码适当位置添加的一些说明性的、非执行的语句,添加的一些说明性的、非执行的语句,Visual Basic书写时书写时用关键字用关键字Rem或单引号或单引号“”将注释与代码分割开。将注释与代码分割开。 第三章第三章 VBVB结构化编程语言结构化编程语言3. 2 程序的

28、控制结构程序的控制结构3.2.1 分支结构分支结构 顺序结构、分支结构和循环结构是程序的顺序结构、分支结构和循环结构是程序的3种主要结构。种主要结构。 分支结构又可分为单分支、双分支、多分支与分支分支结构又可分为单分支、双分支、多分支与分支嵌套等结构。嵌套等结构。 第三章第三章 VBVB结构化编程语言结构化编程语言1 1单分支结构单分支结构 单分支结构就是只有一组语句可供选择的分支结构。单分支结构就是只有一组语句可供选择的分支结构。【案例案例3.43.4】求函数值求函数值b,其中,其中 100a100a100ab保留原始值,第三章第三章 VBVB结构化编程语言结构化编程语言代码段如下:代码段如

29、下:Dim a As Single, b As Singlea=Val(Text1)If a100 Then b=a-100End IfText2=b单分支结构基本语句法为:单分支结构基本语句法为:If 条件条件 Then 语句组语句组END If或或If 条件条件 Then 语句语句第三章第三章 VBVB结构化编程语言结构化编程语言2 2双分支结构双分支结构双分支结构就是有两组语句可供选择的分支结构。双分支结构就是有两组语句可供选择的分支结构。【案例案例3.53.5】求函数值求函数值b,其中,其中 100aa100100a100ab,第三章第三章 VBVB结构化编程语言结构化编程语言代码段如

30、下:代码段如下: Dim a As Single, b As Single a=Val(Text1) If a100 Then b=a-100 Else b=100-a End If Text2=b第三章第三章 VBVB结构化编程语言结构化编程语言双分支结构的基本语法为:双分支结构的基本语法为:If 条件条件 Then 语句组语句组1Else 语句组语句组2End If第三章第三章 VBVB结构化编程语言结构化编程语言3多分支结构多分支结构 多分支结构就是有多组语句可供选择的分支结构,具体多分支结构就是有多组语句可供选择的分支结构,具体执行过程中,程序根据条件只选择其中一组。执行过程中,程序根

31、据条件只选择其中一组。【案例案例3.6】求函数值求函数值b,其中,其中 100100100100100100aaaaab,第三章第三章 VBVB结构化编程语言结构化编程语言代码段如下:代码段如下: Dim a As Single, b As Singlea=Val(Text1)If a100 Then b=a-100ElseIf a = 100 Then b=100Else b=100-aEnd IfText2=ba100?Text2=bYa=Text1b=100a=100?NYN开始结束b=100-ab=a-100第三章第三章 VBVB结构化编程语言结构化编程语言多分支程序的基本语法为:多分

32、支程序的基本语法为: If 条件条件1 Then 语句组语句组1ElseIf 条件条件2 语句组语句组2 Else 语句组语句组nEnd If第三章第三章 VBVB结构化编程语言结构化编程语言4分支嵌套分支嵌套 分支嵌套就是一个分支结构中又嵌套了一个或多个完分支嵌套就是一个分支结构中又嵌套了一个或多个完整的分支结构。整的分支结构。【案例案例3.7】求分段函数求分段函数b的值,其中的值,其中 100aa100a,100c,ca100c,cab2222,第三章第三章 VBVB结构化编程语言结构化编程语言代码段如下:代码段如下:Dim a As Single, b As Single a=Val(T

33、ext1) c=Val(Text3)If a100 Then If c100 Then b=Sqr(a2+c2) Else b=Sqr(a2-c2) End IfElse b=aEnd IfText2=b第三章第三章 VBVB结构化编程语言结构化编程语言分支嵌套程序基本语法为:分支嵌套程序基本语法为:If 条件条件1 Then If 条件条件2 Then End IfElse End IfIf 条件条件1 Then Else If 条件条件2 Then End If End If第三章第三章 VBVB结构化编程语言结构化编程语言5其他分支语句其他分支语句 多分支结构还可用多分支结构还可用Sel

34、ect Case语句实现,用于对表达语句实现,用于对表达式的多种取值情况分离并处理。式的多种取值情况分离并处理。 语法形式为:语法形式为:Select Case 测试表达式测试表达式 Case 表达式列表表达式列表1 语句组语句组1 Case 表达式列表表达式列表2 语句组语句组2 Case Else 语句组语句组nEnd Select第三章第三章 VBVB结构化编程语言结构化编程语言【案例案例3.10】根据输入的四则运算符,对随机产生的两个数根据输入的四则运算符,对随机产生的两个数进行相应运算并显示结果。进行相应运算并显示结果。 由文本框输入一个运算符号,判断运算符号是由文本框输入一个运算符

35、号,判断运算符号是“+”、“-”、“”、“”中的哪一个,然后根据判断结果对随机生中的哪一个,然后根据判断结果对随机生成的两个数进行相应的算术运算,结束分支结构,显示运算结成的两个数进行相应的算术运算,结束分支结构,显示运算结果。果。第三章第三章 VBVB结构化编程语言结构化编程语言用用Select Case语句实现的代码段如下:语句实现的代码段如下:a=Int(Rnd*100)b=Int(Rnd*100)f=Text1.TextSelect Case f Case + c=a+b Case - c=a-b Case * c=a*b Case / c=a/b Case Else MsgBox 输

36、入错误!输入错误!End SelectText2=c第三章第三章 VBVB结构化编程语言结构化编程语言3.2.2 循环结构循环结构【案例案例3.11】s=1+2+3+4+100,计算,计算s的值。的值。分支语句实现:分支语句实现:s=0 初始化累加器初始化累加器i=0 初始化加数初始化加数loop1:If i = 100 Then s=s+i 语句(语句(1)累加)累加 i=i+1 语句(语句(2)更新加数)更新加数 GoTo loop1 语句(语句(3)跳转至标号)跳转至标号End If第三章第三章 VBVB结构化编程语言结构化编程语言 这是一个循环结构,这是一个循环结构,VB中有专门的循环

37、语句控制循中有专门的循环语句控制循环结构。设计循环结构程序时,需要考虑进入循环前初环结构。设计循环结构程序时,需要考虑进入循环前初始化、循环条件及循环体这三要素始化、循环条件及循环体这三要素 。第三章第三章 VBVB结构化编程语言结构化编程语言(1)代码一)代码一Private Sub Form_Click() Dim i As Integer, s As Integer s=0 i=0 For i=1 To 100 For语句语句 s=s+i Next i Print sEnd Sub(2)代码二)代码二Private Sub Form_Click() Dim i As Integer, s

38、 As Integer s=0 i=0 Do While i初值时,步长应大于初值时,步长应大于0才能确保循环正常运行;才能确保循环正常运行;相反,若终值相反,若终值初值,步长应小于初值,步长应小于0。 第三章第三章 VBVB结构化编程语言结构化编程语言2. Do语句语句 Do语句用于循环结构预先无法确定的情况。语句用于循环结构预先无法确定的情况。【案例案例3.13】求求ln2的近似值,误差范围在的近似值,误差范围在10-5内。内。已知级数已知级数 ,当当| | 0.00001 Print ln2= & s第三章第三章 VBVB结构化编程语言结构化编程语言Do语句语法结构:语句语法结构:(a)

39、Do (b)Do Whlie 表达式表达式 语句组语句组 语句组语句组 Loop While 表达式表达式 Loop 其中其中Do,While,Loop是是Visual Basic保留字,保留字,While后面的后面的“表达式表达式”为循环条件,为循环条件,“语句组语句组”是循环体。是循环体。 两种结构的区别在于前者是先执行后判断,后者是两种结构的区别在于前者是先执行后判断,后者是先判断后执行先判断后执行 。思考:上例如何修改代码变为(思考:上例如何修改代码变为(b)结构?)结构?第三章第三章 VBVB结构化编程语言结构化编程语言DoLoop语句中的语句中的While也可换成也可换成Until

40、,语法结构为:,语法结构为:Do 语句组语句组Loop Until 表达式表达式功能为功能为“表达式表达式”值为值为True时终止循环。时终止循环。第三章第三章 VBVB结构化编程语言结构化编程语言3循环嵌套循环嵌套 循环嵌套就是在一个循环结构的循环体语句组中又包循环嵌套就是在一个循环结构的循环体语句组中又包含了循环结构或循环嵌套结构的语句,循环嵌套中的每一含了循环结构或循环嵌套结构的语句,循环嵌套中的每一重循环结构都可以用重循环结构都可以用For语句或语句或Do语句实现。语句实现。【引例引例】 For i = 1 To 3 For j = 1 To 5 Print i * j; Next j

41、 Print Next i第三章第三章 VBVB结构化编程语言结构化编程语言【案例案例3.13】求求100以内所有素数。以内所有素数。第三章第三章 VBVB结构化编程语言结构化编程语言 部分代码:部分代码:For i=2 To 100 a=Sqr(i) For j=2 To a If i Mod j=0 Then GoTo e 非素数出口非素数出口 End If Next j Print i, 输出一个素数输出一个素数 f=f+1 更新计数器更新计数器 If f Mod 4=0 Then Print 换行打印换行打印e: Next i第三章第三章 VBVB结构化编程语言结构化编程语言3.2.3

42、 循环应用举例循环应用举例1枚举枚举 枚举法(穷举法)是指用给定的约束条件在指定范围内逐枚举法(穷举法)是指用给定的约束条件在指定范围内逐一试探,找出满足条件的解集的方法。解题的基本思路是:一试探,找出满足条件的解集的方法。解题的基本思路是: 确定枚举对象、枚举范围和判定条件;确定枚举对象、枚举范围和判定条件; 一一枚举可能的解,并验证是否是问题的解。一一枚举可能的解,并验证是否是问题的解。【案例案例3.14】韩信点兵问题:韩信点一队韩信点兵问题:韩信点一队1000人以内的士兵人数,人以内的士兵人数,三人一组余两人,五人一组余三人,七人一组余四人。这队士三人一组余两人,五人一组余三人,七人一组

43、余四人。这队士兵可能是多少人?兵可能是多少人?第三章第三章 VBVB结构化编程语言结构化编程语言 部分代码:部分代码:For i=1 To 1000 If i Mod 3=2 And i Mod 5=3 And i Mod 7=4 Then Print i End If Next i第三章第三章 VBVB结构化编程语言结构化编程语言 母鸡母鸡5元一只,公鸡元一只,公鸡3元一只,小鸡元一只,小鸡1元三只,现用元三只,现用100元正元正好买好买100只鸡,列出所有的购鸡方案。只鸡,列出所有的购鸡方案。代码见代码见p69思考:百元百鸡问题思考:百元百鸡问题第三章第三章 VBVB结构化编程语言结构化编

44、程语言2. 累加、连乘累加、连乘【案例案例3.15】求求 !n132112111Do b=1 乘积初始化乘积初始化 For i=1 To j b=b * i 连乘连乘 Next i b=1/b n=n+b 累加累加 j=j+1Loop While b0.000001 一般用循环嵌套一般用循环嵌套结构实现先连乘后累结构实现先连乘后累加的问题,部分代码加的问题,部分代码如下。但本例也可优如下。但本例也可优化为单循环结构。化为单循环结构。思考:算法可优化?第三章第三章 VBVB结构化编程语言结构化编程语言3迭代迭代 迭代也叫递推,是一种不断用变量新值代替旧值直至求迭代也叫递推,是一种不断用变量新值代

45、替旧值直至求出最终解的方法,其中新值一般由旧值通过某一迭代公式计出最终解的方法,其中新值一般由旧值通过某一迭代公式计算得到。用迭代算法解决问题时,首先确保数据的变化遵循算得到。用迭代算法解决问题时,首先确保数据的变化遵循一定规律,其次应注意:一定规律,其次应注意: 确定迭代变量初始值。确定迭代变量初始值。 建立迭代关系式。建立迭代关系式。 确定迭代范围。确定迭代范围。 第三章第三章 VBVB结构化编程语言结构化编程语言【案例案例3.16】棋盘麦粒问题:古代一位国王奖赏他的宰相,棋盘麦粒问题:古代一位国王奖赏他的宰相,这位宰相拿出一个这位宰相拿出一个8行行8列的棋盘说:列的棋盘说:“陛下,请您在

46、这张棋盘陛下,请您在这张棋盘的第一个小格子内赏我一粒麦粒,第二个小格子内赏给两粒,的第一个小格子内赏我一粒麦粒,第二个小格子内赏给两粒,第三格内赏四粒,照这样下去,每一个小格子内都比前一小格第三格内赏四粒,照这样下去,每一个小格子内都比前一小格加两倍。把这样摆满棋盘上的加两倍。把这样摆满棋盘上的64格的麦粒都赏给您的仆人格的麦粒都赏给您的仆人吧!吧!”。请计算国王最终奖赏给宰相的麦粒总数。请计算国王最终奖赏给宰相的麦粒总数。 迭代变量初始值:迭代变量初始值:a0 = 1; 迭代公式:迭代公式:an = 2an-1; 迭代范围,棋盘的迭代范围,棋盘的64个格子,迭代次数已知(个格子,迭代次数已知(164)。)。 第三章第三章 VBVB结构化编程语言结构化编程语言Private Sub Form_click() 棋盘麦粒问题棋盘麦粒问题 Dim i As Integer, s As Single a = 1 For i

温馨提示

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

评论

0/150

提交评论