《基本的控制结构》PPT课件.ppt

上传人:za****8 文档编号:13193361 上传时间:2020-06-07 格式:PPT 页数:50 大小:840.51KB
返回 下载 相关 举报
《基本的控制结构》PPT课件.ppt_第1页
第1页 / 共50页
《基本的控制结构》PPT课件.ppt_第2页
第2页 / 共50页
《基本的控制结构》PPT课件.ppt_第3页
第3页 / 共50页
点击查看更多>>
资源描述
第四章基本的控制结构,4.1顺序结构4.2选择结构4.3循环结构4.4其他辅助控制语句4.5综合应用4.6程序调试4.7常见错误,4.1顺序结构,顺序结构就是各语句按出现的先后次序执行。一般的程序设计语言中,顺序结构的语句主要是赋值语句、输入/输出语句等。在VB中也有赋值语句;而输入/输出可以通过文本框控件、标签控件、InputBox函数、MsgBox函数或过程及Print方法等来实现。,本章目录,4.1.1赋值语句形式:LET变量名表达式或者对象.属性=属性值作用:将表达式的值赋值给变量名或属性名。一般用于给变量赋值或对控件设定属性值。例:sum!=sum+xText1.Text欢迎使用VisualBasic6.0注意:当表达式值的精度与变量的精度不一致时,强制转换成左边的精度,如m%=10/3,则m中的结果为3当表达式是数字字符串,左边变量是数值类型,自动转换为数值类型再赋值,但表达式有非数字字符时,则出错。例如:n%=“123”n%=“12a3”,当逻辑型赋值给数值型时,True转换为-1,False转换为0;反之当数值型赋值给逻辑型时,非0转换为True,0转换为False。任何非字符类型赋值给字符类型,自动转换为字符类型。虽然赋值号与关系运算符等于号都用“=”表示,VB系统会根据所处的位置自动判断是何种意义的符号。赋值号左边只能是变量,不能是常量、常数符号或表达式。如:x+y=3,sin(x)=x+z理解n=n+1与s=s+x语句的含义。,4.1.2数据的输入与输出1.标签和文本框控件标签可以输出信息,文本框即可输入也可输出信息。2.输入对话框InputBox函数InputBox$(提示,标题,默认值,Xpos,Ypos)其中:1)提示:字符串,长度不超过1024个字符,用来提示用户输入。文本可自动换行。如想强制插入回车换行则用:Chr$(13)+Chr$(10)或常数vbCrLf。2)标题:字符串,对话框标题,显示在对话框顶部的标题区。3)默认值:字符串,用来显示输入区的默认初值。4)Xpos,Ypos:是两个整数值,确定对话框在屏幕上的位置;如果省略,则对话框显示在屏幕中心线向下约1/3处。,使用InputBox函数时的注意事项:1)默认值表示输入的初始默认值,如果直接按下回车键或单击“确定”按钮,函数的返回值(函数值)为该默认值。2)变量名=InputBox(参数表)函数值默认为字符类型。输入数值时,函数值可以利用Val函数转换为数值后,再参加运算。如果变量已被正确地定义了类型时,则不必进行类型转换。3)输入数据后,按回车键或单击“确定”按钮表示确认,并返回在文本框中输入的数据;如果单击“取消”按钮(或按Esc键)时,则取消当前的输入,此时该函数返回一个空字符串。4)需要输入多个值,则必须多次执行或调用InputBox函数。,例4.1利用InputBox输入基本工资和营业额,按营业额的5%提成,计算实发工资并显示。PrivateSubForm_Click()Dimsfgz!,jbgz!,yAsSinglejbgz=Val(InputBox(输入基本工资,计算工资,300)y=Val(InputBox(输入本月营业额)sfgz=jbgz+y*0.05Print本月营业额为:密码PassWordChar为“*”,MsgBox函数设置密码错对话框。,12,4.Print方法,作用:在对象上计算并输出表达式的信息。格式:对象.PrintSpc(n)|Tab(n);输出列表;|,说明:对象:窗体、图形框或打印机,缺省为窗体;Spc(n)函数:从当前位置起空n个空格;Tab(n)函数:从最左端开始的第n列上输出;分号:紧凑格式,定位在上一个被显示的字符之后;逗号:标准格式,定位在下一个打印区开始处(每区14列);Print语句尾无分号或逗号,输出后换行。例4.3Print方法输出图形,13,5.Format格式输出函数,形式:Format(表达式,格式字符串)常用数值格式化符及举例,例4.4利用Format函数显示数值。,4.2选择结构,计算机要处理的问题往往是复杂多变的,仅采用顺序结构是不够的。必须利用选择结构等来解决实际应用中的各种问题。VB中提供了多种形式的条件语句来实现选择结构,有If条件语句和Select情况语句等。它们都是对条件进行判断,根据判断结果,选择执行不同的分支。,本章目录,1.IfThen语句(单分支结构)IfThen语句块EndIf或IfThen,例4.5已知两个数x和y,比较它们的大小,使得x大于y.Ifxz用一个IF语句和一个嵌套的IF语句实现,IfxyThent=x:x=y:y=tIfyzThent=y:y=z:z=tIfx0ThenPrint在第一象限ElseIfx0ThenPrint在第二象限ElseIfx0Andy0Andy0Print在第一象限Casex0Print在第二象限Casex0Andyy,x,y)(2)Choose函数形式是:Choose(数值类型变量,选项列表)例如,Nop是1-4的值,转换成+、-、运算符的语句如下:Op=Choose(Nop,+,-,)当值为1,返回字符串“+”,然后放入Op变量中,值为2,返回字符串“-”,依次类推;当Nop是1-4的非整数,系统自动取Nop的整数办法在判断;若Nop不在14之间,函数返回Null值。(3)Switch函数形式是:Switch(条件表达式1,条件表达式1为True时的值,条件表达式2,条件表达式2为True时的值),4.3.1For循环语句(用于循环次数已知)1.语句形式For循环变量初值to终值Step步长语句块ExitFor语句块Next循环变量,循环体,0初值终值=0死循环,(3)循环次数,(2)步长,其中:(1)循环变量必须为数值型。,2.执行流程,4.3循环结构,3.注意的问题(1)出了循环,循环控制变量值的问题。例程序段:Fori=2To13Step3Printi,NextiPrint:Print“I=“,i,例4.11计算1100的奇数和,程序段如下:Dimi%,s%s=0Fori=1To100step2s=s+iNextiPrints,循环执行次数,输出i的值分别为:25811出了循环输出为:I=14,例改变循环控制变量对循环的影响。PrivateSubCommand1_Click()j=0Fori=1To20Step2i=i+3j=j+1Print第;j;次循环i=;iNextiPrint退出循环后i=;iEndSub正常情况:i=1,3,5,7,9,11,13,15,17,19现在:i=4,9,14,19,(2)在循环体内对循环控制变量可多次引用;但最好不要对其赋值,否则影响原来的循环控制规律。,计算下列循环语句的次数:(1)Fori=-3To20step4(2)Fori=-3.5To5.5step0.5(3)Fori=-3.5To5.5step-0.5(4)Fori=-3To20step0解答(1)循环次数为6次(2)循环次数为19次(3)不循环(4)无数次,死循环,例4.12输出可打印的ASCII码字符与它的编码值。,4.3.2DoLoop循环语句(用于控制循环次数未知)形式1:DoWhile|Until语句块ExitDo语句块Loop,形式2:Do语句块ExitDo语句块LoopWhile|Until,例4.13我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。分析:解此问题两种方法,可根据公式:26=13*(1+0.008)n直接利用标准对数函数求得;也可利用循环求得,程序如下:PrivateSubCommand1_Click()x=13n=0DoWhilex=26,4.3.3循环的嵌套一个循环体内又包含了一个完整的循环结构称为循环的嵌套。例4.14打印九九乘法表Fori=1To9Forj=1To9se=iNextjPicture1.PrintNexti,思考:打印上三角或下三角程序如何改动?要打印下三角?,Forj=1Tox,Forii=1To10Forjj=1To20NextiiNextjj,Forii=1To10Forii=1To20NextiiNextii,Forii=1To10Forjj=1To20NextjjNextii,Forii=1To10NextiiForii=1To10Nextii,对于循环的嵌套,要注意以下事项:内循环变量与外循环变量不能同名;外循环必须完全包含内循环,不能交叉;不能从循环体外转向循环体内,反之则可以。正确错误,4.4其他辅助控制语句1.GoTo语句形式:GoTo标号|行号作用:无条件地转移到标号或行号指定的那行语句。标号是一个字符序列,行号是一个数字序列。2.Exit语句多种形式:ExitFor、ExitDo、ExitSub、ExitFunction等。作用:退出某种控制结构的执行。3.End语句多种形式:End、EndIf、EndSelect、EndWith、EndType、EndSub、EndFunction。作用:End结束一个程序的运行;其余表示某个结构的结束,与对应的结构语句配对出现。,求n以内素数的代码:Form=2TonFori=2Tom-1If(mModi)=0ThenGoToNotNextMNextiPrintmNotNextM:Nextm,m是否为素数,求n以内的素数,思考:此例用GoTo语句对非素数不作判断,若不用GoTo语句,如何修改程序?,例4.15判断输入的数是否为素数素数是一个大于2,且不能被1和本身以外的整数整除的整数。判别某数m是否为素数最简单的方法是:对于m从i=2,3,m-1判别m能否被i整除,只要有一个能整除,m不是素数,否则m是素数。,4.5综合应用,1.四则运算例4.16由计算机自动产生四则运算题,并能判断答案的正确性。设计思路:(1)通过随机函数Rnd产生试题的操作数和运算符,运算符+、-、可对应编号14。产生表达式通过Form_Load事件过程。(2)需要有一个全局变量保存四则运算题的正确答案,用户答案可通过文本框输入。(3)本题主要将随机函数、If语句、Select语句综合在一起使用。,例4.17用辗转相除法求两自然数m,n的最大公约数和最小公倍数。分析:求最大公约数的算法思想:(1)m除以n得余数r;(2)若r=0,则n为最大公约数结束;否则执行(3);(3)mn,nr,再重复执行(1)。例求m=14,n=6的最大公约数.r=mmodnDoWhile(r0)m=nn=rr=mmodnLoopPrint最大公约数=,n,mnr1462620,辗转相减法m=m-nmnn=n-mnmm、n为公约数m=nDoWhilemnmnIfmnThen146m=mn86Else26n=nm24EndIf22Loop,2.求最大公约数和最小公倍数,3.计算部分级数和,例4.18求自然对数e的近似值,其误差小于0.00001。,近似公式,分析:本例涉及到程序设计中两个重要运算,累加和连乘。累加是在原有和的基础上再加一个数;连乘则是在原有积的基础上再乘以一个数。该题先求i!,再将1/i!进行累加,循环次数未知,可先设置一个次数很大的值,然后在循环体内判断是否到达精度,也可用DoWhile来实现。,4.试凑法求方程的解,例4.19百元买百鸡。假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方案。分析:(1)设母鸡、公鸡、小鸡各为x、y、z,列出方程为:x+y+z=1003x+2y+0.5z=100三个未知数,两个方程,此题求若干个整数解。(2)计算机求解此类问题,采用试凑法(也称穷举法)来实现,即将可能出现的各种情况一一罗列测试,判断是否满足条件,采用循环结构来实现。,5.递推法,递推(迭代)法基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次都从旧值的基础上递推出新值,并由新值代替旧值。例4.20小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少?分析:用后一天的数推出前一天的桃子数。设第n天的桃子为xn,是前一天的桃子的二分之一减去1。,4.6程序调试,随着程序的复杂性提高,程序中的错误也伴随而来。对初学者,看到出现错误不要害怕,关键是如何改正错误,失败是成功之母。上机的目的,不光是为了验证你编写的程序的正确性,还要通过上机调试,学会查找和纠正错误的方法和能力。VB为调试程序提供了一组交互的、有效的调试工具,在此逐一介绍。,4.6.1错误类型,语法错误、运行时错误和逻辑错误三类。1.语法错误,2.运行错误,指令代码执行了一非法操作引起的。例如,类型不匹配、试图打开一个不存在的文件等。程序会自动中断,并给出有关的错误信息。,3.逻辑错误,程序运行后,得不到所期望的结果,这说明程序存在逻辑错误。例如,运算符使用不正确、语句的次序不对、循环语句的起始、终值不正确等。通常,逻辑错误不会产生错误提示信息,故错误较难排除,需要程序员仔细地阅读分析程序,并具有调试程序的经验。,4.6.2调试和排错,VB的三种模式(1)设计模式(设计)可以进行程序的界面设计、属性设置、代码编写等。(2)运行模式(运行)执行启动命令进入运行模式。在此阶段,可以查看程序代码,但不能修改。(3)中断模式(Break)执行中断命令,进入中断模式。在中断模式下可以查看代码、修改代码、检查数据。,1.调试和排错-插入断点,2.调试窗口立即窗口、本地窗口、监视窗口,4.7常见错误4.7.1判断结构中常见错误1.在选择结构中缺少配对的结束语句,对多行式的If块语句中,应有配对的EndIf语句结束。2.多边选择ElseIf关键字的书写和条件表达式的表示,ElseIf不要写成ElseIf;多个条件表达式次序问题。3.SelectCase语句的使用,SelectCase后不能出现多个变量;Case子句后不能出现变量。,4.7.2循环结构中常见错误1.不循环或死循环的问题主要是循环条件、循环初值、循环终值、循环步长的设置有问题。2.循环结构中缺少配对的结束语句For少配对的Next3.循环嵌套时,内外循环交叉4.累加、连乘时,存放累加、连乘结果的变量赋初值问题(1)一重循环在一重循环中,存放累加、连乘结果的变量初值设置应在循环语句前。(2)多重循环,这要视具体问题分别对待。,本章小节,结构化程序设计三种结构顺序结构、选择结构、循环结构IfThen语句、SelectCase语句、For与Do循环语句赋值语句与复合赋值语句数据输出和输入InputBox、MsgBox常用算法素数判定、级数求和、试凑法、迭代法解方程,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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