第5章 Visual Basic控制结构 郭清溥.

Slides:



Advertisements
Similar presentations
1 程式語言 Visual Basic 循序結構、選擇結構 黃瀧輝 老師 Long Hwai,Huang.
Advertisements

10.2.switch语句.
Visual Basic 程序设计 第四讲.
第 1 章 公共基础知识 第 2 章 Visual Basic程序开发环境 第 3 章 对象及其操作 第 4 章 数据类型及其运算
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
圆的一般方程 (x-a)2 +(y-b)2=r2 x2+y2+Dx+Ey+F=0 Ax2+Bxy+Cy2+Dx+Ey+ F=0.
18.2一元二次方程的解法 (公式法).
第四章 控制结构.
第4章 选择结构程序设计 选择结构是计算机科学用来描述自然界和社会生活中分支现象的手段。其特点是:根据所给定选择条件为真(即分支条件成立)与否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作,并且任何情况下恒有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。
赋值语句与输入、输出语句.
密码程序设置.
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
10.2 立方根.
Visual Basic 期中報告 組長:沈亞臻 組員:蔣佳育 張庭茹
勾股定理 说课人:钱丹.
C语言实验 第一课 标题:学号+姓名.
算法和程序设计 第4课 分支结构的算法设计 •.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
C#程序设计基础 $5 流程控制.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
程式語言 I – VISUAL BASIC 選擇結構語法與應用 Chapter 7 認知
选择结构设计 第 4 章.
初识Visual Basic.
第4章 程序控制结构与算法基础.
計算機程式 廖文淵 Department of Computer Science and Engineering
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
走进编程 程序的顺序结构(二).
辅导课程六.
第4章 数据输入输出 郭清溥.
第12章 VBA模块设计.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第5章 Visual Basic控制结构 之 常用算法举例
人教版数学四年级(下) 乘法分配律 单击页面即可演示.
第二章 Java语言基础.
算法与程序设计 周少品.
江西财经大学信息管理学院 《数据库应用》课程组2007
第六章 選擇結構 (應用:核取方塊、選項按鈕、框架)
第4章 PHP流程控制语句.
C语言程序设计 主讲教师:陆幼利.
小结 郭清溥.
C语言程序设计 第二章 程序的灵魂 -- 算法.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
《计算机应用基础》 第9章 程序设计基础(二).
第4章 Excel电子表格制作软件 4.4 函数(一).
选择结构设计 第 4 章 程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
第四章 控制结构 1、顺序控制结构 2、选择结构 3、循环结构.
算法初步 §1.1.2 程序框图.
College of Computer Science & Technology
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
第二章 Java基本语法 讲师:复凡.
3.13 选择结构程序设计初步.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
输入语句 输出语句 赋值语句 条件语句 循环语句
选择结构又称为分支结构。 在选择结构程序设计中,根据条件的判断情况需要选择不同的语句组执行。 选择结构类型:
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
鸡兔同笼(续) ——选择结构.
1.2.2条件语句.
程序调试与错误处理.
3.9算法及VB初步3 ——以“鸡兔同笼”为例.
任课教师:戴开宇 TA:时均帅、谭肖、王安华 程序设计B班 :20-16:50(90分钟)
Presentation transcript:

第5章 Visual Basic控制结构 郭清溥

第5章Visual Basic控制结构 【本章要点】 程序设计三种基本结构: 顺序结构 选择结构 循环结构 常用算法。 课时安排 6学时(理论),6学时(上机)

5.1 算法及其描述 还记得吗? 2.1.2 程序设计 2.程序设计的步骤 (3) 描述算法 自然语言不够精确,容易产生歧义性; 2.1.2 程序设计 2.程序设计的步骤 (3) 描述算法 自然语言不够精确,容易产生歧义性; 伪码非常接近源代码,它要求程序员必须了解这种源代码才行; 流程图是用几何图形、线条、必要的文字来描述处理的步骤,相对来讲比较直观。 还记得吗?

