vb程序设计的3种基本结构.ppt
《vb程序设计的3种基本结构.ppt》由会员分享,可在线阅读,更多相关《vb程序设计的3种基本结构.ppt(100页珍藏版)》请在三一办公上搜索。
1、第4章 程序设计的3种基本结构,重点:选择结构及循环结构的实现及其应用,难点:选择的嵌套及多重循环结构,本章内容及要求:1.了解算法概念及表示,掌握用NS流程图表示算法;2.熟练掌握赋值语句、输入/输出消息框函数的使用;3.熟练掌握行if语句、块if结构、Select Case情况选择结构有使用,掌握选择的嵌套结构;4.熟练掌握实现循环结构的For/Next循环结构及Exit For语句、Do/Loop循环结构的使用,掌握多重循环。,4.1.1 算法概述 什么是算法:广义地讲:算法是为完成一项任务所应当遵循的一步一步的规则的、精确的、无歧义的描述,它的总步数是有限的。狭义地讲:算法是解决一个问
2、题采取的方法和步骤的描述。下面通过两个简单的例子加以说明:,4.1 算法及算法的表示,1)输入A、B、C。2)A与B中大的一个放入MAX中。3)把C与MAX中大的一个放入MAX中。4)输出MAX,MAX即为最大数。,例4.1 输入三个数,然后输出其中最大的数。将三个数依次输入到变量、B、C中,设变量MAX存放最大数。其算法如下:,例4.1算法的描述,例4.2 输入10个数,打印输出其中最大的数。算法设计如下:(1)输入1个数,存入变量A中,将记录数据个数的变量N赋值为1,即N=1(2)将A存入表示最大值的变量Max中,即Max=A(3)再输入一个值给A,如果AMax 则 Max=A,否则Max
3、不变(4)让记录数据个数的变量增加1,即N=N+1(5)判断N是否小于10,若成立则转到第(3)步执行,否则转到第(6)步(6)打印输出max,例4.2 算法的描述2,有穷性确定性有0个或多个输入有一个或多个输出有效性,4.1.2 算法的特性,一、自然语言与伪代码表示算法自然语言:就是指人们日常使用的语言,可以是汉语、英语或其它语言。伪代码:是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。,4.1.3 算法的表示,例如:例4.1可用如下的伪代码表示Begin(算法开始)输入 A,B,C IF AB 则 AMax 否则 BMax IF CMax 则 CMaxPrint M
4、axEnd(算法结束),伪代码示例,处理框,起止框,I/O框,判断框,流程线,连接点,1、传统流程图中的基本符号,二 用传统流程图表示算法,(1)顺序结构,(2)选择结构,2、三种基本结构的表示,a)当型循环,b)直到循环,(3)循环结构,(1)只有一个入口(2)只有一个出口(3)不存在死语句(4)不存在死循环,例:例4.2输入10个数,打印输出其中的最大的数的流程图,三种基本结构的特点,从10个数中选出最大的数的算法流程图,算法流程图示例,将全部算法写在一个矩形框内,在矩形内还可包含其它从属于它的框,4.1.4 用NS流程图表示算法,(3)循环结构,NS 流程图示例,例:从10个数中选出最大
5、的数,A=Val(InputBox(A=?)B=Val(InputBox(B=?)C=Val(InputBox(C=?)If AB then Max=AElse Max=BEnd IfIf CMax then Max=CPrint Max=;Max,下面是例4.1的计算机 程序,即为用计算机语言表示算法:,用计算机语言表示算法,(一)、用计算机解决问题的过程,提出、分析问题,确定算法模型,设计算法,编写程序,调试程序,分析输出结果,正确合理,结束,不正确,4.1.6 结构化程序设计方法(补充),自顶向下、逐步细化、模块化,自顶向下:先从全局、整体设计逐步细化:将一个问题分解成几个较小的问题解决
6、模块化:将一个大任务分解成若干个较小的部分,每 个部分承担一定功能,称为“功能模块”,例:给100个整数,打印输出其中的素数,(二)、结构化程序设计思想,S1,NS流程图,S3,S2,(三)、结构化程序设计过程示例,S1,NS流程图,S3,S2,S21,示例2,细化后的流程图,示例3,4.2 顺序结构,4.2.1 赋值语句,形式:变量名表达式 对象.属性表达式 功能:将表达式的值赋值给变量名或指定对象的属性。一般用于给变量赋值或对控件设定属性值.例:sRate!=0.1 Text1.Text 欢迎使用Visual Basic 6.0”说明:1 执行过程:先求表达式的值,然后将值赋值给左边的变量
7、。2 右边的表达式可以是变量、常量、函数调用等特殊的表达式。3 不要将“”理解为数学上的等号:A=A+1 是表示将A单元的值加后以放回到A单元。,4赋值符号“=”左边一定只能是变量名或对象的属性引用,不能是常量、符号常量、表达式。下面的赋值语句都是错的:5=X 左边是常量。Abs(X)=20 左边是函数调用,即是表达式。5.赋值符号“=”两边的数据类型一般要求应一致。说明:当表达式的类型与变量的类型不一致时,VB系统会自动地将表达式的值强制地转换成变量的类型。例:iA%=10/3 iA中的结果为3 iA%=11/3 iA中的结果为4(四舍五入)iA%=-11/3 iA中的结果为-4(四舍五入)
8、iA%=38000 出错,数据溢出。,赋值语句2,说明:当表达式是数字字符串,变量是数值类型时,系统自动地将数字字符串转换成数值再赋值;当表达式中含有非数字字符时,则出错。例:iA%=123 iA中的结果为123 iA%=123abc 错误,类型不匹配!说明:逻辑型值赋值给数值型变量;系统自动转换。例:iA%=True iA中的结果为-1 iA%=Flase iA中的结果为0说明:非字符类型值赋值给字符型变量时,系统自动转换。例:cA$=True cA中的结果为True cA$=123 cA中的结果为123 cA$=#2003/3/12#cA中的结果为03-3-12 注意:VB不能在一句语句中
9、给多个变量赋值。,Dim x%,y%:x=y=100,n=n+1,iA%=Val(“123abc”),赋值语句3,Vb数据的输出Print方法,Print方法的一般格式:对象名.Print,|;,说明:对象名.可以是窗体名、图片框名,也可是立即窗口“Debug”。若省略对象,则表示在当前窗体上输出。用Print方法在图片框和立即窗口对象中输出与在窗体对象中输出完全相同。,4.2.2 Print方法,4.2.3 用户交互函数和过程,1.InputBox函数变量名=InputBox$(,)其中:提示 提示信息,标题 标题区显示,缺省输入区缺省值。例如,要在屏幕上显示如下的对话框:,例如:有下列语句
10、如下:Dim x%x=Val(InputBox(请输入一个数,输入框,100)语句执行后打开如下对话框。,InputBox示例,2.MsgBox函数和MsgBox过程,函数形式:变量%=MsgBox(,按钮图标+缺省按钮+模式,标题)过程形式:MsgBox,按钮图标+缺省按钮+模式,标题,说明:“标题”和“提示”与InputBox函数中对应的参数相同;“按钮图标+缺省按钮+模式”是整型表达式,决定信息框按钮数目、出现在信息框上的图标类型及操作模式(见表4.1)若程序中需要返回值,则使用函数,否则可调用过程。,MsgBox参数说明,按钮及图标值如下:,MsgBox参数说明2,根据用户所选按钮,函
11、数返回17的整数值,其含义如下表:(表4.2),MsgBox函数示例,用户可根据MsgBox函数的不同返回值,实现程序的控制流程,就必需通过编写程序代码才能实现。例如下面一段程序中的MsgBox函数,显示的对话框在“是”、“否”两个按钮,默认按钮为第一个按钮“是”。i=MsgBox(发生错误,是否继续?,vbYesNo+vbQuestion,提示信息)If i=7 Then End 或写成 If i=vbNo Then End 当用户单击“否”,程序就结束,单击“是”或直接按回车键,程序则继续向下执行。,其语法格式为:Rem 或 说明:1.指要包括的任何注释文本。在Rem关键字和注释内容之间要
12、加一个空格。可以用一个英文单引号“”来代替Rem关键字。2.如果在其他语句行后面使用Rem关键字,必需用冒号(:)与语句隔开。若用英文单引号“”,则在其他语句行后面不必加冒号(:)。例如:Const PI=3.1415925 符号常量PIS=PI*r*r:Rem计算圆的面积,4.2.4 注释语句,例4.3 输入时间(小时,分和秒),然后使用输出消息框输出总计多少秒。使用文本框输入数据,使用消息框输出计算结果,程序运行界面如图3-14所示。,4.2.5 应用举例,图4-14 程序运行界面,例4.4 编一程序,求一内半径R1=10cm,外半径R2=20cm的球环的体积。要求按四舍五入保留到小数点后
13、4位。,4.2.5 顺序结构应用举例,本题所求的球环面的体积公式:,Private Sub Form_Click()Dim R1#,R2#R1,R2 表示球的内外半径 Dim Vol As Double Vol表示体积 Const PI#=3.1415926 符号常量PI代表 R1=10:R2=20 Vol=4/3*PI*(R2 3-R1 3)Vol=Fix(Vol*10000+0.5)/10000 保留小数点后4位 Print 球环的体积:V=;Vol;立方厘米End Sub,4.3 选择结构,选择结构是根据条件选择执行不同的分支语句,以完成问题的要求。在Visual Basic程序设计中,
14、使用IF语句和Select Case语句来处理选择结构。其特点是:根据所给定的条件成立(True)或不成立(False),从各实际可能的不同分支中执行某一分支的相应操作(程序块),并且任何情况下总有“无论条件多寡,必择其一;虽然条件众多,仅选其一”的特性。,4.3.1 If条件语句,1.IfThen语句(单分支结构)If Then 语句块 End If 或 If Then,说明:表达式一般为关系表达式或逻辑表达式,也可以是算术表达式。若为算术表达式,则表达式的值非零时为TRUE,零为FALSE。语句块可以是一个语句,也可以是多个语句。若在程序中采用行IF语句,则多个语句之间一定要用冒号分隔。,
15、选择结构示例,例 已知两个数x和y,比较它们的大小,并把大者赋值给x,小者赋值给y.If xy Then t=x x=y y=t End If 或 If xy Then t=x:x=y:y=t,重要的是学会两个数的交换,若上述语句次序变一下,结果如何?,?一瓶酱油、一瓶醋,例 从键盘输入两个整数x和y,输出两者中的大者。Private Sub Form_Click()Dim x%,y%,max%,mmm$x=Val(InputBox(请输入一个整数给x)y=Val(InputBox(请输入一个整数给y)max=x If max y Then max=y mmm=(x&,&y&两者中的大数是:&
16、max)MsgBox(mmm)End Sub,双分支选择结构执行过程,2.IfThenElse语句(双分支结构),If Then Else End If If Then Else,例如:输出x,y两个中值较大的一个值。IF XY Then Print X Else Print Y End If也可以写成如下的单行形式:IF XY Then Print X Else Print Y,选择结构示例2,单分支结构实现:y=cos(x)x3+3*x If x0 Then y=sin(x)+sqr(x*x+1),双分支结构实现:If x0 Then y=sin(x)+sqr(x*x+1)Else y=c
17、os(x)x3+3*x End If,选择结构示例3,例:计算分段函数,IIF函数可用来执行简单的条件判断操作,它相当于IFThen.Else结构。IIF函数的使用格式:IIF(,)说明:(1)与IF语句中的表达式相同,通常是关系表达式、逻辑表达式,也可为算术表达式。如果是算术表达式,其值按非0为True,0为False进行判断。(2)当为真时,函数返回的值,当为假时,函数返回的值。(3)、可以是任何表达式。例如:Max=IIF(XY,X,Y)它与下面语句等价:IF XY Then Max=x Else Max=Y,3.条件函数,执行过程,4.IfThenElseIf语句(多分支结构),形式:
18、If Then ElseIf Then Else 语句块 n+1 End If,使用IF语句实现的程序段如下:If x=90 then Print 优秀ElseIf x=80 Then Print 良好 ElseIf x=70 Then Print 中等 ElseIf x=60 Then Print 及格 Else Print 不及格End If,例4.6:输入一学生成绩,评定其等级。方法是:90100分为“优秀”,8089分为“良好”,7079分为“中等”,6069分为“及格”,60分以为“不合格”,选择结构例4.6,数值型或字符串表达式,4.3.2 Select Case语句,1.Sele
19、ct Case语句形式:Select Case 变量或表达式Case 表达式列表1语句块1Case 表达式列表2语句块2Case Else语句块n+1End Select,注意:Case子句后的表达式中不能出现变量.,Select Case语句说明,说明:与同类型的下面四种形式之一:(1)表达式 A+5(2)一组枚举表达式(用逗号分隔)2,4,6,8(3)表达式1 To 表达式2 60 to 100(4)Is 关系运算符表达式 Is 60,A只能是符号常量!,例如:将例4.6 使用select case.语句来实现的程序段如下:Select Case x Case 90 to 100 Prin
20、t 优秀 Case 80 to 89 Print 良好 Case 70 to 79 Print 中等 Case 60 to 69 Print 及格 Case Else Print 不及格End Select,Select Case语句示例,Choose函数使用格式:Choose(,.)说明:Choose函数根据的值来决定返回其后中的那个表达式的值。如果的值为1,则返回的值,如果的值为2,则返回的值,以此类推。若的值小于1或大于n,则函数返回Null(空)。例如:根据Nop的值,得到+、-、*,/的运算符,可由下面语句来实现。Nop=Int(Rnd*4)+1 OP=Choose(Nop,+,-,
21、*,/),2.Choose函数,Switch函数形式是:Switch(条件表达式1,条件表达式1为True时的值,条件表达式2,条件表达式2为True时的值),3.Switch函数,自左至右,只能返回一个值。,例如:根据Nop的值,得到+、-、*,/的运算符,也可由下面的语句来实现。Nop=Int(Rnd*4)+1OP=Switch(Nop=1,+,Nop=2,-,Nop=3,*,Nop=4,/),下面是两种嵌套形式:(1)IF Then.IF Then Else.End If.Else.IF Then.Else.End If.End IF,(2)IF Then.Select Case Cas
22、e IF Then Else.End If Case.End Select.End IF,4.3.3 选择结构的嵌套,注意:只要在一个分支内嵌套,不出现交叉,满足结构规则,其嵌套的形式可以任意多。一个Else必须与IF配结,配对的原则是:在写含有多层嵌套的程序时,建议使用缩进对齐方式,这样容易阅读和维护。,例4.7 设计一个用户身份验证程序,运行界面如下图所示。,设密码分别为 1234567(普通用户)、1989643(授权用户)和1687799(特许用户),按回车键表示密码输入结束。如果输入密码正确,则用MsgBox对话框显示“你的口令正确,已通过身份验证”并显示用户类型;否则显示“密码不符
23、,要重试一遍吗!”(有“是”和“否”两个按钮),当用户单击“是”则将焦点定位到文本框中、清除文本框中的内容并允许再输入一遍,如果单击“否”则退出程序。,选择结构例4.7,补充例题:闰年问题,判断某年是否为闰年的两个条件:1该年年号能被4整除,但不能被100整除;2该年年号能被4整除,同时又能被400整除。,所有年号,能被4整除,能被100整除,能被400整除,Private Sub Form_Click()Dim y%,flag As Boolean y=Val(InputBox(请输入年号)If y Mod 4=0 Then If y Mod 100=0 Then If y Mod 400=
24、0 Then flag=True Else flag=flase End If Else flag=True End If Else flag=flase End If If flag Then Print y;年是闰年!Else Print y;年不是闰年!End IfEnd Sub,Private Sub Form_Click()Dim y%,flag As Boolean y=Val(InputBox(请输入年号)flag=(y Mod 4=0)And(y Mod 100 0)flag=flag Or(y Mod 400=0)If flag Then Print y;年是闰年!Else
25、Print y;年不是闰年!End IfEnd Sub,1.For循环语句(一般用于循环次数已知)形式:For 循环变量初值 to 终值 Step 步长 语句块Exit For 语句块 Next 循环变量,4.4 循环结构,循环次数,例:For I=2 To 13 Step 3 Print I,Next I Print I=,I,循环执行次数:输出I的值分别为:2 5 8 11 出了循环输出为:I=14,Int(13-2)/3+1)=4,For循环语句示例,例4.8 编程计算:S=1+2+3+100,Dim S%,I%S=0 累加前变量S为0For I=1 to 100 S=S+INext I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 程序设计 基本 结构
链接地址:https://www.31ppt.com/p-6522696.html