当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 三种基本结构程序设计
第四章三种基本结构程序设计本章内容及要求:1.了解算法概念及算法的表示,掌握用N—S流程序表示算法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.3算法的表示一、自然语言与伪代码表示算法自然语言:就是指人们日常使用的语言,可以是汉语、英语或其它语言。伪代码:是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。例如:例4.1可用如下的伪代码表示Begin(算法开始)输入A,B,CIFAB则A→Max否则B→MaxIFCMax则C→MaxPrintMaxEnd(算法结束)2、三种基本结构的表示(1)顺序结构条件语句1语句2YN语句1语句2(2)选择结构条件(a)条件语句组(3)循环结构a)当型循环b)直到循环YNYN(b)语句组从10个数中选出最大的数的流程图N10Max=AN=1AMaxMax=A输入A开始再输入给AN=N+1打印Max结束YNNY传统流程图N10Max=AN=1AMaxMax=A输入A开始再输入给AN=N+1打印Max结束YNNY输入A当N=10Max=AN=N+1打印Max输入AN—S流程图A=MaxYNPrivateSubForm_Click()Dima%,max%,i%max=aFori=1To10a=Val(InputBox(A=?))IfamaxThenmax=aNextiPrintMax=;maxEndSub最后需要说明的是:上面介绍的算法表示是给人看的,即是为帮助程序开发人员阅读、编写程序而设计的一种辅助工具,程序则必须符一计算机语言的语法规则。下面是例4.2的计算机程序,即为用计算机语言表示算法:4.2顺序结构4.2.1赋值语句形式:变量名=表达式对象.属性=表达式功能:将表达式的值赋值给变量名或指定对象的属性。一般用于给变量赋值或对控件设定属性值.例:sRate!=0.1Text1.Text=欢迎使用VisualBasic6.0”说明:1执行过程:先求表达式的值,然后将值赋值给左边的变量。2右边的表达式可以是变量、常量、函数调用等特殊的表达式。3不要将“=”理解为数学上的等号:A=A+1是表示将A单元的值加1后以放回到A单元。执行过程如右图4.赋值符号“=”左边一定只能是变量名或对象的属性引用,不能是常量、符号常量、表达式。下面的赋值语句都是错的:5=X'左边是常量。Abs(X)=20'左边是函数调用,即是表达式。5.赋值符号“=”两边的数据类型一般要求应一致。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双分支选择结构执行过程例4.1设计一个求解一元二次方程的程序3.If…Then…ElseIf语句(多分支结构)形式:If表达式1Then语句块1ElseIf表达式2Then语句块2…[Else语句块n+1]EndIf例:输入一学生成绩,评定其等级。方法是:90~100分为“优秀”,80~89分为“良好”,70~79分为“中等”,60~69分为“及格”,60分以为“不合格”执行过程使用IF语句实现的程序段如下:Ifx=90thenPrint优秀ElseIfx=80ThenPrint良好ElseIfx=70ThenPrint中等ElseIfx=60ThenPrint及格ElsePrint不及格EndIf4.3.2SelectCase语句(情况语句)形式:SelectCase变量或表达式Case表达式列表1语句块1Case表达式列表2语句块2…[CaseElse语句块n+1]EndSelect表达式列表:与变量或表达式同类型的下面四种形式之一:表达式例:A+5一组枚举表达式(用逗号分隔)2,4,6,8表达式1To表达式260to100Is关系运算符表达式Is60数值型或字符串表达式例如:将例4.3使用selectcase…..语句来实现的程序段如下:SelectCasexCase90to100Print优秀Case80to89Print良好Case70to79Print中等Case60to69Print及格CaseElsePrint不及格EndSelect4.3.3选择结构的嵌套在IF语句的Then分支和Else分支中可以完整地嵌套另一IF语句或SelectCase语句,同样SelectCase语句每一个Case分支中都可嵌套另一IF语句或另一SelectCase语句。下面是两种正确的嵌套形式:(1)IF条件1Then…..Then条件2Then……Else…..EndIf….Else….IF条件3Then…..Else…..EndIf…..EndIF(2)IF条件1Then…..SelectCase…Case……IF条件1Then……Else…..EndIf……Case….…..EndSelect….EndIF4.4循环结构1.For循环语句(一般用于循环次数已知)形式For循环变量=初值to终值[Step步长]语句块[ExitFor]语句块Next循环变量循环变量在终值内图1-3-13For循环语句语句块ExitFor语句块循环变量加步长TF循环变量得初值循环体0初值终值=1时,可省略0初值终值=0死循环步长循环次数)1(步长初值终值Int例:ForI=2To13Step3PrintI,NextIPrint“I=“,I4)1(3213Int循环执行次数输出I的值分别为:25811出了循环输出为:I=14例4.5编程计算:S=1+2+3+…+100DimS%,I%S=0'累加前变量S为0ForI=1to100S=S+INextIPrintS=,S当N=100N=N+1打印SS=0,N=1S=S+N例4-5的算法流程图形式1:(当型循环)Do{While|Until}条件语句块[ExitDo]语句块Loop条件FTFTExitDo语句块语句块ExitDo语句块语句块表达式列表1图1-3-16Do…LoopWhileDoWhile…Loop执行过程4.4.2Do…Loop循环语句形式2:(直到循环)Do语句块[ExitDo]语句块Loop{While|Until}条件表达式列表1FTFTExitDo语句块语句块ExitDo语句块语句块条件Do…LoopWhile的执行过程图1-3-15DoWhile…Loop条件语句块语句块TFExitDo条件语句块语句块TFExitDoDoUntil…Loop执行过程Do…LoopUntil执行过程说明:(1)当使用While条件构成循环时,当条件为“真”,则反复执行循环体,当条件为“假”,则退出循环。(2)当使用Until条件构成循环时,当条件为“假”,则反复执行循环体,直到条件成立,即为“真”时,则退出循环。(3)在循环体内一般应有一个专门用来改变条件表达式中变量的语句,以使随着循环的执行,条件趋于不成立(或成立),最后达到退出循环。(4)语句ExitDo的作用是退出它所在的循环结构,它只能用在DO/Loop结构中,并且常常是同选择结构一起出现在循环结构中,用来实现当满足某一条件时提前退出循环。4.4.3While…Wend语句使用格式如下:While条件循环块Wend说明:该语句的功能与DoWhile条件….Loop实现的循环完全相同。例:用do…Loop语句改写前面的例题4.5例4.7求两个整数的最大公约数、最小公倍数Dimn%,m%,nm%,r%m=Val(InputBox(m=))n=Val(InputBox(n=))nm=n*mIfmnThent=m:m=n:n=tr=mmodnDoWhile(r0)m=nn=rr=mmodnLoopPrint最大公约数=,nPrint最小公倍数=,nm/n算法使用转碾除法,流程图如右,实现的程序代码如下:4.4.4循环的嵌套——多重循环结构如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:(1)ForI=….…..ForJ=….….NextJ…..NextI(2)ForI=….…..DoWhile/Until….….Loop…..NextI(3)DoWhile….…..ForJ=….….NextJ…..Loop(4)DoWhile/Until….…..DoWhile/Until….….Loop…..Loop例如:打印九九乘法表.Fori=1To9Forj=1To9se=i&×&j&=&i*jPicture1.PrintTab((j-1)*9+1);se;NextjPicture1.PrintNexti对于循环的嵌套,要注意以下事项:(1)内循环变量与外循环变量不能同名;(2)外循环必须完全包含内循环,不能交叉;(3)不能从循环体外转向循环体内,也不能从外循环转向内循环.正确错误Forii=1To10Forjj=1To20…NextiiNextjjForii=1To10Forii=1To20…NextiiNextiiForii=1To10Forjj=1To20…NextjjNextiiForii=1To10…NextiiForii=1To10…Nextii4.4.5几种循环语句比较For....toNextDowhile/until....Loopdo....LoopWhile/until...循环类型当型循环当型循环直到循环循环控制条件循环变量大于或小于终值条件成立/不成立执行循环条件成立/不成立执行循环循环变量初值在FOR语句行中在DO之前在DO之前使循环结束For语句中无需专门语句必须用专门语句必须使用专门语句使用场合循环次数容易确定循环/结束控制条件易给出循环/结束控制条件易给出4.4.6循环结构与选择结构的嵌套在循环结构中可以完整嵌套选择结构
本文标题:三种基本结构程序设计
链接地址:https://www.777doc.com/doc-4048301 .html