5.1 算法及其描述 还记得吗? 2.1.2 程序设计 2.程序设计的步骤 (3) 描述算法 流程图 表示两个具有相同标记的“连接点”相连 2.1.2 程序设计 2.程序设计的步骤 还记得吗? 流程图 (3) 描述算法 表示两个具有相同标记的“连接点”相连 连接点 表示算法的流动方向 流向线 表示对框内的条件进行判断 判断框 表示对框内的内容进行处理 处理框 表示输入/输出操作 输入/输出框 表示算法的开始或结束 起止框 含义 符号名称 符号

5.1 算法及其描述 还记得吗? 2.1.2 程序设计 2.程序设计的步骤 (3) 描述算法 流程图 False True 条件 A A B 2.1.2 程序设计 2.程序设计的步骤 还记得吗? 流程图 (3) 描述算法 B A 条件 True False A B A 条件 True False

5.1 算法及其描述 还记得吗? 2.1.2 程序设计 2.程序设计的步骤 (3) 描述算法 N-S盒图 True False B A 条件 2.1.2 程序设计 2.程序设计的步骤 还记得吗? (3) 描述算法 N-S盒图 True False B A 条件 A 条件 A B

5.1+ 顺序结构的程序设计 顺序结构是一种线性结构。是程序设计中最简单同时也是最基本的结构。它要求顺序地执行每一个基本的加工处理单位。 语句组1 语句组n 语句组2 … … 语句组2 语句组1 开始 结束 语句组n

5.1+ 顺序结构的程序设计 例 Visual Basic期终成绩由三部分组成:期终考试、作业和测试成绩,它们分别占70%,10%,20%。现有一个学生的成绩依次为 89,90,78,编写程序,求其总评成绩。 例 鸡兔同笼问题:鸡和兔子被放在同一个笼中,现在已知鸡兔的总头数和总脚数。编写程序,求笼中鸡和兔子各多少只?

5.1+ 顺序结构的程序设计 例 编写程序,在实数范围内求解一元二次方程: aX2+bX+c=0 例 A、B、C三人上街买糖果。三人买好后,A对B、C说:“我可以按你们现有的数量再送你们每人一份。”之后,B对A、C ;C对A、B也说了同样的话。互相赠送后,每人各有64块糖果。编写程序,计算A、B、C原来各买了多少块糖果?

5.2 选择结构 选择结构,是一种常用的主要基本结构,是计算机科学用来描述分支现象的重要手段。其特点是:根据所给定选择条件为真(即分支条件成立)与否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作。并且任何情况下恒有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。

5.2 选择结构 5.2.1 简单选择结构 单分支结构格式 功能 块方式: If <条件> Then 5.2.1 简单选择结构 单分支结构格式 功能 块方式: If <条件> Then <语句组1> End If 行方式: If <条件> Then <语句组1> 当条件为真时,执行语句组1;当条件为假时,顺序向下执行。

5.2 选择结构 5.2.1 简单选择结构 单分支结构流程图 语句组1 条件 True False True 条件 ? False 语句组1

T Y = 5 X = 3 Y 5 X 3 T = 5.2 选择结构 5 3 5 5.2.1 简单选择结构 例如: 5.2.1 简单选择结构 例如: 两个数据X,Y比较大小,使得X不小于Y。 间接交换: T = Y : Y = X : X = T 比较时会涉及到交换。 T Y = 5 5 间接交换 ③ ① X = 3 3 Y 5 X 3 ② T = 5 交换

5.2 选择结构 5.2.1 简单选择结构 例如: 两个数据X,Y比较大小。使得X不小于Y。 用下面的语句可以实现 块方式: 5.2.1 简单选择结构 例如: 两个数据X,Y比较大小。使得X不小于Y。 用下面的语句可以实现 块方式: If X < Y Then T = Y : Y = X : X = T EndIf 行方式: If X < Y Then T = Y : Y = X : X = T

