程序控制结构修订PPT课件_第1页
程序控制结构修订PPT课件_第2页
程序控制结构修订PPT课件_第3页
程序控制结构修订PPT课件_第4页
程序控制结构修订PPT课件_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

.,1,第5章程序控制结构,顺序结构分支结构循环结构,.,2,51控制结构的流程图表示,511流程图用于描述结构化程序的图形。,.,3,5.1.2控制结构的流程图表示,一、顺序结构,语句A,语句B,三种结构中最基本的结构,由一串按顺序排列的语句组成。运行时,按语句出现的先后次序执行,例如从语句A顺序执行到语句B。,.,4,二、选择结构,选择结构(又称分支结构),通过“条件”判断后进行分支,满足条件时执行语句A,否则(不满足条件时)执行语句B。,.,5,三、循环结构,循环结构通过“条件”判断,满足条件时重复执行循环体语句(一条语句或多条语句),不满足条件时跳出循环(出口)。,.,6,三种基本结构的共同特点是:(1)只有单一的入口和单一的出口;(2)结构中的每个部分都有被执行的可能;(3)结构内不应出现永不终止的死循环;VB语言完全支持结构化的程序设计方法,并提供了相应的语言成分。,.,7,5.2算法,在计算机学科中,算法指的是用于完成某个处理任务的一组有序而明确的、可以由计算机执行的操作(或指令),它能在有限时间内执行结束并产生结果。算法的特征(1)确定性确定性是指算法中的每个步骤必须确切无误,即每一步运算应该执行何种操作必须是清楚明确的,无二义性。(2)有穷性有穷性是指一个算法经有限步运算后能够终止。(3)可行性可行性是指算法的每个步骤都是计算机可以执行的,并能得到确定的结果。(4)输出性一个算法可以没有输入,但至少要有一个输出。,.,8,5.2.3算法的表示,1文字表示2流程图表示3程序语言表示,.,9,5.3顺序结构,赋值语句:其格式如:var=Var表示某个变量名或属性名,不能是常量,常熟符号或表达式。先计算“=”右边表达式的值,然后将值赋给“=”左边的变量。“=”在条件表达式中为等号,否则为赋值号经常使用的赋值语句:Sum=sum+x累加X=x+1计数不能在一条语句中同时给多个变量赋值,.,10,赋值语句中数据类型不同时的处理方法:变量的数据类型与表达式的数据类型同为数值型,但精度不同时,VB会将表达式的精度强制转换成变量的精度。变量的数据类型为数值型,表达式的数据类型为字符型时,自动转换成数值类型再赋值,但当字符中有非数字字符或表达式为空串时,则出错。变量的数据类型为数值型,表达式的数据类型为逻辑型时,True转换为-1,False转换为0。反之,非0转换为True,0转换为False。变量的数据类型为字符型,表达式的数据类型为非字符型时,会自动转换成字符型。,.,11,【例5.1】运行下面程序,单击窗体,则立即窗口显示的结果是什么?PrivateSubForm_Click()DimaAsInteger,bAsBooleanDimcAsInteger,dAsIntegera=10/4:b=True:c=b:d=a+cDebug.Printa,d,a=a+cEndSub分析:10/4的结果是2.5,赋给整型变量a,根据奇进偶不进原则,a的值为2。True赋给整型变量c,转换为-1,从而变量d的结果为21=1。由于a的值为2,a+c的值为1,所以a=a+c的结果为False。立即窗口显示的结果是:21False,.,12,5.4选择结构,选择结构又叫分支结构。程序在运行到分支结构的语句块时,可以根据条件的不同,选择不同的执行方向。If语句selectcase语句,.,13,5.4.1IF条件语句,单分支:IfThen语句组EndIf双分支:IfThen语句组AElse语句组BEndIf多分枝:IfThen语句组1ElseIfThen语句组2ElseIfThen语句组nElse语句组n+1EndIf,.,14,3If语句的嵌套【例5.3】设有如下函数:从键盘输入x的值,要求输出y的值。,PrivateSubForm_Click()DimxAsSingle,yAsSinglex=InputBox(请输入x的值:)Ifx0Theny=1ElseIfx=0Theny=0Elsey=-1Printx=;x,y=;yEndSub,.,15,5.4.2条件函数(IIf函数),VB提供了一个IIf函数,可用来简化“IfThenElse”分支结构。一般形式为:Var=IIf(条件表达式,True部分,False部分),注意:IIf函数中的3个参数都不能省略,而且要求“True部分”、“False部分”与结果变量的类型一致。,.,16,iif函数与“IfThenElse”语句或“SelectCase”语句(见下一节)的作用类似。,Ifx0Theny=1Elsey=-1EndIf,y=IIf(x0,1,-1),.,17,5.4.3SelectCase语句,SelectCase语句也能实现多分支,其基本格式为:SelectCase测试表达式Case表达式表列1语句块1Case表达式表列2语句块2CaseElse语句块nEndSelect,.,18,其中:“变量或表达式”可以是数值表达式或字符串表达式,也可以是一个常量或一个变量。“表达式表列i”可以是以下三种情况之一或三种情况的混合。(1)以逗号隔开的常量例如:Case1,4,7Casea,b“(2)由关键字To连接的两个常量,表示一个闭区间。不论是数值型还是字符串数据,都要保证To前面的常量比后面的小。例如:Case1To10CaseaTof,.,19,(3)由关键字is表示的一个关系表达式。is是一个代词,它代表着“变量或表达式”的值。如:Caseis15。但Caseis15Andis30是错误的。(4)“表达式表列i”的数据类型要与“变量或表达式”的类型相同。,.,20,5.5循环结构,在VB中,实现循环结构的语句有两种,一种是For循环控制结构,另一种是Do循环控制结构。For循环Do循环,.,21,5.5.1For循环控制结构,Forvar=aTobStepc语句组ExitFor语句组Nextvarvar称为循环变量,其值必须为数值型a称为循环初值,b称为循环终值,c称为循环步长。ExitFor表示当遇到该语句时退出循环,执行Next后的下一条语句。Next的含义是循环变量的值增加一个步长(var=var+c),开始下一次循环。,.,22,For循环语句的执行过程是:(1)计算初值表达式a、终值表达式b、步长表达式c的值。(2)循环变量赋初值。(3)比较循环变量与终值的值。当步长为正时,若循环变量的值小于或等于终值(步长为正的循环流程如图5.14所示),转去第(4)步,否则执行Next后的下一条语句;当步长为负时,若循环变量的当前值大于或等于终值(步长为负的循环流程如图5.15所示),转去第(4)步,否则执行Next后的下一条语句。(4)执行一次循环体,然后将循环变量的值增加一个步长,转到第3步,重复执行。,.,23,说明:无论循环执行与否,循环变量赋初值语句都会被执行,且仅执行一次。若初值小于终值,则步长为1时,Step1可以省略;但若初值大于终值,而步长为-1时,Step1不可以省略。循环的次数可用以下公式计算:循环次数=Int(ba)c)+1For语句和Next语句必须成对出现,不能单独使用,且For语句必须在Next语句之前。循环的初值、终值以及步长的值一经确定,则循环的执行次数就不再改变。在循环体中,改变初值、终值以及步长的值,不影响循环的执行次数。若在循环体中改变循环变量的值,则有可能影响循环的执行次数。当退出循环后,循环变量的值保持退出时的值。,.,24,【例5.10】求n!(n为自然数)由阶乘的定义可知:n!=1*2*3*(n-1)*n=(n-1)!*n,PrivateSubForm_Click()DimNAsInteger,iAsInteger,kAsSingleN=InputBox(输入N:)k=1Fori=1ToNk=k*i此语句称为累乘器NextiPrintN;!=;kEndSub,PrivateSubForm_Click()DimNAsInteger,iAsInteger,mAsInteger,kAsSingleN=InputBox(输入N:)k=1:m=1Fori=1ToNk=k*mm=m+1此语句称为计数器NextiPrintN;!=;kEndSub,操作变量,形式变量,.,25,5.5.2Do循环控制结构,适合于循环次数事先难以确定的场合。,Do循环控制结构有如下几种格式:格式1:DoWhile循环条件语句组ExitDo循环体语句组Loop格式1的循环流程如图5.17所示。,图5.17DoWhileLoop循环流程图,.,26,格式2:Do语句组ExitDo循环体语句组LoopWhile循环条件格式2的循环流程如图5.18所示。格式3:DoUntil循环条件语句组ExitDo循环体语句组Loop格式3的循环流程如图5.19所示。,.,27,格式4:Do语句组ExitDo循环体语句组LoopUntil循环条件格式4的循环流程如图5.20所示。,图5.20DoLoopUntil循环,Do循环语句的功能是:当指定的“循环条件”为True,或直到指定的“循环条件”为True之前,重复执行语句组(即循环体)。,.,28,其中:(1)格式1与格式3为先判断后执行,有可能一次也不执行。格式2与格式4为先执行后判断,至少执行一次。(2)关键字While用于指明条件为True时,就执行循环体内的语句,Until正好相反。(3)当省略While循环条件或Until循环条件子句时,循环结构简化为:Do语句组ExitDo循环体语句组Loop结构,表示无条件循环,这时在循环体内应该有ExitDo语句,否则为死循环。,.,29,(4)Do循环控制结构在使用时要注意循环条件的设置,必须保证循环在执行有限次后能正常退出,否则将形成死循环。(5)ExitDo语句表示当遇到该语句时,退出循环,执行Loop下面的语句。该语句一般是与If-Then语句配合使用,常见形式为:IfThenExitDo(6)一般来说,可以使用上述几种格式解决同一个问题,可以取得相同的结果,只是要注意循环条件的写法或在进入循环之前注意给循环体中使用到的变量赋以适当的初值。,.,30,5.5.3For循环与Do循环的比较,For循环结构适用于已知循环次数的场合,而Do循环结构适用于循环次数不确定的场合。For循环结构中,修改循环变量的值的语句已经包含在语句结构中,控制意图明显;Do循环结构本身不修改循环变量的值,必须使用专门的语句修改循环变量的值,使循环能够进行。有的时候两种结构可以互相代替。,.,31,5.5.4循环嵌套,(1)For循环的嵌套使用。除了内外层循环不能交叉外,还要注意内循环变量与外循环变量不能同名。例如下面的循环结构是错误的:内、外循环交叉内、外循环变量同名Fori=1To5Fori=1To5Forj=1To6Fori=1To6NextiNextiNextjNexti,.,32,(2)分支结构与For循环结构的嵌套使用。要注意if结构的语句组要完全包含循环结构;同样循环结构的循环体也要完全包含if结构。例如下面的嵌套使用是错误的:Fori=1To10if条件表达式Thenif条件表达式ThenFori=1To10NextiEndifEndifNexti,.,33,(3)Do循环的嵌套使用。使用中也同样要注意,外层循环必须完全包含内层循环,内层循环的结束语句必须在外层循环的结束语句之前出现,内外层循环不得互相交叉。,(4)分支结构与Do循环结构的嵌套使用。要注意If结构的语句组要完全包含循环结构;同样循环结构的循环体也要完全包含If结构。例如下面的嵌套使用是错误的:DoWhileIf条件表达式ThenIf条件表达

温馨提示

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

评论

0/150

提交评论