课题分支结构_第1页
课题分支结构_第2页
课题分支结构_第3页
课题分支结构_第4页
免费预览已结束,剩余3页可下载查看

下载本文档

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

文档简介

1、课题:分支结构教学时间: 授课班级:教学目标:学会用if elseend if 语句编写简单的程序,并会调试它教学重点、难点:1 运算规则2 IF 语句的用法3 Msbox()等函数的涵义及用法教学过程ABYN入口 出口 用前面介绍的语句已能编写出顺序执行的简单程序。但在用计算机解决实际问题时,有时需要先对某个条件进行判断,然后根据判断的结果进行不同的操作。例如:求三个数中的最小数,用流程图表示如图6-2,图中包含有两个判断框。其中第一个判断框是根据给定的条件“a<b”是否满足,来决定执行左边的语句还是执行右边的语句,这就是程序的分支结构,如图6-19所示。Visual Basic用If

2、语句来实现分支结构。P图6-19一、条件If语句是根据给定的条件是否满足,决定应执行的路径。如“a<b”就是我们所给定的条件,式中的“<”称为关系运算符,我们把这种形如“a<b”由一个关系运算符把两个算术表达式(或字符串表达式)连结起来的式子称为关系表达式。如a>b、x<0、"a"<>"b"等都是合法的关系表达式。关系运算符及其示例见表6-10。表6-10关系运算符含义相当的数学符号关系表达式示例=等于=x=0>大于>x*y>x+y<小于<"QB"<&quo

3、t;VB"<>不等于X<>0>=大于等于x>=10<=小于等于x<=0关系表达式的运算顺序是:先进行算术运算或字符串运算,然后再进行比较运算。其运算结果是一个逻辑值,即True(真)或False(假)。如果条件成立,则关系表达式取True;如果条件不成立,则关系表达式的值为False。如果关系运算符的两边表达式的运算结果是数值,则按其大小比较。例如:a<b(a=3,b=4) 其值为Truex+y>5(x=3,y= -2) 其值为False如果是字符串,则按字符的ASCII码从左到右一一比较,即首先比较两个字符串的第一个字符,

4、其ASCII码值大的字符串大,如果第一个字符相等,则比较第二个字符,依此类推,直至出现不同的字符为止。如果两个字符串的长度相等,且每一个相应位置上字符都一样,就认为两个字符串相等。如果两个字符串长度不相等,但一个字符串是另一个字符串的前部,则长度大的字符串大。例如:"VB">"VISUAL BASIC" 其值为False"Basic"="Basic" 其值为True"Windows">"Window" 其值为True二、行If语句行If语句是指在一行中写完的If语

5、句,它的一般格式为:格式一:If 条件 Then 语句执行这种形式的If语句时,首先对条件进行判断。若条件成立,则执行Then后面的语句;若条件不成立,则执行If语句后继程序行的语句。格式二:If 条件 Then 语句1 Else 语句2 执行这种形式的语句时,先进行判断,若条件成立,则执行语句1;否则执行语句2。【例6-5-1】输入三个不相同的数,求出其中最小数。算法设计见第一节,流程图如图6-2,程序代码如下:' 求三个数中的最小数Private Sub Form_Click() Dim a As Single, b As Single, c As Single Dim min A

6、s Single a = InputBox("输入a", "输入框") b = InputBox("输入b", "输入框") c = InputBox("输入c", "输入框") If a < b Then min = a Else min = b If c < min Then min = c Print "最小数" minEnd Sub若从键盘输入的三个数分别为-981,56,23,运行结果如下:最小数=-981【例6-5-2】编一程序,求

7、如下分段函数y的值,x从键盘输入。开 始输入xx<=0x2+1yx2-x+1y输出y结 束YN图6-20本程序界面很简单,x的值可在程序中调用InbputBox函数,在弹出的标准输入对话框中输入,程序的计算结果可直接用Print方法输出在窗体上。算法如下: 输入x; 判断x的值,如果x<0,则x2+1y,否则x2-x+1y; 输出y的值;流程图如6-20所示,程序代码如下:' 分段函数Private Sub Form_Click() Dim x As Single, y As Single x = Val(InputBox("请输入自变量x", &quo

8、t;输入框") If x <= 0 Then y = x * x + 1 Else y = x * x - x + 1 Print "y=" yEnd Sub三、块If语句上述If-Then语句,只能根据条件的真假是否执行一条语句。但是当Then部分和Else部分包含的内容较多时,则可选用“块If”结构。格式三:If 条件 Then 语句块 End If格式四:If 条件 Then 语句块1 Else 语句块2 End If 格式四If语句的功能是:若条件为真,则执行语句块1,然后再继续执行End if后的语句;若条件为假,则执行语句块2,再继续执行End