5.2 选择结构 5.2.1 简单选择结构 功能 双分支结构格式 块方式: 当条件为真时,执行语句组1;当条件为假时,执行语句组2 。 5.2.1 简单选择结构 双分支结构格式 功能 块方式: If <条件> Then <语句组1> Else <语句组2> End If 行方式: If <条件> Then <语句组1> Else <语句组2> 当条件为真时,执行语句组1;当条件为假时,执行语句组2 。

5.2 选择结构 语句组2 语句组1 条件 5.2.1 简单选择结构 双分支结构流程图 条件 语句组1 语句组2 True False 5.2.1 简单选择结构 双分支结构流程图 条件 语句组1 语句组2 True False 语句组2 语句组1 条件 True False

5.2 选择结构 5.2.1 简单选择结构 例如: x>0 y = x≤0 这个问题可有多种方法实现:

5.2 选择结构 5.2.1 简单选择结构 例如: x>0 y = x≤0 双分支结构: …… If x > 0 Then 5.2.1 简单选择结构 x>0 y = x≤0 例如: 双分支结构: …… If x > 0 Then y = Sin(x) + Sqr((x * x + 1) / x) Else y = Sqr(x*x+1)-5*x End If

5.2 选择结构 5.2.1 简单选择结构 例如: x>0 y = x≤0 可以实现,但不够优化! 单分支结构方法1: …… 5.2.1 简单选择结构 例如: x>0 y = x≤0 可以实现,但不够优化! 单分支结构方法1: …… If x > 0 Then y = Sin(x)+ Sqr((x * x + 1)/x) If x <= 0 Then y = Sqr(x*x+1)-5*x

5.2 选择结构 ? 5.2.1 简单选择结构 例如: x>0 y = x≤0 可以实现,但不够优化! 单分支结构方法2: 语句 5.2.1 简单选择结构 例如: x>0 y = x≤0 可以实现,但不够优化! 单分支结构方法2: …… y = Sqr(x*x+1)-5*x If x > 0 Then y = Sin(x)+ Sqr((x * x + 1)/x) 语句 If x > 0 Then y = Sin(x)+ Sqr((x * x + 1)/x)) 起作用吗? 当X=-1时表达式 Sin(x)+ Sqr((x * x + 1)/x)的结果是什么? 请思考:这样修改程序行吗?为什么? ? …… y = Sin(x)+ Sqr((x * x + 1)/x) If x <= 0 Then y = Sqr(x*x+1)-5*x …… If x > 0 Then y = Sin(x)+ Sqr((x * x + 1)/x) y = Sqr(x*x+1)-5*x

5.2 选择结构 5.2.2 选择结构的嵌套 选择结构内部如果包含了选择结构,这就叫做分支结构的嵌套(或者叫做If语句的嵌套)。 5.2.2 选择结构的嵌套 选择结构内部如果包含了选择结构,这就叫做分支结构的嵌套(或者叫做If语句的嵌套)。 嵌套时要注意: 嵌套的每一个 If 语句必须与 EndIf 配对且使用缩格书写。

编写程序,输入一个X的值,按照以下表达式计算 Y 的值: 5.2 选择结构 5.2.2 选择结构的嵌套 编写程序,输入一个X的值,按照以下表达式计算 Y 的值: 1+X2 (X>0) ① Y= 0 (X=0) ② 1-X2 (X<0) ③ 例5 分析: 我们要根据输入的X的值的范围确定选用哪个表达式计算Y: 如果X>0成立,则利用表达式①计算Y的值; 否则,如果X=0成立,则利用表达式②计算Y的值; 否则,X<0一定成立,利用表达式③计算Y的值。 这就形成了选择结构的嵌套。

5.2 选择结构 5.2.2 选择结构的嵌套 例5

5.2 选择结构 Private Sub comStart_Click() 5.2.2 选择结构的嵌套 Dim X!, Y! 5.2.2 选择结构的嵌套 Private Sub comStart_Click() Dim X!, Y! X = Val(txtX.Text) If X > 0 Then Y = 1 + X * X Else If X < 0 Then Y = 0 Y = 1 - X * X End If txtY.Text = Y End Sub 例5

