程序控制结构与算法基础.ppt

上传人:zhu****ei 文档编号:3497634 上传时间:2019-12-16 格式:PPT 页数:40 大小:302KB
返回 下载 相关 举报
程序控制结构与算法基础.ppt_第1页
第1页 / 共40页
程序控制结构与算法基础.ppt_第2页
第2页 / 共40页
程序控制结构与算法基础.ppt_第3页
第3页 / 共40页
点击查看更多>>
资源描述
第4章程序控制结构与算法基础,代码书写规则,每个语句一行,以回车键结束;多个语句可以写在同一行上,各语句之间用冒号(:)进行分隔;一条长语句可以分成多行书写,在除最后一行之外的其余各行的末尾使用下划线(_)作为续行符,并且续行符与它前面的字符之间至少要有一个空格;所有语句中的变量名、函数名、关键字、对象名、对象属性名、对象方法名等均不区分大小写,但保留定义时所使用的大小写格式;代码的物理行最多可含1023个字符,一个逻辑行最多可由10个物理行组成。,自动语法检测,VB的IDE默认情况下具有自动语法检测功能。如果用户输入有语法错误的语句,在按下回车键后,系统将弹出一个出错提示框,并用红色标出有语法错误的语句。,赋值语句,格式:变量对象.属性名=表达式可以给一个变量(或对象的属性)多次赋值,但变量中保留的是最后一次的值。累加:B=B+N累乘:C=C*N,交换两个变量的值,中间变量法T=AA=BB=T数值加减法A=A+BB=A-BA=A-B,适合任何两个相同类型的变量,适合两个数值类型的变量,赋值相容,相容是指变量或对象的属性能够正确存取赋值号右边的表达式的值。一般要求用于赋值的表达式的结果类型与变量的类型保持一致。,示例,DimAAsInteger,BAsLong,CAsSingle,DAsDate,SAsStringA=100B=200C=14.5D=31.4S=3.14A=S纯数字字符串可以当作数赋给数值类型的变量B=D日期型数据可转换为数值D=A一个数值也可以转换为日期时间S=C任何类型的数据均可给字符串型变量赋值S=XYZA=S出错,类型不匹配,此外,还可以将数值(含纯数字字符串)赋值给Boolean类型的变量,所有不等于0的数值转换为True,0转换为False。将Boolean类型的数据赋值给数值类型的转换方法为:True-1,False0,给对象类型的变量赋值,格式:Set对象变量=对象引用,示例DimfrmAsObject定义frm为Object类型的变量Setfrm=Form1将对窗体Form1的引用赋给frmfrm.Caption=Hello将窗体Form1的标题设置为“Hello”,暂停、结束、注释,暂停:Stop,VB进入中断模式,打开“立即窗口”。Stop语句被执行后,并不退出VB系统,如果在可执行文件(.EXE)中含有Stop语句,则将会关闭文件。结束:End,结束VB程序执行。注释单引号:单引号后的内容为注释Rem:注释一整行,算法,程序=数据结构+算法算法是解决问题的方法、步骤,是程序的核心。算法的特性确定性能行性有穷性输入输出,传统流程图,流程图示例,输入两个数A与B,求出其中大的数并输出。,程序的三种基本结构,顺序结构:按语句书写顺序执行。分支结构:也叫选择结构,根据一个条件决定程序执行的走向。循环结构:将某些语句重复执行有限次。,顺序结构,示例,输入正方形边长,求其周长与面积。,PrivateSubCommand1_Click()DimAAsSingle,LAsSingle,SAsSingleA=Val(Text1.Text)获取Text1中的内容L=4*AS=A2Text2.Text=L在Text2中输出周长Text3.Text=S在Text3中输出面积EndSub,分支结构-If语句,单行结构If语句If条件Then语句AElse语句B块结构If语句,If条件Then语句块AElse语句块BEndIf,If语句流程图,示例,输入一个整数,若为偶数,则输出“偶数”,否则输出“奇数”。,PrivateSubForm_Click()DimXAsIntegerX=Val(InputBox(输入一个整数A)IfXMod2=0ThenPrint偶数ElsePrint奇数EndSub,说明,If语句中的条件一般是一个逻辑表达式,也可以是一个返回值为数值的表达式。如果是数值表达式,则0对应False,非0的任何数对应True。If语句中如果条件成立,则执行对应的语句或语句块,然后便跳出条件语句结构。在块结构的条件语句中,语句块中的语句不能与Then、Else书写在同一行上。单行结构的条件语句中不能有EndIf,而块结构的条件语句中不能缺少EndIf。,练习,输入一个三位正整数,判断其是否为水仙花数。水仙花数:一个三位整数等于其各位数字的立方和,如153=13+53+33输入一个年份,判断该年是否为闰年。满足下列条件之一的年份即为闰年年份能被4整除但不能被100整除年份能被400整除,多分支语句-If-ElseIf,If条件1Then语句块1ElseIf条件2Then语句块2ElseIf条件3Then语句块3Else语句块n+1EndIf,ElseIf中的Else与If之间不能有空格!ElseIf语句的数量没有限制!前面的条件成立执行对应语句后结束!,多分支语句-SelectCase,SelectCase测试表达式Case表达式列表1语句组1Case表达式列表2语句组2Case表达式列表3语句组3CaseElse语句组n+1EndSelect,SelectCase语句功能,首先计算出测试表达式的值,然后自上而下依次与各个表达式列表进行比较,如果匹配,则执行相应的语句组,然后跳到EndSelect后面的语句继续执行;如果测试表达式的值不能与给出的任何一个表达式列表匹配,则执行CaseElse之后的语句组。如果缺省了CaseElse部分,而测试表达式的值不能与给出的任何一个表达式列表匹配,则不执行任何语句组,直接跳到EndSelect后的语句执行。,测试项的形式,具体的取值(表达式),值与值之间用逗号分隔。如:1,3,5,A+B等。连续的范围,范围是用关键字To连接的两个值。如:10To20,”A”To“Z”。使用Is关键字构成的比较表达式。如:Is=10。也可以是上述几种形式的组合,用逗号分隔开。,示例,输入一个成绩,输出此成绩相应的等级。,PrivateSubCommand1_Click()DimCJAsSingle,DJAsStringCJ=Val(Text1.Text)获取成绩SelectCaseCJ判断等级CaseIs=90DJ=优秀CaseIs=80DJ=良好CaseIs=70DJ=中等CaseIs=60DJ=及格CaseElseDJ=不及格EndSelectText2.Text=DJ输出等级EndSub,注意在SelectCase语句中,各测试项执行的顺序是自上而下依次判断的,如果执行到“CaseIs=80”,说明“Is=90”已经不成立,一定要注意书写的顺序,如果顺序混乱,可能导致结果不正确。,练习,输入一个月份,输出该月有多少天。编写一个简单计算器,只要能实现辊减乘除运算即可。,IIf函数,格式:IIf(逻辑表达式,值1,值2)IIf函数的功能类似于有两个分支的If语句。当逻辑表达式的值为True时,函数返回值1,当逻辑表达式的值为False时,函数返回值2。,IfABThenMaxData=AElseMaxData=BEndIf可以简化为:MaxData=IIf(AB,A,B),循环结构-For循环,For循环也叫计次循环,格式为:For循环变量=初值To终值Step步长循环体ExitFor循环体Next循环变量,说明-1,(1)循环变量。用做循环计数器的数值变量,不能是布尔类型或数组元素。(2)初值。循环变量的初始值,一般是一个数值表达式。(3)终值。循环变量的终值,一般是一个数值表达式。(4)步长。循环变量的增量,一般是一个数值表达式。其值可正可负,但不能为0。步长可以省略,若省略,则步长为1。(5)循环体。放在For和Next之间的一条或多条语句,它们将被执行指定的次数。(6)ExitFor。退出当前一层For-Next循环。循环中可以在任何位置放置任意个ExitFor语句,随时退出循环。ExitFor通常在条件判断之后使用,例如If.Then,并将控制权转移到紧接在Next之后的语句。(7)Next。循环结构的最后一个语句,其后的循环变量可以缺省,若不缺省,则要与For语句中的循环变量一致。,说明-2,For-Next循环遵循“先检查后循环”的原则。步长为正,循环变量初值大于终值时,不循环;步长为负,循环变量初值小于终值时,不循环。,For循环的执行,把初值赋给循环变量;检查循环变量值是否超过终值,若超过,则不执行循环体而转到Next后一条语句执行,否则转到3;执行一次循环体;循环变量=循环变量+步长;转到2。,超过有两种情况:若步长为正,为循环变量值大于终值;若步长为负,为循环变量值小于终值。,示例,求1+2+3+100。,DimIAsInteger,SAsIntegerForI=1To100S=S+INextPrint1+2+3+.+100=;S,循环结束后I=?,注意,如果在For循环中,循环变量的初值、终值及步长是用变量表示的,则这些变量在循环体中的改变不会影响循环次数。,问:如下程序循环多少次?DimAAsInteger,BAsIntegerDimCAsInteger,IAsIntegerA=1:B=10:C=1ForI=AToBStepCA=A+1B=B-1C=C+1Next,答案:10次,练习,求N!输入一个整数,判断其是否为素数。素数:一个整数除了1与本身之外再无其他因子。随机生成10个两位整数并输出。找出1000以内所有同构数。,循环结构-Do循环,Do循环有当型与直到型两种。,DoWhile条件循环体ExitDo循环体Loop,Do循环体ExitDo循环体LoopWhile条件,DoUntil条件循环体ExitDo循环体Loop,Do循环体ExitDo循环体LoopUntil条件,当型,直到型,说明,(1)对于循环次数未知的情况下,Do-Loop循环十分有用。(2)在DoWhile循环中,当条件为真时,要继续循环;在DoUntil循环中,条件为真时,结束循环。(3)在Do-Loop循环中可以没有While或Until部分,也称为无条件循环,但在循环体中一定要有ExitDo语句,否则会造成死循环。与ExitFor语句一样,ExitDo语句通常在条件判断之后使用。(4)ExitDo语句可以退出当前一层Do循环,把控制权转移到Loop语句后的语句。,示例,求两个整数的最大公约数。经典算法:欧几里德算法,DimMAsInteger,NAsInteger,RAsIntegerM=InputBox(输入M)N=InputBox(输入N)R=MModNDoWhileR0M=NN=RR=MModNLoopPrint最大公约数为:;N,结构的嵌套,一个结构把另一个结构完全包含。注意嵌套的层数没有限制。一个控制结构必须完全位于另一个结构之内。结构层次比较多时,应尽可能让程序呈现锯齿形。多个循环结构嵌套时,注意循环控制变量的使用。,嵌套中的Exit语句,当有多个Do循环嵌套时,ExitDo语句只跳出当前一层Do循环;当有多个For循环嵌套时,ExitFor语句只跳出当前一层For循环;当Do循环与For循环嵌套时,使用ExitDo语句可退出Do循环,若内层循环为For循环,则ExitDo语句同时跳出For循环;使用ExitFor语句可退出For循环,若内层循环为Do循环,则ExitFor语句同时跳出Do循环。,练习,随机生成十个能被3整除但不能被5整除的三位整数。用矩形法求定积分。计算近似值。,返回,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!