VB程序设计第四章 基本的控制结构_第1页
VB程序设计第四章 基本的控制结构_第2页
VB程序设计第四章 基本的控制结构_第3页
VB程序设计第四章 基本的控制结构_第4页
VB程序设计第四章 基本的控制结构_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章基本的控制结构1. 顺序结构(顺序结构(Sequence)2. 选择结构(选择结构(Selection)3. 循环结构(循环结构(Repetition)4. 其它辅助控制语句其它辅助控制语句5. 常用算法(一)常用算法(一)Summaryl 顺序结构 按照各语句出现的先后顺序执行 包括:l 赋值语句l 输入 / 输出语句 4.1 顺序结构顺序结构l 赋值语句是任何程序设计的最基本语句。l 语法结构: 变量名 表达式 其中: 变量名:已经定义(声明)的变量名称 表达式:任何类型表达式(算术、逻辑、 函数等等),类型与变量名的 类型一致。1 赋值语句赋值语句l 赋值语句的作用: 先计算等号右

2、边表达式的值,然后赋给等号左边的变量。l VB赋值语句的两项任务 给变量赋值 给控件的属性赋值l 例如: sngRate! =0.1 将0.1赋给单精度变量sngRate txtName.Text = “Hu” 赋值处理l当赋值等号左右数值类型不相同时,强制转换成左边变量的类型(精度) n%=3.5 结果为4(四舍五入)l当赋值等号左边是数值类型,而右边表达式是数字字符串,则VB自动转换成数值类型再赋值,如表达式不是数字字符串,则出错。 n%=“123” 结果为123,与n%=Val(“123”)效果一样 n%=“1a23” 出现“类型不匹配”错误 l当逻辑类型赋值给数值类型时,True转换为

3、1,False转换为0; 反之,当数值型赋值给逻辑类型,则非零转换为True,0转换为False。l任何非字符类型赋值给字符类型,自动转换为字符类型。 注意:l尽量采用转换函数进行转换,避免VB系统自动转换。这样能避免出现意想不到的错误。lVB系统会自动判断赋值符号“=“ 和关系运算符等于符号”=“。l 赋值符号”=“左边只能是变量,不能是常量、或者表达式。l 赋值语句: intX = intX + 1l VB与用户之间的数据交互通过两个函数和一个过程完成。l 函数有返回值,过程没有返回值。(第六章)l 函数: InputBox(), MsgBox()l 过程: MsgBox2 人机交互函数和

4、过程人机交互函数和过程l 语法: 变量名InputBox(提示,标题,默认 ,x坐标位置,y坐标位置) 其中: 提示:字符串表达式,显示信息。如果 要显示多行,则在每行未加上回 车Chr(13)和换行Chr(10),或者, 加上VB系统常数vbCrLf。1 InputBox函数 标题:字符串表达式,在对话框的标题 显示。如果省略,则显示应用程 序的名称。 默认:字符串表达式。当对话框中没有 输入时,则该默认值作为输入的 内容。 x坐标位置,y坐标位置:整数表达式, 确定对话框左上角在屏幕上的位 置,屏幕左上角为坐标原点,单 位:twip。1000 twip = 1 inch。l 打开一个标准对

5、话框,等待用户输入内容,用户单击“确定(OK)”或者按回车键,则该函数返回输入的值,其类型为字符型。l例如: Dim strName As String * 40, strS1 As String strS1 = 请输入你的姓名 + vbCrLf + 然后回车确定 strName = InputBox(strS1, 输入框, , 100, 100)InputBox函数的作用l 语法: 变量名MsgBox(提示,按钮,标题) 其中: 提示:与InputBox函数相同 标题:与InputBox函数相同 按钮:整数表达式,决定信息框按钮的 数目和类型及其图标类型。参见 P77,表1.4.12 Msg

6、Box()函数分分 组组内部常数内部常数按钮值按钮值描述描述vbOkOnlyvbOkCancelvbAbortRetryIgnorevbYesNoCancelvbYesNovbRetryCancel012345“确定确定” “确定确定”、“取消取消”“终止终止”、“重试重试”, “忽略忽略”“是是”、“否否”、“取取消消”“是是”、“否否”“重试重试”、“取消取消”按按 钮钮数数 目目表表1.4.1 “按钮按钮”设置值及其意义设置值及其意义vbCriticalvbQuestionvbExclamationvbInformation16324864红色红色STOP标志标志询问信息图标询问信息图标

7、 ?警告信息图标警告信息图标 !信息图标信息图标 i按按 钮钮类类 型型vbDefaultButton1vbDefaultButton2 vbDefaultButton3 0256512第一个按钮为默认第一个按钮为默认第二个按钮为默认第二个按钮为默认第三个按钮为默认第三个按钮为默认默默 认认按按 钮钮vbApplicationModevbSystemMode 04096应用模式应用模式系统模式系统模式模式模式注意:注意:l四组方式可以组合使用。一般采用内部常数形式,而不采用按钮值形式。 例如: I=MsgBox(“密码错误”,vbRetryCancel+vbExclamation,”输入密码”

8、) I=MsgBox(“密码错误”,53,”输入密码”) l模式:若应用模式建立对话框,则必须响应对话框才能继续当前的应用程序,但可以切换到其它应用程序。若应用系统模式建立对话框,则所有的应用程序都被挂起,直到用户响应对话框为止。 内部常数内部常数按钮值按钮值被单击的按钮被单击的按钮vbOkvbCancelvbAbortvbRetryvbIgnorevbYesVBNo1234567确定确定 取消取消终止终止重试重试忽略忽略是是否否表表1.4.2 MsgBox函数返回值意义函数返回值意义l 语法: MsgBox(提示,按钮,标题) 其中: 提示、标题、 按钮:与MsgBox函数相同l作用:Msg

9、box()函数和Msgbox过程的作用都是打开一个信息框,等待用户选择一个按钮。l区别: Msgbox()函数返回所选按钮的整数值; Msgbox过程没有返回值。3 MsgBox过程编程实现账号和密码的输入程序,要求:(1)账号不超过6位数字,密码为4位字符,假设为“Gong”(2)密码输入时,不显示输入的字符,用“*”代替。(3)输入不正确,显示有关信息。单击“重试”,则清除原来输入的内容,等待重新输入;单击“取消”,终止程序运行。例题:分析分析l 账号账号不超过6位数字,则将文本框的MaxLength属性设置为6;输入结束后,通过LostFocus事件,来判断账号输入的正确性。若出错,则显

10、示出错信息,重新输入。l 密码要显示“ * ”, 将PasswordChar属性设置为“ * ”即可。 输入结束按确定键后,判断密码的正确性。正确没有显示,出错显示出错信息。l 选择结构作用对条件进行判断,根据判断结果,选择执行不同的分支。lIf 条件语句lSelect case语句l条件函数4.2 选择结构选择结构l If 条件语句有多种形式单分支双分支多分支4.2.1 If 条件语句条件语句If Then 语句1 单分支结构(1) If Then End If(2)If Then l 表达式 可为关系表达式、逻辑表达式、算术 表达式。非零为True,零为False。l语句块:一条或者多条语

11、句。l形式(2)中的语句只能是一条,或者多条多条简单语句,之间用冒号分开。简单语句,之间用冒号分开。l 尽量用第一种形式编程。其中,FT表达式表达式语句块语句块l当表达式为当表达式为TrueTrue时,执行时,执行ThenThen后的语句后的语句块。块。l否则,不作任否则,不作任何处理何处理If ThenElse 语句2 双分支结构(1) If Then Else End If(2)If Then Else l 当表达式为非零(True)时,执行Then后的语句块1(或语句1),否则,执行Else后面的语句块2(或语句2)。作用F表达式表达式语句块语句块1语句块语句块2TIf ThenElse

12、if 语句3 多分支结构 If Then Elseif Then Else End If 注意:l不管有几个分支,程序执行一个分支后,就不再执行其它分支。l ElseIf不能写作Else Ifl 当多个分支有多个表达式同时满足时,则只执行第一个匹配的语句块。P82, 例4.3l在If 或者Else后面的语句中又有If 语,称为If 嵌套。4 If 语句的嵌套 If Thenif Then End If End If l If 嵌套一般采用锯齿型,增强程序的可读性。l 一个If 必须与一个End If匹配,End If与最近的If语句配对。例题4.4 (P83)注意l Select Case 语

13、句是多分支结构的另一种表示。比If 语句更直观。l 选择多于三个以上,采用Select Case较好。4.2.2 Select case语句语句 Select case 变量或表达式 Case 表达式列表1 Case 表达式列表2 Case Else End Select其中, 变量或表达式:数值型或字符串表达式 表达式列表 : 类型必须相同,可以为 (1)表达式 (2)一组逗号分开的值 (3)表达式1 To 表达式2 (4)Is关系运算符表达式i例如:Case 1 to 10 110范围内Case “a”,”e”,”I”,”o”,”u” 元音字母Case 2,4,6,Is10 2,4,6,或

14、大于10作用 根据变量或表达式中的结果,与各case语句中的表达式列表的值进行比较,匹配则执行该语句块。如果有多个匹配,则只执行第一个匹配的语句块。表达式列表1语句块1表达式列表2语句块2表达式列表n语句块n语句块n+1TTTFFF注意:lSelect Case 语句只能有一个变量,不能对多个变量进行条件判断。l多个变量只能采用IfThenElseIf 语句l P85,例题4.6组合应用:l算术运算:要求给出随机的110的操作数和四则运算符,计算机根据学生的答案判断准确是否,结束时给出成绩。分析:(1)运算符 “ “ 采用1, 2, 3, 4 表示;(2) 随机数用Rnd函数确定;(3) 产生

15、表达式由Form_load过程给出,在标签(label)控件显示。 ,,(4)学生在文本框中输入答案;(5) 图形框中显示正确是否;(6) 最后单击“计分”时,显示成绩。控件名控件名lblExpressiontxtAnswer amdCalculationpicDisplay主要属性主要属性Caption=“ ”Text=“ ” Caption=“计分”Picture默认值空 说说 明明 显示产生的题目输入计算结果 最后计分显示题目、结果和正确是否l VB提供了两个条件函数IIF( )函数 代替 If 语句Choose( )函数 代替 Select语句4.2.3 条件函数条件函数(1) IIf

16、( )函数 IIf(表达式,当条件为T的值,当条件为F的值)例如:求x, y中的大的数,放入Tmax变量中 TMax = IIf ( x y, x, y )等效于: If xy thenTmax=x ElseTmax=y End If(2) Choose( )函数 Choose(整数表达式,选项列表)根据整数表达式的值,选择选项列表的项: 1 第一项 2 第二项 . 选项数目 NullstrOp=Choose(intNOp, “+” , ”-”, ”x”, ” ”) l 最好不要采用这两个函数IIF( )函数 Choose( )函数 忠告:忠告:l 循环是在指定的条件下重复执行某些指令。l两种

17、类型的循环语句:计数型循环语句:用于循环次数确定的情况 (FOR循环语句) 条件循环语句:用于循环次数未知的情况 (Do Loop循环语句)4.3 循环结构循环结构For 循环变量循环变量 初值初值 To 终值终值 Step 步长步长 Exit For Next 循环变量4.3.1 For循环语句循环语句循环变量:整数型;步长:可正可负;正,初值小于终值;负,初值大于终值。默认为1语句块:一或多句指令;Exit For:退出循环;循环次数:int(终值初值)/步长1)如图1.4.11(a) (b) 所示。其中:1. 循环变量被赋初值,仅赋一次;2. 判断循环变量是否在终值内,是,执行循环体;否

18、,结束循环,执行Next后的下一句语句。3. 循环变量加步长,转(2),继续循环。执行过程:1. 当退出循环时,循环变量的值保持退出时的值;2. 循环变量的值一般在循环体外赋值;参见:P89, 例4.93. 例如:P90,例题4.10注意:l有两种形式的循环结构(1) Do While | Until Exit Do Loop4.3.2 Do Loop循环语句循环语句(2) Do Exit Do Loop While | Until (1)形式1先判断,再执行。形式2先执行,再判断。流程图参见P91。(2) 关键字While用于指明条件为真(True)时就执行循环体的语句;Until则相反。(

19、3) 当省略 While | Until 时,即仅有 DoLoop 关键字,表示无条件循环。此时,循环体内必须有Exit Do 语句,否则为死循环。其中:l用辗转相除法求两个自然数m、n的最大公约数和最小公倍数。l分析l先求最大公约数已知两个数 m, n,使得 m n m 除以 n ,得余数 r 若 r 0,则 n 为求得的最大公约数,算法结束;否则,执行以下步骤 m n, n r, 转步骤(2)l最小公倍数等于两数相乘除以最大公约数例题4.12l在一个循环体内包含了另一个完整的循环结构。l 循环嵌套对 For 循环和 DoLoop 循环均适用。l注意:内循环变量和外循环变量不能相同 外循环必

20、须完全包含内循环l例题:参见P92,例4.134.3.3 循环的嵌套循环的嵌套l Go To 语句l Exit语句l End 语句l With 语句4.4 其它辅助控制语句其它辅助控制语句1 Go To 语句语句 l 形式: Go To 标号|行号l 该语句的作用是无条件转移到标号或者行号指定的那行语句。l Go To语句只能转移到同一个过程的标号或行号。标号是一个字符序列,行号是一个数字序列。l 采用Go To语句编制的程序称为 BS 程序(Bowl of Spaghetti Program, 乱麻似的程序),程序结构不清晰,可读性差。l 结构化程序设计中要求尽量少用或不用Go To语句,用

21、选择结构或者循环结构来代替。lExit语句用于退出某种控制结构的执行。l 包括: Exit For Exit Do Exit Sub Exit Function2 Exit 语句语句lEnd 语句用于结束一个程序的运行。 End 语句可以在任何事件过程中。l End 还可以用来结束一个过程或者控制块,在控制语句或过程中经常使用。l End If, End Select, End Sub等等。3 End 语句语句lWith 的作用:可以对某个对象执行一系列的语句,而不必重复指出对象的名称。l 形式:With 对象语句块 End With l参见P95, 例题。l 个人意见:尽量不用。4 With

22、 语句语句l算法是对某个问题求解过程的描述l 同一问题有多种算法描述l 算法分为两大类 数值算法非数值算法4.5 常用算法(一)常用算法(一)4.5.1 累加、连乘累加、连乘 l 累加:在原有和的基础上,一次一次地加上一个数。l 连乘:在原有积的基础上,一次一次地乘以一个数。l 书P9596 中的简单例子。l 例题4.14 求自然对数e的近似值。niiiine11!11!11!1! 31! 21! 111l采用 For Next语句如何实现?l 变量赋初始值语句若放在循环体内,情况会如何?思考:4.5.2 求素数求素数 l素数,又称质数:大于2且只能被1和本身整除的整数。l求解想法:对于 m 从 i = 2,3,m-1 判断 m 能否被 i 整除,若有一个能整除,则 m 不是素数;否则, m 是素数l例题4.15, 求 100 以内的素数l实际上,m 不可能被大于 的数整除,故内循环为:For i = 2 To Int(Sqr(m), 将大大减少循环次数。l 不用 G

温馨提示

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

评论

0/150

提交评论