5.2 选择结构 5.2.3 多分支结构 1. Select Case 语句 功能 格式 Select Case <测试表达式> 在给出的多个备选分支中,测试表达式顺序与表达式1、表达式2比较,当某个比较的结果为真时,则执行下面相应的语句组,语句组执行完成以后,转到End Select语句后执行;如果前面的表达式都不成立,则执行语句组 N+1。 Select Case <测试表达式> Case <表达式1> <语句组1> Case <表达式2> <语句组2> …… [Case Else <语句组 n+1> ] End Select

5.2 选择结构 5.2.3 多分支结构 1. Select Case 语句 说明 (1) Case 语句中的表达式有三种不同的形式: ① 表达式1 [,表达式2 ] … 例如, Case 2,4,6,9 ② 表达式1 To 表达式2 例如, Case "A" To "E" ③ Is 关系表达式 例如, Case Is<=12

5.2 选择结构 5.2.3 多分支结构 1. Select Case 语句 说明 例如, Case 2,4,9 To 12 即当测试值为2、或4、或9、或10、或11、或12时成立。 “测试表达式”的类型应同Case表达式的类型一致。

5.2 选择结构 5.2.3 多分支结构 2.多分支If 语句 功能 格式 当条件1为真时,执行语句组1;当条件2为真时,执行语句组2;……;当条件均为假时,执行语句组n+1。 如果Else选项缺省,且条件均不成立,则顺序向下执行。 If <条件1> Then <语句组1> ElseIf <条件2> Then <语句组2> …… ElseIf <条件n> Then <语句组n> [ Else <语句组n+1> ] End If

5.2 选择结构 5.2.3 多分支结构 2.多分支If 语句 多分支If结构流程图

5.2 选择结构 5.2.3 多分支结构 2.多分支If 语句 多分支If结构流程图

5.2 选择结构 5.2.3 多分支结构 例6 编写程序,将学生的百分制成绩按要求转换成相应的等次输出。等次分为五种,具体划分为: 90 ~ 100: 优秀 80 ~ 89: 良好 70 ~ 79: 中等 60 ~ 69: 及格 0 ~ 59: 不及格

5.2 选择结构 5.2.3 多分支结构 例6 分析: 90 ~ 100: 优秀 80 ~ 89: 良好 70 ~ 79: 中等 90 ~ 100: 优秀 80 ~ 89: 良好 70 ~ 79: 中等 60 ~ 69: 及格 0 ~ 59: 不及格 假设程序中我们分别用R表示输入的百分制成绩,用G表示相应的等次。其中R的值用InputBox输入,输入的R和计算的结果G分别用标签显示。

5.2 选择结构 5.2.3 多分支结构 例6

5.2 选择结构 5.2.3 多分支结构 例6 这个问题可有多种方法实现: A. 多分支If结构: Private Sub cmdStart_Click() Dim R%, G$ R = Val(InputBox("", "输入百分制成绩")) lblR.Caption = "百分制成绩: " & R If R >= 90 Then G = "优秀" ElseIf R >= 80 Then G = "良好" ElseIf R >= 70 Then G = "中等" ElseIf R >= 60 Then G = "及格" Else G = "不及格" End If lblG.Caption = "等 次: " & G End Sub 例6 这个问题可有多种方法实现: A. 多分支If结构:

5.2 选择结构 5.2.3 多分支结构 B. Select Case结构: 例6 Select Case R Case Is >= 90 G= "优秀" Case 80 To 89 G= "良好" Case 70 To 79 G= "中等" Case 60 To 69 G = "及格" Case Is < 60 G= "不及格" End Select Case Is >= 80 这样修改条件语句 结果会如何? 这样修改条件语句 结果会如何? Case Else

5.2 选择结构 结果如何? 5.2.3 多分支结构 例6 C. 单分支结构: If R< 60 Then G= "不及格" 条件语句调整顺序!

5.2 选择结构 5.2.3 多分支结构 例6 D. If语句的嵌套 If R>= 90 Then G= "优秀" Else End If 例6 D. If语句的嵌套

