您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第四章三种基本结构程序设计
第四章三种基本结构程序设计本章内容及要求:1.了解算法概念及算法的表示,掌握用流程图表示算法2.熟练掌握赋值语句、End语句和注释语句等语句及输入/输出消息框函数的使用;3.熟练掌握行if语句、块if结构、SelectCase情况选择结构的使用,掌握选择的嵌套结构;4.熟练掌握实现循环结构的For/Next循环结构及ExitFor语句、Do/Loop循环结构的使用,掌握多重循环。重点:选择结构及循环结构的实现及其应用难点:选择的嵌套及多重循环结构4.1算法及算法的表示4.1.1算法概述什么是算法:广义地讲:算法是为完成一项任务所应当遵循的一步一步的规则的、精确的、无歧义的描述,它的总步数是有限的。狭义地讲:算法是解决一个问题采取的方法和步骤的描述。下面通过两个简单的例子加以说明:例4.1输入三个数,然后输出其中最大的数。将三个数依次输入到变量A、B、C中,设变量MAX存放最大数。其算法如下:例4.2输入10个数,打印输出其中最大的数。算法设计如下:(1)输入1个数,存入变量A中,将记录数据个数的变量N赋值为1,即N=1(2)将A存入表示最大值的变量Max中,即Max=A(3)再输入一个值给A,如果AMax则Max=A,否则Max不变(4)让记录数据个数的变量增加1,即N=N+1(5)判断N是否小于10,若成立则转到第(3)步执行,否则转到第(6)步。(6)打印输出max1)输入A、B、C。2)A与B中大的一个放入MAX中。3)把C与MAX中大的一个放入MAX中。4)输出MAX,MAX即为最大数。4.1.2算法的特性1有穷性一个算法必须经过有限步骤之后就能解决某个问题。事实上,一般的有限性限制在实际中是不够的,因为尽管解决某个特定问题的执行步骤量是有限的,但可能对实际计算来说仍太大。一个有用的算法不仅要求步骤有限,同时也要求步骤量合理。2确定性一个算法的每一步必须是无歧义的和精确定义的。在各种情况下动作的执行必须严密地确定。3有0个或多个输入且有一个或多个输出输入可定义为算法执行前初始化时给定的一些量,输出指与输入有某种特定关系的,在算法执行完成时产生的一些量。4通用性一个算法最好是适用于某类问题而不只是适用于某一个问题。这种通用性,尽管不是必要的,但肯定是一有用算法要求的特性4.1.3算法的表示一、自然语言与伪代码表示算法自然语言:就是指人们日常使用的语言,可以是汉语、英语或其它语言。伪代码:是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。例如:例4.1可用如下的伪代码表示Begin(算法开始)输入A,B,CIFAB则A→Max否则B→MaxIFCMax则C→MaxPrintMaxEnd(算法结束)二、用传统流程图表示算法处理框起止框I/O框判断框流程线连接点1、传统流程图中的基本符号2、三种基本结构的传统表示(1)顺序结构条件语句1语句2YN语句1语句2(2)选择结构条件(a)条件语句组(3)循环结构a)当型循环b)直到循环YNYN(b)语句组例4.2输入10个数,打印输出其中的最大的数的流程图N10Max=AN=1AMaxMax=A输入A开始再输入给AN=N+1输出Max结束YNNYPrivateSubForm_Click()Dima%,max%,i%a=Val(InputBox(A=?))max=aFori=2To10a=Val(InputBox(A=?))IfamaxThenmax=aNextiMsgBox(Max=“&Str(max))EndSub最后需要说明的是:上面介绍的算法表示是给人看的,即是为帮助程序开发人员阅读、编写程序而设计的一种辅助工具,程序则必须符合计算机语言的语法规则。下面是例4.2的计算机程序,即为用计算机语言表示算法:4.2顺序结构4.2.1赋值语句形式:变量名=表达式对象.属性=表达式功能:将表达式的值赋值给变量名或指定对象的属性。一般用于给变量赋值或对控件设定属性值.例:sRate!=0.1Text1.Text=欢迎使用VisualBasic.net”说明:1.执行过程:先求表达式的值,然后将值赋值给左边的变量。2.右边表达式可以是变量、常量、函数调用等特殊的表达式。3.不要将“=”理解为数学上的等号:A=A+1是表示将A单元的值加1后以放回到A单元。执行过程如右图4.赋值符号“=”左边一定只能是变量名或对象的属性引用,不能是常量、符号常量、表达式。下面的赋值语句都是错的:5=X'左边是常量。Abs(X)=20'左边是函数调用,即是表达式。5.赋值符号“=”两边的数据类型一般要求应一致。缺省值标题题提示4.2.2用户交互函数1.InputBox函数变量名=InputBox[$](提示信息[,标题][,缺省][,x坐标][,y坐标])其中:提示提示信息,标题标题区显示,缺省输入区缺省值有$返回字符类型,否则为数值类型.例如,要在屏幕上显示如下的对话框:例如:有下列语句如下:DimstrNameAsString*40,strS1AsString*40strS1=“请输入你的姓名”+Chr(13)+Chr(10)+“然后单击确定”strName=InputBox$(strS1,“输入框”,,100,100)当键盘输入“王晓明”后,变量strName获得键盘输入的值.缺省值标题题提示2.MsgBox函数函数形式:变量[%]=MsgBox(提示[,按钮[+图标]+[缺省按钮]+[模式]][,标题])图标标题提示信息命令按钮说明:1“标题”和“提示”与InputBox函数中对应的参数相同;2“按钮+图标+缺省按钮+模式”是整型表达式,决定信息框按钮数目、出现在信息框上的图标类型及操作模式(见表4.1)3若程序中需要返回值,则使用函数,否则可调用过程。按钮及图标值如下:例4.1编一帐号和密码检验程序。要求:帐号不超过6位数字,有错,清除原内容再输入.密码输入时在屏幕上以“*”代替;若密码错,显示有关信息,选择“重试”按钮,清除原内容再输入,选择“取消”按钮,停止运行。分析:帐号6位,MaxLength为6,密码PassWordChar为“*”,MsgBox函数设置密码错对话框.4.3选择结构1.If…Then语句(单分支结构)If表达式Then语句块EndIf或If表达式Then语句tyx图1-3-8两个数交换过程例:已知两个数x和y,比较它们的大小,使得x大于y.IfxyThent=x:x=y:y=tEndIf或IfxyThent=x:x=y:y=t2.If…Then…Else语句(双分支结构)If表达式Then语句块1Else语句块2EndIfIf表达式Then语句1Else语句2例如:输出x,y两个中值较大的一个值。IFXYThenPrintXElsePrintYEndIf也可以写成如下的单行形式:IFXYThenPrintXElsePrintY双分支选择结构执行过程3.If…Then…ElseIf语句(多分支结构)形式:If表达式1Then语句块1ElseIf表达式2Then语句块2…[Else语句块n+1]EndIf例:输入一学生成绩,评定其等级。方法是:90~100分为“优秀”,80~89分为“良好”,70~79分为“中等”,60~69分为“及格”,60分以为“不合格”执行过程方法一Ifmark=90ThenMsgBox(优)ElseIfmark=80ThenMsgBox(良)ElseIfmark=70ThenMsgBox(中)ElseIfmark=60ThenMsgBox(及格)ElseMsgBox(不及格)EndIf方法二Ifmark60ThenMsgBox(不及格)ElseIfmark70ThenMsgBox(及格)ElseIfmark80ThenMsgBox(中)ElseIfmark90ThenMsgBox(良)ElseMsgBox(优)EndIf方法三Ifmark=60ThenMsgBox(及格)ElseIfmark=70ThenMsgBox(中)ElseIfmark=80ThenMsgBox(良)ElseIfmark=90ThenMsgBox(优)ElseMsgBox(不及格)EndIf请问以下哪些正确,哪些错误?IIf函数语法:IIf(expr,truepart,falsepart)部分描述expr必要参数。用来判断真伪的表达式。truepart必要参数。如果expr为True,则返回这部分的值或表达式。falsepart必要参数。如果expr为False,则返回这部分的值或表达式。例如:CheckIt=IIf(TestMe1000,Large,Small)相当于:IfTestMe1000ThentestIt=LargeElsetestIt=SmallEndIf4.3.2SelectCase语句(情况语句)形式:SelectCase变量或表达式Case表达式列表1语句块1Case表达式列表2语句块2…[CaseElse语句块n+1]EndSelect表达式列表:与变量或表达式同类型的下面四种形式之一:1.表达式A+52.一组枚举表达式(用逗号分隔)2,4,6,83.表达式1To表达式260to1004.Is关系运算符表达式Is60数值型或字符串表达式例输入百分制成绩mark,显示对应的五级制成绩方法一方法二方法三SelectCasemarkSelectCasemarkSelectCasemarkCasemark=90CaseIs=90Case90To100MsgBox(优)MsgBox(优)MsgBox(优)Casemark=80CaseIs=80Case80To89MsgBox(良)MsgBox(良)MsgBox(良)Casemark=70CaseIs=70Case70To79MsgBox(中)MsgBox(中)MsgBox(中)Casemark=60CaseIs=60Case60To69MsgBox(及格)MsgBox(及格)MsgBox(及格)CaseElseCaseElseCaseElseMsgBox(不及格)MsgBox(不及格)MsgBox(不及格)EndSelectEndSelectEndSelect哪些能实现,哪些不能实现?4.3.3选择结构的嵌套在IF语句的Then分支和Else分支中可以完整地嵌套另一IF语句或SelectCase语句,同样SelectCase语句每一个Case分支中都可嵌套另一IF语句或另一SelectCase语句。下面是两种正确的嵌套形式:(1)IF条件1Then…..if条件2Then……Else…..EndIf….Else….IF条件3Then…..Else…..EndIf…..EndIF(2)IF条件1Then…..SelectCase…Case……IF条件1Then……Else…..EndIf……Case….…..EndSelect….EndIF注意:只要在一个分支内嵌套,不出现交叉,满足结构规则,其嵌套的形式将有很多种,嵌套层次也可以任意多。对于多层IF嵌套结构中,要特别注意IF与Else的配对关系,一个Else必须与IF配结,配对的原则是:在写含有多层嵌套的程序时,Vb.net会自动缩进对齐方式,这样容易阅读和维护。4.3.4常见错误1.在选择结构中缺少配对的结束语句对多行式的If块语句中,应有配对的EndIf语句结束。2.多边选择ElseIf关键字的书写和条件表达式的表示ElseIf不要写成ElseIf;多个条件表达式次序问题3.SelectCase语句的使用SelectCase后不能出现多个变量;Case子句后不用条件变量进行逻辑运算4.4循环结构1.For循环语句(一般用于循环次数已知)形式For循环变量=初值to终值[Step步长]语句块[ExitFor]语句块Next循环变量循环变量在终值内图1-3-13Fo
本文标题:第四章三种基本结构程序设计
链接地址:https://www.777doc.com/doc-4012735 .html