VB程序设计教程(高等教育出版社)第4章.ppt_第1页
VB程序设计教程(高等教育出版社)第4章.ppt_第2页
VB程序设计教程(高等教育出版社)第4章.ppt_第3页
VB程序设计教程(高等教育出版社)第4章.ppt_第4页
VB程序设计教程(高等教育出版社)第4章.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

Visual Basic 程序设计教程 (第3版),2,第4章 VB控制结构,4.1 顺序结构 4.2 选择结构 4.3 循环结构 4.4 其它辅助控制语句 4.5 综合应用 4.6 程序调试,3,4.1 顺序结构,VB具有结构化程序设计的三种程序控制结构: 顺序结构、选择结构、循环结构,是程序设计的基础。,本章目录,(1)顺序结构 各语句按出现的先后次序执行,用传统流程图表示为,4,(2)选择结构,根据条件决定执行的语句,5,(3)循环结构,I 、当型循环结构,II 、直到型循环结构,根据条件重复执行语句(称为循环体),6,4.1 顺序结构 一般程序设计语言中顺序结构的语句主要: 赋值语句和 输入/输出语句等。 在VB中 赋值语句 输入/输出通过: 文本框控件、标签控件、 InputBox函数、MsgBox函数和过程 Print方法等来实现。,7,4.1.1 赋值语句,形式: 变量名表达式 对象名. 属性名=表达式 功能:计算表达式的值,再将此值赋给变量或对 象属性。 给变量赋值和设定属性是VB编程中常见的两个任务。例如: n = n + 1 计数累加 Text1.Text “ 清除文本框的内容 Text1.Text “欢迎使用VB “ 文本框显示字符串,本章目录,8,赋值语句注意点,“=”符号有两个意义 赋值号与表示等于的关系运算符都用“=”表示,系统会根据所处的位置判断符号的意义。 赋值号左边只能是变量,不能是常量、常数符号、表达式。下面均为错误的赋值语句: Now()=x+y 左边是表达式(函数) 5=sqr(s)+x+y 左边是常量 X+y=z 左边是表达式,本章目录,9,赋值语句的两个常见形式,(1)累加 sum=sum+x (2)计数 n=n+1,10,4.1.2 数据的输入和输出,1. 标签和文本框 (1)标签 利用标签的Caption属性输出数据。 (2)文本框 利用文本框的Text属性获得用户输入的数据或将计算的结果输出。 例如:r=Val(Text1.Text),11,2. 输入对话框 InputBox函数 其作用是打开一个对话框,等待用户输入,返回字符串类型的输入值。 形式:InputBox(提示,标题,默认值,x坐标位置,y坐标位置),本章目录,注意:提示项不能省略。 若要多行提示,可在每行 行末加回车换行vbCrLf。,例4.1利用InputBox输入基本工资和营业额,按营业额的5%提成,计算实发工资并显示。,12,作用:打开一个消息框,等待用户选择一个按钮。 MsgBox函数返回所选按钮的值 MsgBox过程不返回值 MsgBox函数形式: 变量% = MsgBox(提示,按钮,标题) MsgBox过程形式: MsgBox 提示,按钮,标题 按钮项是一整型表达式,决定信息框按钮的数目和类型及出现在信息框上的图标形式。,3. 消息对话框MsgBox函数和过程,13,MsgBox按钮设置,14,MsgBox所选按钮返回值,例4.2 编一账号和密码输入的检验程序,当输入不正确,如账号为非数字字符,密码不正确等,显示有关信息,再输入。,15,4.Print方法,作用:在对象上输出信息。 形式:对象.PrintSpc(n)|Tab(n)输出列表 ;|, 其中: 对象:窗体、图形框或打印机。缺省为窗体。 Spc(n)函数:从当前位置起空n个空格 Tab(n)函数:从最左端开始计算的第n列 分号:定位在上一个被显示的字符之后 逗号:定位在下一个打印区开始处(每区14列) Print语句尾无分号或逗号,输出后换行 例4.3 Print方法输出图形 利用String函数显示重复字符 利用循环结构、Spc、Tab函数显示有规律图形,16,5. Format格式输出函数,形式: Format (表达式, “格式字符串“) 常用数值格式化符及举例,例4.4 利用Format函数显示数值。,17,4.2 选择结构,计算机要处理的问题往往是复杂多变的,仅采用顺序结构是不够的。 必须利用选择结构等来解决实际应用中的各种问题。 VB中主要通过If条件语句和Select情况语句来实现。它们都是对条件进行判断,根据判断结果,选择执行不同的分支。,本章目录,18,4.2.1 If条件语句,1. IfThen语句(单分支结构) If Then 语句块(可以是一句或多句语句) End If 或 If Then 表达式:关系表达式、逻辑表达式,算术表达式。表达式值按非零为True,零为False进行判断。 该语句的作用是当表达式的值为True,执行Then后面的语句块,否则不做任何操作。,IF演示,19,单分支结构,例:已知两个数x和y,比较它们的大小,使得x大于y。 If xy Then t=x x=y y=t End If 或 If xy Then t=x: x=y: y=t 简单If形式无End If时,只能是一句语句或语句间用冒号分隔,而且必须在一行上书写。,20,双分支结构,2. IfThenElse语句 If 表达式 Then 语句块1 Else 语句块2 End If 或 If 表达式 Then 语句1 Else 语句2 当表达式的值为True时,执行Then后面的语句块1,否则执行Else后面的语句块2,21,双分支结构例,计算分段函数,单分支 y=cos(x)x3+3*x 结构实现 If x0 Then y=sin(x)+sqrt (x*x+1),If x0 Then 双分支 y=sin(x)+sqr (x*x+1) Else 结构实现 y=cos(x)x3+3*x End If,22,多分支结构,3. IfThenElseIf 语句 If 表达式1 Then 语句块1 ElseIf 表达式2 Then 语句块2 Else 语句块 n+1 End If,作用:根据不同的表达式值确定执行哪个语句块,23,例4.7 已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。 If UCase(ch) = “A“ And UCase(ch) = “ 0“ And ch = “9“ Then 数字字符 MsgBox(ch + “是数字字符“) Else 除上述字符以外的字符 MsgBox(ch + “是其他字符“) End If,不管有几个分支,依次判断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。 ElseIf不能写成 Else If,多分支结构例,24,指If或Else后面的语句块中又包含If语句。 If 表达式1 Then If 表达式2 Then End If End If,If xy Then t=x: x=y: y=t If yz Then t=y: y=z: z=t If xy Then t=x: x=y: y=t End If End If,If语句的嵌套,例 已知x,y,z三个数,使得xyz 用一个IF语句和一个嵌套的IF语句实现,25,4.2.2 Select Case语句,Select Case 变量或表达式 Case 表达式列表1 语句块1 Case 表达式列表2 语句块2 Case Else 语句块n+1 End Select,表达式列表与变量或表达式的类型必须相同,是下面4种形式之一 : 表达式 例: “A“ 一组用逗号分隔的枚举值 2,4,6,8 表达式1 To 表达式2 60 To 100 Is 关系运算符表达式 Is 60,26,Select Case语句例,将例4.7 改用 Select Case 语句实现: Select Case ch Case “a“ To “z“,“A“ To “Z“ MsgBox( ch + “是字母字符“) Case “0“ To “9“ MsgBox (ch +“是数字字符“) Case Else MsgBox( ch + “是其他字符“) End Select 多分支结构,用Select Case语句比IfThenElseIf语句直观,程序可读性强。但不是所有的多分支结构均可用Select Case语句代替IfThenElseIf语句。,27,Select Case语句例,例4.9判断坐标点(x,y),落在哪个象限。,代码一 If x 0 And y 0 Then MsgBox(“在第一象限“) ElseIf x 0 Then MsgBox(“在第二象限“) ElseIf x 0 And y 0 Then MsgBox(“在第四象限“) End If,代码二 Select Case x,y Case x 0 And y 0 MsgBox(“在第一象限”) Case x 0 MsgBox(“在第二象限”) Case x 0 And y 0 MsgBox(“在第四象限”) End Select,代码二错误: 1. Select Case 后不能出现多个变量 2. Case后不能出现变量及有关运算符,28,4.2.3 条件函数,(1) IIf函数 IIf(表达式,表达式为真时的值,表达式为假时的值) IIf函数是If Then Else 结构的简洁表示 例如,将x,y中大的数,放入Tmax变量中: Tmax = IIf(x y,x,y) 该语句与如下语句等价 : If x y Then Tmax = x Else Tmax = y,29,4.2.3 条件函数,(2) Choose函数 Choose(整数表达式,选项列表) 根据表达式的值i,返回选项列表中第i个选项。如果整数表达式的值越出选项范围时,返回Null。 例 根据Nop的值,得到+、-、中的某运算符: Op= Choose(Nop,“+“,“-“,“,“) 例4.10 根据当前日期,显示今日是星期几。 t = Choose(Weekday(Now), “星期日”, “星期一”, “星期二”, “星期三”, “星期四”, “星期五”, “星期六”) MsgBox(“今天是:“ & Now & t),Dim nop As Integer, op As Char Randomize() nop = Int(Rnd() * 4 + 1) op = Choose(nop, “+“, “-“, “, “) MsgBox(“nop=“ & nop & “ op=“ & op),30,4.3 循环结构,计算机最擅长的功能之一就是按规定的条件,重复执行某些操作。 例如,按照人口某增长率,对人口增长统计;根据各课程的学分、绩点和学生的成绩,统计每个学生的平均绩点等。 这类问题都可通过循环结构来方便地实现。VB中提供了主要两类循环语句: For循环语句(一般已知循环次数); Do条件型循环语句(一般未知循环次数).,31,4.3.1 For循环语句,For循环语句用于控制循环次数预知的循环结构。 For 循环变量 初值 To 终值 Step 步长 语句块 Exit For 语句块 Next 循环变量 循环变量必须为数值型。 循环次数,例4.11 计算1100的奇数和,Dim i%, sum% For i = 1 To 100 Step 2 sum = sum + i Next i MsgBox(sum),32,For循环语句,循环流程: (1) 循环变量被赋初值,它仅被赋值一次。 (2) 判断循环变量是否在终值内,如果是,执行循环体;如果否,结束循环,执行Next的下一语句。 (3) 循环变量加步长,转(2),继续循环,33,4.3.2 DoLoop循环语句,Do循环用于控制循环次数未知的循环结构。 形式1: Do While|Until 语句块 Exit Do 语句块 Loop 形式1为先判断后执行,有可能一次也不执行; 形式2为先执行后判断,至少执行一次。,形式2: Do 语句块 Exit Do 语句块 Loop While|Until ,34,DoLoop流程,35,循环例题,例4.13 我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。 解此问题两种方法,可根据公式:,直接利用标准函数对数可求得,但求得的年数不为整数;也可利用循环求得 。,36,4.3.3 循环的嵌套,在一个循环体内又包含了一个完整的循环结构称为循环的嵌套。循环嵌套对For循环语句和DoLoop语句均适用。 例4.14 打印九九乘法表,思考:打印上三角或下三角程序如何改动?,37,4.4 其他辅助控制语句,4.4.1 Go To 语句 无条件地转移到标号或行号指定的那行语句。 Go To 标号|行号 注意:标号是字符序列,首字符必须为字母,标号后应有冒号;行号是一个数字序列; 例4.15 判断输入的数是否为素数 素数就是除1和本身以外,不能被其他任何整数整除的数。根据此定义,判别某数m是否为素数最简单的方法就是依次用i=2m-1去除,只要有一个数能整除m,m就不是素数;否则m是素数。,要求一定范围内的素数,只要将m作为外循环体变量。,38,4.4.2 退出和结束语句,1.Exit语句 VB中有多种形式的Exit语句,用于退出某种控制结构的执行。Exit的形式如下: Exit For、Exit Do、 Exit Sub、Exit Function 2.End语句 独立的End语句用于结束一个程序的运行,它可以放在任何事件过程中。,39,4.5 综合应用,例4.16 由计算机自动产生四则运算题,并能判断答案的正确性。 设计思路: (1)为了减少输入和增加试题内容的随机性,通过随机函数Rnd产生试题的操作数和运算符,操作数范围是110,运算符+、-、可对应编号14,产生表达式通过Form_Load事件过程。 (2)当产生表达式后,学生在文本框内输入结果后按回车键,在图形框显示正确与否的判断结果。 (3)当单击“计分”按钮时,计算机显示得分结果。 本题主要将随机函数、If语句、Select语句综合在一起使用。,本章目录,40,4.5 综合应用-级数求和,例4.18求自然对数e的近似值,其误差小于0.00001。,近似公式,分析:本例涉及到程序设计中两个重要运算: 累加 、连乘i!。 累加:在原有和的基础上再加一个数; 连乘:在原有积的基础上再乘以一个数。 该题先求i!,再将1/i!进行累加,循环次数未知,可先设置一个次数很大的值,然后在循环体内判断是否到达精度,也可用Do While来实现。,41,4.6 程序调试,随着程序的复杂性提高,程序中的错误也伴随而来。 对初学者,看到出现错误不要害怕,关键是如何改正错误,失败是成功之母。 上机的目的,不光是为了验证你编写的程序的正确性,还要通过上机调试,学会查找和纠正错误

温馨提示

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

评论

0/150

提交评论