5.2 选择结构 5.2.4 条件函数 VB中提供的条件函数:IIF()函数和Choose()函数,前者代替IF语句,后者可代替Select Case语句,均适用于简单的判断场合。

5.2 选择结构 5.2.4 条件函数 1. IIf()函数 格式 IIf(<条件>,<条件真值时的表达式>,<条件假值的表达式>) 功能 IIf函数首先要计算“条件”、“条件真值时的表达式”、“条件假值的表达式”的值,当“条件”的值为“真”时,则IIf函数返回“条件真值时的表达式”;当“条件”为“假”时,则IIf函数返回“条件假值时的表达式”

5.2 选择结构 5.2.4 条件函数 1. IIf()函数 例如: 取x,y中大的数,将其存入MaxNum变量中。 A. If X>Y Then MaxNum = X Else MaxNum = Y B. If X>Y Then MaxNum = X Else MaxNum = Y End If C. MaxNum = IIf(X > Y, X, Y)

5.2 选择结构 5.2.4 条件函数 2. Choose()函数 格式 功能 Choose()函数会根据“整数表达式”的值来决定返回的值(Choose函数会自动将“整数表达式”的值进行取整操作)。如果“整数表达式”的值是1,则返回“选项列表”中的第1个选项;如果“整数表达式”的值是2,则会返回“选项列表”中的第2个选项;……以此类推。若“整数表达式”的值小于1或大于列出的选项数目,则Choose()函数返回Null。

5.2 选择结构 5.2.4 条件函数 2. Choose()函数 例如 Nop的取值范围为1~4,使其对应转换成“+”、“-”、“×”、“÷” 符号,我们可以使用如下语句: Op$ = Choose(Nop, "+", "-", "×", "÷") 当Nop的值为1时,返回字符串“+”,将其存入Op$变量中;当Nop的值为3时,返回字符串“×”,将其存入Op$变量中;……

5.2 选择结构 5.2.5 GoTo语句的程序实现 格式 Go To{<标号> | <行号>} 功能 该语句的功能是无条件地转移到标号或行号指定的语句行。

5.2 选择结构 有限制的使用。 5.2.5 GoTo语句的程序实现 说明 “行标号”的格式 <行标号>: “行标号”的格式 <行标号>: GoTo语句会破坏程序的结构,因此在VB中要 有限制的使用。 3. 多数情况下GoTo语句可以用循环语句替代。

5.2 选择结构 5.2.5 GoTo语句的程序实现 例7 显示输入数据的算术平方根。 我们可以利用函数Sqr计算数据的算术平方根 Private Sub cmdStart_Click() Dim X%, XSqrt! X = InputBox("输入一个正整数") XSqrt = Sqr(X) lblResult.Caption = X & "的算术平方根=" & XSqrt End Sub

如果输入的数据是负数,则会弹出“出错提示”对话框 5.2 选择结构 5.2.5 GoTo语句的程序实现 例7 显示输入数据的算术平方根。 Err 对象的 Number 如果输入的数据是负数,则会弹出“出错提示”对话框

5.2 选择结构 5.2.5 GoTo语句的程序实现 例7 显示输入数据的算术平方根。 Private Sub cmdStart_Click() Dim X%, XSqrt! X = InputBox("输入一个正整数") XSqrt = Sqr(X) lblResult.Caption = X & "的算术平方根=" & XSqrt End Sub 我们应该对输入的数据加以过滤 ReInput: If X < 0 Then MsgBox "错误!请重做", 0 + 48 + 0, "警告" GoTo ReInput End If

第5章作业1 P116 习题:一、二

第5章作业1 1. 修改讲义中的例4.6,当输入的参数使得一元二次方程没有实数解时,给出提示信息。 2. 从甲地到乙地托运行李。行李重量在50千克以内时,每千克0.80元;超过50千克时,其超过部分每千克1.10元。编写程序,计算托运行李W千克时所付的运费。 3. 输入一年份,编写程序,要求判断出是否为闰年。闰年的条件是能被4整除,但不能被100整除;或者能被4整除又能被400整除(如:1992年,2000年均为闰年)。