《最新四章节基本控制结构PPT课件》由会员分享,可在线阅读,更多相关《最新四章节基本控制结构PPT课件(69页珍藏版)》请在金锄头文库上搜索。
1、四章节基本控制结构四章节基本控制结构第四章第四章 基本的控制结构基本的控制结构4.1 4.1 顺序结构顺序结构4.2 4.2 选择结构选择结构4.3 4.3 循环结构循环结构4.4 4.4 其它控制语句和控件其它控制语句和控件4.5 4.5 综合应用综合应用4.6 4.6 程序调试程序调试本章目录本章目录2复合赋值语句复合赋值语句 复合赋值运算符,其作用简化程序代码,提高程序编编译复合赋值运算符,其作用简化程序代码,提高程序编编译的效果。语句形式:的效果。语句形式: 变量名变量名 复合赋值运算符复合赋值运算符 表达式表达式首先首先计算右边表达式的值,计算右边表达式的值,然后然后与左边的变量进行
2、相应的与左边的变量进行相应的运算,运算,最后最后赋值给变量。赋值给变量。复合赋值运算符:复合赋值运算符:+=+=、- =- =、*=*=、=、/=/=、=、&=&=本章目录本章目录例如:例如:a *= b+4 a *= b+4 等价于等价于 a = a*(b+4) a = a*(b+4)9常用复合赋值语句常用复合赋值语句 v累加 sum +=x 等价于 sum = sum+xv计数 n += 1 等价于 n = n+1v显示多行信息 利用 &= 来实现本章目录本章目录如下语句,TextBox1显示结果?TextBox1.Text = VB.NET & vbCrLfTextBox1.Text &
3、= 程序设计教程10赋值语句注意点赋值语句注意点 “=”符号有两个意义 赋值号、关系运算符等号 形式相同,系统会根据所处的位置判断符号意义。 赋值号左边只能是变量,不能是常量、常数符号、表达式。下面均为错误的赋值语句:Now()=x+y 左边是表达式(函数)5=sqrt (s)+x+y 左边是常量X+y=z 左边是表达式本章目录本章目录111. InputBox1. InputBox函数函数 打开一个对话框,等待用户输入,返回字符串类型的输入值。形式:InputBox(提示,标题,默认值,x坐标位置,y坐标位置)4.1.3 4.1.3 数据输出和输入数据输出和输入本章目录本章目录 注意:提示项
4、不能省略。若要多行提示,可在每行行末加回车换行vbCrLf。例4.2利用InputBox输入基本工资和营业额,按营业额的5%提成,计算实发工资并显示。 12 打开一个信息框,等待用户选择一个按按钮。 MsgBox函数返回所选按钮的值, 变量% = MsgBox(提示,按钮,标题) MsgBox函数无独立的语句: MsgBox 提示,按钮,标题 2.MsgBox2.MsgBox函数函数本章目录本章目录按钮:决定信息框按钮的数目、名称及(图标)。返回结果:返回所按的按钮值此两项均为整型表达式或枚举值,枚举名分别为MsgBoxStyle 、MsgBoxResult13MsgBoxMsgBox按钮设置
5、按钮设置 第3个按钮为默认512DefaultButton3第2个按钮为默认 56DefaultButton2第1个按钮为默认 0DefaultButton1默认按钮 信息图标 64Information警告信息图标 48Exclamation询问信息图标 32Question关键信息图标 16Critical图标类型 重试、取消按钮 5RetryCancel是、否按钮 4YesNo是、否、取消按钮 3YesNoCancel终止、重试、忽略按钮 2AboutRetryIgnore确定、取消按钮 1OkCancel确定按钮 0OkOnly按钮数目 描述值枚举值分组 本章目录本章目录枚举枚举 Ms
6、gBoxStyle1415MsgBoxMsgBox所选按钮返回值所选按钮返回值 例4.3 编一账号和密码输入的检验程序,当输入不正确,如账号为非数字字符,密码不正确等,显示有关信息,再输入。VBNo7否VBYes6是VBIgnore5忽略VBRetry4重试VBAbort3终止VBCancel2取消VBOk1确定内部常数返回值被单击按钮NoYesIgnoreRetryAbortCancelOk枚举值 本章目录本章目录代码说明枚举名枚举名 MsgBoxRetry MsgBoxRetry16 WriteWrite、WriteLineWriteLine方法方法 在调试窗口输出信息。Write输出时不
7、换行、WriteLine输出时换行。输出方法: Debug. WriteLine(表达式) Debug. Write (表达式)例 将例4.1输出改为如下语句:Debug.WriteLine(本月营业额为: & x & 基本工资为: & jbgz)Debug.Write(本月实发工资为: & sfgz)选择“视图|其它窗口|输出”显示输出窗口本章目录本章目录174.2 4.2 选择结构选择结构 u计算机要处理的问题往往是复杂多变的,仅采用顺序结构是不够的。u必须利用选择结构等来解决实际应用中的各种问题。uVB中主要通过If条件语句和Select情况语句来实现。它们都是对条件进行判断,根据判断结
8、果,选择执行不同的分支。 本章目录本章目录184.2.1 If4.2.1 If条件语句条件语句 1. IfThen1. IfThen语句语句( (单分支结构单分支结构) ) If Then 语句块(可以是一句或多句语句) End If或 If Then 表 达 式: 算术、关系和逻辑表达式。表达式值:按非零为True,零为False进行判断。作 用: 当表达式值为True,执行Then后面的 语句块,否则不做任何操作。本章目录本章目录19单分支结构单分支结构 例:已知两个数x和y,比较它们的大小,使得x大于y。 If xy Then t=x x=y y=t End If 或 If xy The
9、n t=x: x=y: y=t 本章目录本章目录注意:简单If形式无End If时,只能是一句语句或语句间用冒号分隔,而且必须在一行上书写。20双分支结构双分支结构2. IfThenElse2. IfThenElse语句语句If 表达式 Then语句块1Else语句块2End 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)
10、If x0 Then双分支 y=sin(x)+sqrt (x*x+1) Else结构实现 y=cos(x)x3+3*x End If本章目录本章目录22多分支结构多分支结构 3. IfThenElseIf 3. IfThenElseIf 语句语句 If If 表达式表达式1 Then1 Then 语句块语句块1 1 ElseIf ElseIf 表达式表达式2 Then2 Then 语句块语句块2 2 Else Else 语句块语句块 n+1 n+1 End IfEnd If作用:根据不同的表达式值确定执行哪个语句块 本章目录本章目录说明:u 不管有几个分支,依次判断,当某条件满足,执行相应的语
11、句,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。u ElseIf不能写成 Else If23例4.6 已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。 If UCase(ch) = A And UCase(ch) = 0 And ch = 9 Then 数字字符 MsgBox(ch + 是数字字符) Else 除上述字符以外的字符 MsgBox(ch + 是其他字符) End If多分支结构例多分支结构例本章目录本章目录注意问题注意问题244.2.2 Select Case4.2.2 Select Case语句语句 Selec
12、t Case 变量或表达式 Case 表达式列表1 语句块1 Case 表达式列表2 语句块2 Case Else 语句块n+1End Select表达式列表与变量或表达式的类型必须相同,是下面4种形式之一 :表达式 例: A一组用逗号分隔的枚举值 2,4,6,8 表达式1 To 表达式2 60 To 100Is 关系运算符表达式 Is 0 And y 0 Then MsgBox(在第一象限) ElseIf x 0 Then MsgBox(在第二象限)ElseIf x 0 And y 0 And y 0 And y 0 MsgBox(“在第一象限”) Case x 0 MsgBox(“在第二象
13、限”) Case x 0 And y 0 And y 0 MsgBox(“在第四象限”)End Select代码二错误:1. Select Case 后不能出现多个变量;2. Case后不能出现变量及有关运算符。本章目录本章目录27If语句的嵌套是指If或Else后面的语句块中又包含If语If 表达式1 Then If 表达式2 Then End If End IfIf xy Then t=x: x=y: y=t If yz Then t=y: y=z: z=t If xyz用一个IF语句和一个嵌套的IF语句实现本章目录本章目录284.2.3 4.2.3 条件函数条件函数 (1) IIf(1)
14、 IIf函数函数 IIf(表达式,表达式为真时的值,表达式为假时的值)IIf函数是If Then Else 结构的简洁表示例如,将x,y中大的数,放入Tmax变量中: Tmax = IIf(x y,x,y) 该语句与如下语句等价 : If x y Then Tmax = x Else Tmax = y 本章目录本章目录294.2.3 条件函数条件函数 (2) Choose函数 Choose(整数表达式,选项列表)根据表达式的值i,返回选项列表中第i个选项。如果整数表达式的值越出选项范围时,返回Null。例 根据Nop的值,得到+、-、中的某运算符:Op= Choose(Nop,+,-,) 例4
15、.11 根据当前日期,显示今日是星期几。t = Choose(Weekday(Now), “星期日”, “星期一”, “星期二”, “星期三”, “星期四”, “星期五”, “星期六”)MsgBox(今天是: & Now & t) 本章目录本章目录Dim nop As Integer, op As CharRandomize()nop = Int(Rnd() * 4 + 1)op = Choose(nop, +, -, , )MsgBox(nop= & nop & op= & op)304.2.5 选择控件与分组控件选择控件与分组控件 1.单选按钮(RadioButton) 单选按钮以组的形式
16、出现,允许选择一项。单选按钮以组的形式出现,允许选择一项。 例单选题测试(1)主要属性 Text属性 按钮上显示的文本 Checked属性 表示单选按钮的状态: True 被选定 False 未被选定本章目录本章目录317.1.1 7.1.1 单选按钮单选按钮 (2 2)主要事件)主要事件 Click 单击后使Checked属性为True CheckedChanged 当某个单选按钮的状态被发生变化,该事件随之被触发。本章目录本章目录32一组选项,允许用户选择其中一个或多个一组选项,允许用户选择其中一个或多个例多选题测试(1)主要属性和事件 与单选有相同的属性和事件,增加了: CheckSta
17、te 属性 表示复选框状态Unchecked 未选定Checked 被选定Indeterminate 灰色,2.复选框复选框(CheckBox) 代码说明本章目录本章目录333.分组分组 (GroupBox) 需要在同一个窗体中建立几组相互独立的单选或复选按钮;需要在同一个窗体中建立几组相互独立的单选或复选按钮;具有容器功能。具有容器功能。建立:建立分组,然后将各控件放置其中。属性Text属性 框架上的标题文本框架可以响应Click和DoubleClick事Text属性 分组的标题,无则封闭框线一般不需要编写事件过程。本章目录本章目录特性:移动、复制、删除框架,或对该控件进行Enabled、V
18、isible属性设置时,也同样作用于该组内的其他控件。 34例4.12 通过单选按钮和分组控件设置文本框的Font属性。带来问题:分组上的六个单选按钮,编写6个事件过程解决的方法: 共享事件处理过程 35例4.13 对上例进行改变,再增加字型复选框,用一个事件过程实现。实现思想:对每个按钮要进行状态判断何为共享事件处理过程?共享事件处理过程?即多个控件共享事件处理过程 ,形式:对象对象_ _事件(参数)事件(参数)Handles Handles 对象对象. .事件,对象事件,对象2.2.事件,事件,36例例4.14 4.14 通过单选按钮和复选框选修课程。通过单选按钮和复选框选修课程。关键处理
19、:u只要有一个选择按钮触发;u就要逐一检查选择按钮的状态;u并更新文本框内容。374.3 循环结构循环结构 计算机最擅长的功能之一就是按规定的条件,重复执行某些操作。4.3.14.3.1引例引例求的近似值u 祖冲之用了15年算出值到小数点后面7位;u 第一台计算机计算到2000多位u 1999年东京大学2061.5843亿例4.15 验证祖冲之有效位7位的计算 本章目录本章目录38VBVB中提供了主要的两类循环语句:中提供了主要的两类循环语句:u For循环语句(一般已知循环次数);u Do条件型循环语句(一般未知循环次数). 394.3.2 For循环语句循环语句 For循环语句用于控制循环
20、次数预知的循环结构。For 循环变量 初值 To 终值 Step 步长语句块Exit For语句块Next 循环变量循环变量必须为数值型。循环次数0 初值终值 =1 时,可省略终值=0 死循环步长例例4.16 4.16 计算计算1100的奇数和 本章目录本章目录Dim i%, sum%For i = 1 To 100 Step 2 sum = sum + iNext iMsgBox(sum)40分别用For、If语句实现循环,理解For语句执行过程Dim i%, sum%Sum=0For i = 1 To 100 Step 2 sum = sum + iNext iMsgBox(sum) Su
21、m=0 i=2Re: If i = 100 Then sum = sum + I i=i+2 GoTo Re End If 41For循环语句循环语句 循环流程:(1) 循环变量被赋初值,它仅被赋值一次。(2) 判断循环变量是否在终值内,如果是,执行循环体;如果否,结束循环,执行Next的下一语句。(3) 循环变量加步长,转(2),继续循环 例4.17 将可打印的ASCII码制成表格输出 本章目录本章目录424.3.3 DoLoop循环语句循环语句 Do循环用于控制循环次数未知的循环结构。形式1: Do While|Until 语句块 Exit Do 语句块Loop形式1为先判断后执行,有可能
22、一次也不执行;形式2为先执行后判断,至少执行一次。 形式2:Do 语句块 Exit Do 语句块Loop While|Until 本章目录本章目录43DoLoop流程流程 本章目录本章目录44循环例题循环例题例4.18 我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。解此问题两种方法:u 直接利用标准函数 问题:1)但求得的年数不为整数 2) 得不到实际人数u 利用循环求得 上述两个问题解决了本章目录本章目录45循环例题循环例题例4.19用辗转相除法求两自然数的最大公约数。求最大公约数的算法思想:(1)对于两数m,n,使得mn(2) m除以n得余数r例 m=14 ,n=
23、6 的最大公约数If m n Then t = m: m = n: n = tr=m mod nDo While (r 0) m=n n=r r= m mod nLoopMsgBox “最大公约数=” & n辗转相减法辗转相减法 m=m-n mn n=n-m nm m、n为公约数为公约数 m=nDo 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 2Loop(3)若r=0,则n为最大公约数,结束;否则执行(4)(4)mn,nr,再重复执行(2)本章目录本章目录流程图464.3.4 循环的嵌套循环的
24、嵌套 在一个循环体内又包含了一个完整的循环结构称为循环的嵌套。 循环嵌套对For循环语句和DoLoop语句均适用。例4.20 打印九九乘法表本章目录本章目录思考:思考:打印上三角或下三角程序如何改动?打印上三角或下三角程序如何改动?474.4 其他控制语句和控件其他控制语句和控件 4.4.1 Go To 语句语句 无条件地转移到标号或行号指定的那行语句。 Go To 标号|行号本章目录本章目录代码说明代码说明注意:标号符合标识符规定注意:标号符合标识符规定,后应有冒号;后应有冒号; 行号是一个行号是一个 数字序列;数字序列;48例4.21判断输入的数是否为素数 定义: 素数就是除1和本身以外,
25、不能被其他任何整数整除的数。 算法: m 依次用i=2m-1去除,只要有一个数能整除m,m就不是素数;否则m是素数。 要求一定范围内的素数,只要将m作为外循环体变量。 本章目录本章目录代码说明代码说明注意:标号符合标识符规定,后应有冒号; 行号是一个 数字序列;注意: Goto不符合结构化程序设计的规定改进: 增加一个逻辑型变量Tag,用以判断是否被整除过例4.22 494.4.2 Continue、Exit和和End语句语句1. 1. ContinueContinue 语句语句 VB.NET 2005中新增,.形式: Continue For 、 Continue Do2. Exit2. E
26、xit语句语句 VB中有多种形式的Exit语句,用于退出某种控制结构的执行。Exit的形式如下: Exit For、Exit Do、 Exit Sub、Exit Function本章目录本章目录用于循环结构,相当于循环的断路。 主要用于循环结构,相当于本次循环的短路4.23比较504.4.2 Continue、Exit和和End语句语句3.End3.End语句语句 1)独立的End语句 用于结束一个程序的运行,它可以放在任何事件过程中。 2)与其他控制结构关键字配套的End语句 用于结束一个控制语句或过程或块,相当于语句括号。End语句的多种形式如下: End If 、End Select、E
27、nd With、 End Type、End Function、End Sub等本章目录本章目录514.4.34.4.3滚动条、进度条和定时器滚动条、进度条和定时器 1. 1. 滚动条滚动条( (ScrollBarScrollBar) ) 用于数据输入工具,也可显示数据。 滚动条有水平(H)和垂直(V)两种。本章目录本章目录主要属性主要属性vValue ( (缺省为缺省为0)0)vMinimum ( (缺省为缺省为0)0)vMaximum ( (缺省为缺省为100)100)vSmallChange改变值改变值( (缺省为缺省为1)1)vLargeChange改变值改变值( (缺省为缺省为10)1
28、0)52主要事件主要事件 Scroll 当拖动滑块时触发 ValueChanged 改变Value属性时触发例4.24 设计一个调色板应用程序。设计思想: 三个滚动代表三种基本颜色的输入工具代码说明本章目录本章目录注意:任意一个颜色改变均为影响合成的颜色,因此用共享事件来简化编程。532. 2. 进度条进度条(ProgressBar) 用来指示事务处理的进度. 显示的填充数Value值是Maximum和Minimum间的比值。 主要属性: Maximum、Minimum、 Value 编程使用方法:u确定Maximum 值。例如,如果正在下载文件,Maximum 值为文件的字节数。u变化的Va
29、lue值,使得进度条变化。例如,在该文件下载过程中,Value的值为当前已下载的字节数。例4.25 设计带有进度条的倒计时程序 543. 3. 定时器定时器(Timer) 定时器以一定的时间间隔产生Tick事件 q 属性Enabled 为False时定时器不产生Tick事件Interval 触发Tick事件的时间间隔,单位msq 事件 定时器控件只有一个Tick事件产生Tick事件条件 Enabled=True; Interval0例4.26用一个定时器控制蝴蝶在窗体内的飞舞 本章目录本章目录思考:如何控制飞的速度、如何控制飞的每次距离? 如果飞的过程有三个状态又如何编程?554.5 综合应用
30、综合应用 1. 1. 自测四则运算自测四则运算 例4.15 由计算机自动产生四则运算题,并能判断答案的正确性。设计思路:(1)通过随机函数Rnd产生试题的操作数和运算符,运算符+、-、可对应编号14。产生表达式通过Form_Load事件过程。(2)需要有一个全局变量保存四则运算题的正确答案,用户答案可通过文本框输入。(3)本题主要将随机函数、If语句、Select语句综合在一起使用。本章目录本章目录代码说明564.5 综合应用综合应用 这种方法一般求近似解。这种方法一般求近似解。 关键:找出通项、精度(结束循环条件)关键:找出通项、精度(结束循环条件)近似公式近似公式 本章目录本章目录代码说明
31、代码说明简化:已知(i-1)!,要求i!,只要(i-1)!*i就可,这样就简化成只要通过一重循环求累加( )就可。 1.1.计算部分级数和计算部分级数和 例4.27求自然对数e的近似值,其误差小于0.00001。分析:本例涉及到程序设计中两个重要运算: 累加 、连乘 。572.试凑法试凑法例4.28 百元买百鸡。假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方案。分析: 设母鸡、公鸡、小鸡各为x、y、z,列出方程为:x+y+z= 1003x+2y+0.5z = 100三个未知数,两个方程,此题求若干个整数解。本章目录本章目录 将可能出现的各种情况一一罗列测试,判断是否满足条件,采用
32、循环结构来实现。583. 递推法(又称为迭代法)递推法(又称为迭代法)例4.29小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少?分析:用后一天的数推出前一天的桃子数。设第n天的桃子为xn,是前一天的桃子的二分之一减去1。 本章目录本章目录思想把一个复杂的计算过程转化为简单过程的多次重复。方法:是已知(或假设)一个初(旧)值,通过公式递推出新值,并由新值代替旧值,不断重复。迭代法类似的应用求高次方程的近似根。迭代法类似的应用求高次方程的近似根。594. 自测四则运算自测四则运算 例4.30 由计算机自动产生四
33、则运算题,并能判断答案的正确性。设计思路:设计思路:本章目录本章目录代码说明u 通过随机函数Rnd产生试题的操作数和运算符,运算符+、-、可对应编号14。产生表达式通过Form_Load事件过程。u 需要有一个全局变量保存四则运算题的正确答案,用户答案可通过文本框输入。u 本题主要将随机函数、If语句、Select语句综合在一起使用。605.5.控件应用控件应用例4.31模拟车子在交通灯的控制下行使过程 分析:分析:本章目录本章目录定时器和文本框控制交通灯三种信号切换;小车行驶到停车线附近,根据交通灯的情况进行控制: 1)红灯和黄灯,减速行驶,直到停车线时停止; 2)绿灯继续行驶 3)若不到规
34、定正常速度,则加速。61设计:设计:控件设置:Picturebox1Picturebox3为红黄绿灯, 运行时不可见;Picturebox4为当前交通灯;Picturebox 5为小车;Picturebox10停车线效果。利用定时器间隔(Interval为0.1秒)控制红、绿和黄灯的切换,延时时间由文本框获得(单位秒数); 红灯、黄灯、绿灯的开启时间分别用变量i1、i2、i3表示,单位为秒;交通灯转换次序:红灯、黄灯、绿灯、黄灯;交通灯转换周期:i0 = i1 + i2 + i3 + i2。定时器设时间变量i,i1*10、(i1+i2)*10、(i1+i2+i3)*10分别表示红、黄、绿的开启
35、时间点。定时器设灯开启变量k,k=1、2、3分别表示红、黄、绿灯开启。624.6 4.6 程序调试程序调试 u随着程序的复杂性提高,程序中的错误也伴随而来。u对初学者,看到出现错误不要害怕,关键是如何改正错误,失败是成功之母。u上机的目的,不光是为了验证你编写的程序的正确性,还要通过上机调试,学会查找和纠正错误的方法和能力。uVB为调试程序提供了一组交互的、有效的调试工具。 本章目录本章目录634.6.1 错误类型错误类型语法错误、运行时错误和逻辑错误三类。1.1.语法错误语法错误错误的代码下显示波浪线,任务窗口上显示警告信息,鼠标指向波浪线时,显示出错的原因。 本章目录本章目录642.2.运
36、行错误运行错误指令代码执行了一非法操作引起的。例如,类型不匹配、试图打开一个不存在的文件等。程序会自动中断,并给出有关的错误信息。 本章目录本章目录653.3.逻辑错误逻辑错误 程序运行后,得不到所期望的结果,这说明程序存在逻辑错误。例如,运算符使用不正确、语句的次序不对、循环语句的起始、终值不正确等。通常,逻辑错误不会产生错误提示信息,故错误较难排除,需要程序员仔细地阅读分析程序,并具有调试程序的经验。 本章目录本章目录664.6.2 调试和排错调试和排错 VB.NETVB.NET的三种模式的三种模式 (1) 设计模式(设计) 可以进行程序的界面设计、属性设置、代码编写等。(2) 运行模式(运行)执行启动命令进入运行模式。在此阶段,可以查看程序代码,但不能修改。(3) 中断模式(Break)执行中断命令,进入中断模式。在中断模式下可以查看代码、修改代码、检查数据。本章目录本章目录67调试和排错调试和排错- -插入断点插入断点按下F9键 按F8键跟踪执行 鼠标指向所关心的变量本章目录本章目录68