基本的控制结构教学.ppt_第1页
基本的控制结构教学.ppt_第2页
基本的控制结构教学.ppt_第3页
基本的控制结构教学.ppt_第4页
基本的控制结构教学.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

第四章 基本的控制结构,第四章 基本的控制结构,4.1 顺序结构 4.2 选择结构 4.3 循环结构 4.4 其它控制语句和控件 4.5 综合应用 4.6 程序调试,本章目录,4.1 顺序结构,VB具有结构化程序设计的三种程序控制结构,即顺序结构、选择结构、循环结构,是程序设计的基础。,本章目录,(1)顺序结构 各语句按出现的先后次序执行,用传统流程图表示为,(2)选择结构,传统流程图:,根据条件决定执行的语句,(3)循环结构,I 、当型循环结构,II 、直到型循环结构,根据条件重复执行语句(称为循环体),4.1 顺序结构 一般程序设计语言中顺序结构的语句主要: 赋值语句和 输入/输出语句等。 在VB.net中 赋值语句 输入/输出通过: 文本框控件、标签控件、 InputBox函数、MsgBox函数 Write方法,4.1.1 引例温度转换,本章目录,例4.1 华氏温度与摄氏温度之间转换。 要求: 已知华氏温度,转换成摄氏温度; 同样,已知摄氏温度,转换成华氏温度; 换显示保留两位小数。 华氏温度与摄氏温度之间转换的公式是:,程序运行不管输入摄氏温度C多少,显示结果华氏温度始终不变,原因?,4.1.2 赋值语句,形式: 变量名表达式 对象名. 属性名=表达式 功能:计算表达式的值,再将此值赋给变量或对象属性。 给变量赋值和设定属性是VB编程中常见的两个任务. 例如: x!=0.1 x为单精度变量,赋值0.1 TextBox1.Text “ 清除文本框的内容 TextBox1.Text “欢迎使用VB.Net “,本章目录,复合赋值语句,复合赋值运算符,其作用简化程序代码,提高程序编编译的效果。语句形式: 变量名 复合赋值运算符 表达式 首先计算右边表达式的值,然后与左边的变量进行相应的运算,最后赋值给变量。 复合赋值运算符:+=、- =、*=、=、/=、=、&=,本章目录,例如:a *= b+4 等价于 a = a*(b+4),常用复合赋值语句,累加 sum +=x 等价于 sum = sum+x 计数 n += 1 等价于 n = n+1 显示多行信息 利用 &= 来实现,本章目录,如下语句,TextBox1显示结果? TextBox1.Text = “ VB.NET “ & vbCrLf TextBox1.Text &= “程序设计教程“,赋值语句注意点,“=”符号有两个意义 赋值号、关系运算符等号 形式相同,系统会根据所处的位置判断符号意义。 赋值号左边只能是变量,不能是常量、常数符号、表达式。下面均为错误的赋值语句: Now()=x+y 左边是表达式(函数) 5=sqrt (s)+x+y 左边是常量 X+y=z 左边是表达式,本章目录,1. InputBox函数 打开一个对话框,等待用户输入,返回字符串类型的输入值。 形式:InputBox(提示,标题,默认值,x坐标位置,y坐标位置),4.1.3 数据输出和输入,本章目录,注意:提示项不能省略。 若要多行提示,可在每行 行末加回车换行vbCrLf。,例4.2利用InputBox输入基本工资和营业额,按营业额的5%提成,计算实发工资并显示。,打开一个信息框,等待用户选择一个按按钮。 MsgBox函数返回所选按钮的值, 变量% = MsgBox(提示,按钮,标题) MsgBox函数无独立的语句: MsgBox 提示,按钮,标题,2.MsgBox函数,本章目录,按钮:决定信息框按钮的数目、名称及(图标)。 返回结果:返回所按的按钮值 此两项均为整型表达式或枚举值,枚举名分别为MsgBoxStyle 、MsgBoxResult,MsgBox按钮设置,本章目录,枚举 MsgBoxStyle,MsgBox所选按钮返回值,例4.3 编一账号和密码输入的检验程序,当输入不正确,如账号为非数字字符,密码不正确等,显示有关信息,再输入。,本章目录,代码说明,枚举名 MsgBoxRetry,Write、WriteLine方法,在调试窗口输出信息。Write输出时不换行、WriteLine输出时换行。输出方法: Debug. WriteLine(表达式) Debug. Write (表达式) 例 将例4.1输出改为如下语句: Debug.WriteLine(“本月营业额为:“ & x & “ 基本工资为:“ & jbgz) Debug.Write(“本月实发工资为:“ & sfgz) 选择“视图|其它窗口|输出”显示输出窗口,本章目录,4.2 选择结构,计算机要处理的问题往往是复杂多变的,仅采用顺序结构是不够的。 必须利用选择结构等来解决实际应用中的各种问题。 VB中主要通过If条件语句和Select情况语句来实现。它们都是对条件进行判断,根据判断结果,选择执行不同的分支。,本章目录,4.2.1 If条件语句,1. IfThen语句(单分支结构) If Then 语句块(可以是一句或多句语句) End If 或 If Then 表 达 式: 算术、关系和逻辑表达式。 表达式值:按非零为True,零为False进行判断。 作 用: 当表达式值为True,执行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,本章目录,注意:简单If形式无End If时,只能是一句语句或语句间用冒号分隔,而且必须在一行上书写。,双分支结构,2. IfThenElse语句 If 表达式 Then 语句块1 Else 语句块2 End If 或 If 表达式 Then 语句1 Else 语句2,本章目录,作用:当表达式的值为True时,执行Then后面的语句块1,否则执行Else后面的语句块2,双分支结构例,计算分段函数,单分支 y=cos(x)x3+3*x 结构实现 If x0 Then y=sin(x)+sqrt (x*x+1),If x0 Then 双分支 y=sin(x)+sqrt (x*x+1) Else 结构实现 y=cos(x)x3+3*x End If,本章目录,多分支结构,3. IfThenElseIf 语句 If 表达式1 Then 语句块1 ElseIf 表达式2 Then 语句块2 Else 语句块 n+1 End If,作用:根据不同的表达式值确定执行哪个语句块,本章目录,说明:,不管有几个分支,依次判断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。 ElseIf不能写成 Else If,例4.6 已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。 If UCase(ch) = “A“ And UCase(ch) = “ 0“ And ch = “9“ Then 数字字符 MsgBox(ch + “是数字字符“) Else 除上述字符以外的字符 MsgBox(ch + “是其他字符“) End If,多分支结构例,本章目录,注意问题,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,本章目录,Select Case语句例,例4.8 将例4.5 改用 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语句。,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后不能出现变量及有关运算符。,本章目录,If语句的嵌套是指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语句的嵌套,例4.10 已知x,y,z三个数,使得xyz 用一个IF语句和一个嵌套的IF语句实现,本章目录,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,本章目录,4.2.3 条件函数,(2) Choose函数 Choose(整数表达式,选项列表) 根据表达式的值i,返回选项列表中第i个选项。如果整数表达式的值越出选项范围时,返回Null。 例 根据Nop的值,得到+、-、中的某运算符: Op= Choose(Nop,“+“,“-“,“,“) 例4.11 根据当前日期,显示今日是星期几。 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),4.2.5 选择控件与分组控件,1.单选按钮(RadioButton) 单选按钮以组的形式出现,允许选择一项。 例单选题测试 (1)主要属性 Text属性 按钮上显示的文本 Checked属性 表示单选按钮的状态: True 被选定 False 未被选定,本章目录,7.1.1 单选按钮,(2)主要事件 Click 单击后使Checked属性为True CheckedChanged 当某个单选按钮的状态被发生变化,该事件随之被触发。,本章目录,一组选项,允许用户选择其中一个或多个 例多选题测试 (1)主要属性和事件 与单选有相同的属性和事件,增加了: CheckState 属性 表示复选框状态 Unchecked 未选定 Checked 被选定 Indeterminate 灰色,,2.复选框(CheckBox),代码说明,本章目录,3.分组 (GroupBox),需要在同一个窗体中建立几组相互独立的单选或复选按钮;具有容器功能。 建立:建立分组,然后将各控件放置其中。 属性 Text属性 框架上的标题文本 框架可以响应Click和DoubleClick事Text属性 分组的标题,无则封闭框线 一般不需要编写事件过程。,本章目录,特性:移动、复制、删除框架,或对该控件进行Enabled、Visible属性设置时,也同样作用于该组内的其他控件。,例4.12 通过单选按钮和分组控件设置文本框的Font属性。,带来问题: 分组上的六个单选按钮,编写6个事件过程,解决的方法: 共享事件处理过程,例4.13 对上例进行改变,再增加字型复选框,用一个事件过程实现。 实现思想: 对每个按钮要进行状态判断,何为共享事件处理过程? 即多个控件共享事件处理过程 ,形式:,对象_事件(参数)Handles 对象.事件,对象2.事件,,例4.14 通过单选按钮和复选框选修课程。 关键处理: 只要有一个选择按钮触发; 就要逐一检查选择按钮的状态; 并更新文本框内容。,4.3 循环结构,计算机最擅长的功能之一就是按规定的条件,重复执行某些操作。 4.3.1引例求的近似值 祖冲之用了15年算出值到小数点后面7位; 第一台计算机计算到2000多位 1999年东京大学2061.5843亿 例4.15 验证祖冲之有效位7位的计算,本章目录,VB中提供了主要的两类循环语句: For循环语句(一般已知循环次数); Do条件型循环语句(一般未知循环次数).,4.3.2 For循环语句,For循环语句用于控制循环次数预知的循环结构。 For 循环变量 初值 To 终值 Step 步长 语句块 Exit For 语句块 Next 循环变量 循环变量必须为数值型。 循环次数,例4.16 计算1100的奇数和,本章目录,Dim i%, sum% For i = 1 To 100 Step 2 sum = sum + i Next i MsgBox(sum),分别用For、If语句实现循环,理解For语句执行过程,Dim i%, sum% Sum=0 For i = 1 To 100 Step 2 sum = sum + i Next i MsgBox(sum),Sum=0 i=2 Re: If i = 100 Then sum = sum + I i=i+2 GoTo Re End If,For循环语句,循环流程: (1) 循环变量被赋初值,它仅被赋值一次。 (2) 判断循环变量是否在终值内,如果是,执行循环体;如果否,结束循环,执行Next的下一语句。 (3) 循环变量加步长,转(2),继续循环,例4.17 将可打印的ASCII码制成表格输出,本章目录,4.3.3 DoLoop循环语句,Do循环用于控制循环次数未知的循环结构。 形式1: Do While|Until 语句块 Exit Do 语句块 Loop 形式1为先判断后执行,有可能一次也不执行; 形式2为先执行后判断,至少执行一次。,形式2: Do 语句块 Exit Do 语句块 Loop While|Until ,本章目录,DoLoop流程,本章目录,循环例题,例4.18 我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。 解此问题两种方法: 直接利用标准函数 问题:1)但求得的年数不为整数 2) 得不到实际人数,利用循环求得 上述两个问题解决了,本章目录,循环例题,例4.19用辗转相除法求两自然数的最大公约数。 求最大公约数的算法思想: (1)对于两数m,n,使得mn (2) m除以n得余数r,例 m=14 ,n=6 的最大公约数 If m 0) m=n n=r r= m mod n Loop MsgBox “最大公约数=” & n,辗转相减法 m=m-n mn n=n-m nm m、n为公约数 m=n Do While m n m n If m n Then 14 6 m = m n 8 6 Else 2 6 n = n m 2 4 End If 2 2 Loop,(3)若r=0,则n为最大公约数,结束;否则执行(4) (4)mn,nr,再重复执行(2),本章目录,流程图,4.3.4 循环的嵌套,在一个循环体内又包含了一个完整的循环结构称为循环的嵌套。 循环嵌套对For循环语句和DoLoop语句均适用。 例4.20 打印九九乘法表,本章目录,思考:打印上三角或下三角程序如何改动?,4.4 其他控制语句和控件,4.4.1 Go To 语句 无条件地转移到标号或行号指定的那行语句。 Go To 标号|行号,本章目录,代码说明,注意:标号符合标识符规定,后应有冒号; 行号是一个 数字序列;,例4.21判断输入的数是否为素数 定义: 素数就是除1和本身以外,不能被其他任何整数整除的数。 算法: m 依次用i=2m-1去除,只要有一个数能整除m,m就不是素数;否则m是素数。,要求一定范围内的素数,只要将m作为外循环体变量。,本章目录,代码说明,注意:标号符合标识符规定,后应有冒号; 行号是一个 数字序列;,注意: Goto不符合结构化程序设计的规定 改进: 增加一个逻辑型变量Tag,用以判断是否被整除过 例4.22,4.4.2 Continue、Exit和End语句,1. Continue 语句 VB.NET 2005中新增,.形式: Continue For 、 Continue Do 2. Exit语句 VB中有多种形式的Exit语句,用于退出某种控制结构的执行。Exit的形式如下: Exit For、Exit Do、 Exit Sub、Exit Function,本章目录,用于循环结构,相当于循环的断路。,主要用于循环结构,相当于本次循环的短路,4.23比较,4.4.2 Continue、Exit和End语句,3.End语句 1)独立的End语句 用于结束一个程序的运行,它可以放在任何事件过程中。 2)与其他控制结构关键字配套的End语句 用于结束一个控制语句或过程或块,相当于语句括号。End语句的多种形式如下: End If 、End Select、End With、 End Type、End Function、End Sub等,本章目录,4.4.3滚动条、进度条和定时器,1. 滚动条(ScrollBar) 用于数据输入工具,也可显示数据。 滚动条有水平(H)和垂直(V)两种。,本章目录,主要属性 Value (缺省为0) Minimum (缺省为0) Maximum (缺省为100) SmallChange改变值(缺省为1) LargeChange改变值(缺省为10),主要事件,Scroll 当拖动滑块时触发 ValueChanged 改变Value属性时触发 例4.24 设计一个调色板应用程序。 设计思想: 三个滚动代表三种基本颜色的输入工具,代码说明,本章目录,注意:任意一个颜色改变均为影响合成的颜色,因此用共享事件来简化编程。,2. 进度条(ProgressBar) 用来指示事务处理的进度. 显示的填充数Value值是Maximum和Minimum间的比值。 主要属性: Maximum、Minimum、 Value 编程使用方法:,确定Maximum 值。例如,如果正在下载文件,Maximum 值为文件的字节数。 变化的Value值,使得进度条变化。例如,在该文件下载过程中,Value的值为当前已下载的字节数。,例4.25 设计带有进度条的倒计时程序,3. 定时器(Timer),定时器以一定的时间间隔产生Tick事件 属性 Enabled 为False时定时器不产生Tick事件 Interval 触发Tick事件的时间间隔,单位ms 事件 定时器控件只有一个Tick事件 产生Tick事件条件 Enabled=True; Interval0 例4.26用一个定时器控制蝴蝶在窗体内的飞舞,本章目录,思考:如何控制飞的速度、如何控制飞的每次距离? 如果飞的过程有三个状态又如何编程?,4.5 综合应用,1. 自测四则运算 例4.15 由计算机自动产生四则运算题,并能判断答案的正确性。 设计思路: (1)通过随机函数Rnd产生试题的操作数和运算符,运算符+、-、可对应编号14。产生表达式通过Form_Load事件过程。 (2)需要有一个全局变量保存四则运算题的正确答案,用户答案可通过文本框输入。 (3)本题主要将随机函数、If语句、Select语句综合在一起使用。,本章目录,代码说明,4.5 综合应用,这种方法一般求近似解。 关键:找出通项、精度(结束循环条件),近似公式,本章目录,代码说明,简化:已知(i-1)!,要求i!,只要(i-1)!*i就可,这样就简化成只要通过一重循环求累加( )就可。,1.计算部分级数和,例4.27求自然对数e的近似值,其误差小于0.00001。,分析:本例涉及到程序设计中两个重要运算: 累加 、连乘 。,2.试凑法,例4.28 百元买百鸡。假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方案。 分析: 设母鸡、公鸡、小鸡各为x、y、z,列出方程为: x+y+z= 100 3x+2y+0.5z = 100 三个未知数,两个方程,此题求若干个整数解。,本章目录,将可能出现的各种情况一一罗列测试,判断是否满足条件,采用循环结构来实现。,3. 递推法(又称为迭代法),例4.29小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少? 分析:用后一天的数推出前一天的桃子数。设第n天的桃子为xn,是前一天的桃子的二分之一减去1。,本章目录,思想把一个复杂的计算过程转化为简单过程的多次重复。 方法:是已知(或假设)一个初(旧)值,通过公式递推出新值,并由新值代替旧值,不断重复。,迭代法类似的应用求高次方程的近似根。,4. 自测四则运算 例4.30 由计算机自动产生四则运算题,并能判断答案的正确性。 设计思路:,本章目录,代码说明,通过随机函数Rnd产生试题的操作数和运算符,运算符+、-、可对应编号14。产生表达式通过Form_Load事件过程。 需要有一个全局变量保存四则运算题的正确答案,用户答案可通过文本框输入。 本题主要将随机函数、If语句、Select语句综合在一起使用。,5.控件应用

温馨提示

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

评论

0/150

提交评论