9、if后的语句。【例6-5-3】设计一个界面如图6-21所示的算术练习程序,由计算机自动产生一位数加法练习题。学生输入答案后,单击“确认”按钮,如答案正确,自动产生下一题,否则重新输入答案。本题算法的关键是产生一位数的加法题,VB提供了一个可以产生0,1)之间均匀分布的随机数的随机函数Rnd,一般地,要产生a,b之间的随机整数,可使用下面的表达式:Int(b-a+1)*Rnd)+a图6-21所以,要产生一位整数,可使用以下的算术表达式:Int(10*Rnd)。缺省情况下,每当运行一个程序时,Rnd函数总是产生相同序列的随机数,因此,在调用Rnd函数之前,可先执行Randomize语句初始化随机数

10、生成器,以使每次运行程序时,Rnd函数能够产生不同的随机数序列。本例中除了两个命令按钮外,设置了一个标签控件用于显示产生的算术题,一个文本框控件用于输入答案,同学们可以自己设置界面中对象的属性。程序代码如下:' 算术练习程序Dim a As IntegerDim b As IntegerDim c As Integer' 程序的初始化过程Private Sub Form_Load() frmTest.Show Randomize ' 初始化随机数生成器 a = Int(10 * Rnd): b = Int(10 * Rnd) lblTest.Caption = Str(

11、a) + "+" + Str(b) + "=" txtInput.Text = "" txtInput.SetFocusEnd Sub' 确认按钮事件过程Private Sub cmdOk_Click() c = Val(txtInput.Text) If c = a + b Then MsgBox "正确,请做下一题", vbOKOnly, "提示信息" a = Int(10 * Rnd): b = Int(10 * Rnd) lblTest.Caption = Str(a) + &q

12、uot;+" + Str(b) + "=" Else MsgBox "错误,再试试", vbOKOnly + vbInformation, "提示信息" End If txtInput.Text = "" txtInput.SetFocusEnd SubPrivate Sub cmdEnd_Click() EndEnd SubLoad事件在运行程序装载窗体时发生,其中的代码用于初始化有关变量或控件的属性,此处主要用于产生第一道算术题,Show是窗体的方法,用于显示窗体。讨论与思考本例程序中,输入错误答案后

13、,要求重新输入。如果要求重试不超过3次,程序该如何修改?如果要求输入错误答案后,不再重新输入,而在结束程序前,显示本次练习的统计数据:答对题数、错误题数、正确率,又该如何修改程序?信息卡编译程序和COBOL语言的创始人格蕾斯×莫里×霍波格蕾斯×莫里×霍波(Grace Murry Hopper),一个79岁时才从美国海军退役的女将军,为计算机事业的发展作出了杰出贡献。我们前面介绍过,当时的计算机使用穿孔卡片输入、输出数据,为了几分钟的计算不得不准备相当长的时间,为了使计算机简单易用,她编写了世界上第一个编译器,能够将类似英语的符号代码转换成计算机识别的二进

14、制指令,从而被人们尊称为“编译器之母”。格蕾丝的另一个重要贡献就是发明了面向商业的计算机高级语言COBOL,与当时用于科学计算的Fortran语言不同的是,COBOL语言的句法更接近自然英语,将程序和数据截然分开,有较强的文件处理能力,特别适用于管理存储在磁带和磁盘上的大量数据。这一点后来对数据库管理系统的发展产生重大影响。COBOL语言在六、七十年代得到了广泛的应用,因此,格蕾斯也被人们称为“COBOL之母”。另一个值得一提的事情是格蕾斯创造了Bug这个词,1947年,格蕾斯正用马克2计算机进行一项计算,突然机器停止了运行,她和同事们在一个继电器中发现了一个已经死掉的飞蛾,正是这个虫子造成了

15、机器的故障,后来人们就把程序中的错误称为Bug(虫子),排除错误称为Debugging(除虫)。也是当年的格蕾斯,在发明COBOL语言时,为了节约计算机存储器,只用后两位数字表示年份,为我们留下了一条危害巨大的“千年虫”。 练 习 写出下列关系表达式的值: a>b(已知a=3,b=4) x+1>=10(已知x=7) i<100(已知i=99) x*y<x+y(已知x=3,y=-2) 改正下列程序段或语句中的错误: If a11 Then x=x+1 Else x=x-1 If |y|15 Then y=3 If x>0 Then y=1 Else y=0 End 写出下列程序的执行结果。Private Sub Form_Click() Dim x As Single Let x = 38 If x < 20 Then Print "x<20" Else If x <= 50 Then Print "20<=x<=50" Else Print "x>50" End If End IfEnd Sub 从键盘输入三个数,输出其中绝对值最大的数,画出流程图。 设C盘BMP目录下有15个BMP格式图像文件:XXX01.BMP、XXX02.B

温馨提示

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

评论

0/150

提交评论