VB基本语句(8学时).ppt_第1页
VB基本语句(8学时).ppt_第2页
VB基本语句(8学时).ppt_第3页
VB基本语句(8学时).ppt_第4页
VB基本语句(8学时).ppt_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

4.3分支结构,4.5程序示例,4.4循环结构,4.2顺序结构,4.1算法及程序设计基础,黔东南民族职业技术学院VisualBasic程序设计,第四章基本的控制结构,例:用辗转相除法写出求两个自然数的最大公约数的算法,(1)输入两个自然数m,n(2)rmmodn(3)mn;nr(4)若r0则重复(2)(3)步否则输出m(最大公约数),4.1算法及程序设计基础,1.算法的概念:广义:即解决某个问题或处理某件事的方法和步骤狭义:专指用计算机解决某一问题的方法和步骤,2.算法的特征确定性、可行性、有穷性、输入性、输出性,3.算法的描述广泛使用的是流程图,它使规定的符号来描述算法,开始,4.算法分类数值算法:用于解决一般数学解析方法难以解决的问题。如:求超越方程的根、求定积分、解微分方程等非数值算法:用于对非数值信息进行查找、排序等。,4.1算法及程序设计基础,1.算法的概念:广义:即解决某个问题或处理某件事的方法和步骤狭义:专指用计算机解决某一问题的方法和步骤,2.算法的特征确定性、可行性、有穷性、输入性、输出性,3.算法的描述广泛使用的是流程图,它使规定的符号来描述算法,1.赋值语句,给变量赋值,格式:变量名=表达式,设置或获取对象的属性,设置属性值:对象名.属性=表达式获取属性值:变量名对象名.属性,如:A=“VB程序设计”Text1.Text=ABText2.Text,4.2顺序结构,顺序结构:各语句按照出现的先后次序依次执行,Print方法系统提供的交互函数或过程,如:DimvAsIntegerDimbookAsString*8DimsumAsSinglev=26v=v+1book=“VB程序设计”sum=v*123.4+56.7,Boolean数值型True为-1;False为0Boolean数值型非0为True;0为False,1.赋值语句,4.2顺序结构,顺序结构:各语句按照出现的先后次序依次执行,例:DimvAsIntegerDimbookAsString*8DimsumAsDoubleDimBoolAsBooleanv=26v=v+12.3sum=v*123.4+56.7v=“126”sum=“123ab”v=Truesum=FalseBool=123Bool=0,注意:(1)右边表达式的值强制转换成左边变量的精度,(2)若不能实现类型转换,出现“类型不匹配”错,1.赋值语句,4.2顺序结构,顺序结构:各语句按照出现的先后次序依次执行,注意:(1)右边表达式的值强制转换成左边变量的精度,(2)若不能实现类型转换,出现“类型不匹配”错,例:DimXAsSingleDimYAsSingleDimSumAsSingleX=26Sin(X)=X+Y5=Sqr(X)+YX+Y=126X=Y=Sum=1Sum=Sum+1,(3)赋值号左侧只能出现变量,(4)一条赋值语句不能同时给多个变量赋值,(5)正确理解加1语句,。,4.2顺序结构,顺序结构:各语句按照出现的先后次序依次执行,InputBox函数,Msgbox函数,与用户交互函数和过程,格式:InputBox(提示,标题,默认值,X,Y),格式:MsgBox(提示内容,按钮设置,标题),1.赋值语句,给变量赋值,设置或获取对象的属性,InputBox函数-输入框,作用:打开一个对话框,等待用户输入内容。单击确定,返回输入值(字符型数据)格式:变量名=InputBox(提示,标题,默认值,X,Y),例:设置一个输入框:提示用户输入查询学号。,提示:若提示内容中需要换行显示:在换行处加chr(13)和chr(10)各项参数位置必须一一对应,按钮:可选。整型表达式,缺省值为0指定信息框中按钮数目、类型、图标类型,缺省按钮等,Msgbox函数-信息框,变量=MsgBox(提示内容,按钮,标题)MsgBox提示内容,按钮,标题,提示内容:必要。字符表达式,即显示在对话框中的信息,2.MsgBox函数的常用参数的说明,=60ThenPrint祝贺你考试通过!EndIfPrint“继续努力!”等价于:IfScore=60ThenPrint“祝贺你考试通过!”Print“继续努力!”,1.IfThen结构,格式:(1)If条件Then(A组语句)EndIf,(2)If条件Then语句,执行规则:若条件成立,执行A组语句;条件不成立,跳过A组语句.,4.3.1If条件语句,使用前提:条件成立时,A组语句中只一条执行语句,例:Ifscore=60ThenPrintscorePrint祝贺你考试通过!EndIfPrint“继续努力!”,练习,.,1.IfThen结构,例1:输入两个数,分别放在x和y变量中,比较它们大小,然后将大数放在x中,小数放在y中。,x%=Text1.textY%=Text2.textIfx=60ThenPrint“祝贺你考试通过!”ElsePrint“考试未通过.”EndIfPrint继续努力!,2.IfThenElse结构,格式:If条件ThenA组语句ElseB组语句ENDIf,执行规则:条件成立,执行A组语句,条件不成立,执行B组语句,例2:计算分段函数:(可用单分支、双分支和两个单分支分别实现),4.3.1If条件语句,2.IfThenElse结构,例3:已知三边的长,设计求面积的程序。,开始,4.3.1If条件语句,例4:(思考)输入二级考试成绩,要求显示对应三级制的评定。评定条件为:,4.3.1If条件语句,.,3.IfThenElseIf结构,Mark=Text1.TextIfMark=90ThenPrint优ElseIfMark=60ThenPrint“通过ElsePrint“未通过EndIf,若条件1与条件2换位,结果会怎样?,格式:If条件1Then(A组语句)ElseIf条件2Then(B组语句)ElseIf条件3Then(C组语句)Else(n组语句)EndIf,4.3.1If条件语句,.,格式:If条件1ThenA组语句ElseIf条件2ThenB组语句ElseIf条件3ThenC组语句Elsen组语句EndIf,3.IfThenElseIf结构,注意:多分支语句中,有多个分支同时满足,只执行第一个与之匹配的语句块。注意ElseIf的写法,4.3.1If条件语句,.,例5编写一个按月收入额计算个人收入调节税的程序计算方法如下(P77例4-8)0Pay1000或离退休(Pay-1000)*0.051000Pay2000Z(Pay-2000)*0.15+502000Pay3000(Pay-3000)*0.25+2003000Pay4000(Pay-4000)*0.35+450Pay4000分析:选择语句结构每个条件的表示及先后顺序,3.IfThenElseIf结构,4.3.1If条件语句,.,4.If语句的嵌套,4.3.1If条件语句,If语句的嵌套是指if或else后面的语句块中又包含If语句。语句形式:IfThenIfThenEndIfEndIf,注意:(1)对于嵌套结构,为了增强程序的可读性,应该采用缩进形式书写;(2)If语句形式若不在一行上书写,必须与EndIf配对多个If嵌套,EndIf与它最接近的If配对。,SelectCase测试表达式Case测试项1A组语句Case测试项2B组语句CaseElsen组语句EndSelect,说明:测试表达式的值应是数字或字符型测试项的取值必须与测试表达式的值类型相同,常用形式为:具体取值,用逗号隔开如:1,5,9连续的范围:界1TO界2如:12To20满足某个条件:Is运算符如:Is10三种形式可以组合使用,4.3.2SelectCase语句,SelectCase结构,例5:输入二级考试成绩,要求显示对应三级制的评定。Mark=Val(Text1.Text)SelectcaseMarkcaseis=90Print优case90to60Print“通过CaseElsePrint“未通过Endselect,Mark=Val(Text1.Text)K=mark10SelectcaseKcase10,9Print优case8to6Print“通过CaseElsePrint“未通过Endselect,4.3.3条件函数(可选),1.Iif函数-替代IF语句格式:Iif(表达式、条件为真的值,条件为假的值),例:实现将X,Y变量中的大数放入Tmax变量,用If语句:IfXYThenTmax=XElseTmax=YEndIf,用Iif函数:Tmax=IIf(XY,X,Y),2.Choose函数-替代SelectCase语句格式:Choose(整数表达式、选项列表),例:用1、2、3、4分别返回不同的运算符,Nop=Rnd*4+1SelectCaseNopCase1OP=Case2OP=”Case3OP=CaseElseOP=”EndSelect,Nop=Int(Rnd*4+1)Op=Choose(Nop,”,”,”,”),4.3.3条件函数(可选),4.3选择结构,例7编写一个加油站计费程序,在“种类”中选择油品种类,界面上的说明文字将随之改变,并将“数量”文本框设为焦点;在数量文本框中输入需购的油品数量后,单击“计算”按钮,在“总价”文本框显示所购油品种类应付的金额。已知汽油单价:90号2.30元/升95号2.45元/升100号2.60元/升,4.3选择结构,例8编写一个简单运算器的程序,要求:单击“计算”按钮,则根据输入操作数以及所选的运算符,求得运算结果,并显示在相应的文本框中。提示:当除数为0时,用消息框给出提示,总结,赋值语句,条件语句,变量名=表达式对象.属性=表达式变量=对象.属性,变量赋值:属性赋值:,1.IfThen结构2.IfThenElse结构3.IfThenElseIf结构4.SelectCase结构,4.4循环结构,循环:是在指定的条件下多次重复执行一组语句,1.ForNext,2.DoLoop,3.循环嵌套,4.其他辅助控制语句,For循环变量=初值TO终值Step步长语句块ExitFor语句块Next循环变量,For循环格式:,执行过程:(1)将初值赋循环变量;(2)判断循环变量值是否小于等于终止值;(3)若是,执行循环体(语句块);(4)然后将变量增加一个步长;(5)重复24步骤。(6)否则,结束循环,4.4.1For循环,步长省略,默认为1,程序代码:DimI%,s%ForI=1To10step1NextIPrintI,s,例1:求1+2+3+4+10之和.,分析:重复过程(循环体):ss+I初值、终值和增量:1、10、1,初值与终值换位可以吗?,循环体的执行次数是多少?输出的I、S的值是多少?ForI=1To10执行多少次?,s=s+I,ForI=10To1Step-1,4.4.1For循环,For循环变量=初值TO终值Step步长语句块ExitFor语句块Next循环变量,DimI,sAsIntegerForI=1To10s=s+INextIPrintI,s,例2:求10!,分析:重复过程:*初值、终值与增量不变,例1:求1+2+3+4+10之和.,分析:重复过程(循环体):+初值、终值和增量:1、10、1,DimI,sAsIntegerForI=1To10s=s*INextIPrintI,s,s=1ForI=1To10,ForI=1To10s=1,4.4.1For循环,S1=0S2=0ForI=1To1000S1=S1+INextI,练习1:计算11000的奇数和与偶数和方法一:方法二:,Step2,ForI=1To1000Step2S2=S2+INextIPrintS1,S2,0,S1=0S2=0ForI=1To1000IfImod20thenS1=S1+IElseS2=S2+IEndIfNextIPrintS1,S2,4.4.1For循环,练习2:输入一个正整数,求个位数字之和,输入正整数k求它的位数用For循环1,位数和步长取k的末位数,求和使k去掉末位数重复以上两步,直到结束在text2中显示结果,4.4.1For循环,例:分析下列程序段的输出结果:DimIAsInteger,JAsIntegerJ=0ForI=0To10Step2I=I+3J=J+1NextI,注意:初值、终值、步长必须是数值型,步长为正,初值终值;缺省为默认为1在已知循环次数时使用For循环,循环次数=int(终值-初值)/步长)+1组成循环体的语句块可以是一条或多条语句ExitFor表示当遇到该语句时,退出循环体,执行Next的下一句;在循环体内对循环变量可多次引用,但在循环过程中一般不改变其值,否则影响结果。退出循环后,循环变量保持退出时的值,思考:我国现有人口13亿,按人口年增长率0.8%计算,多少年后我国人口超过26亿?,4.4.1For循环,1.DoWhile循环体Loop,2.D0循环体LoopWhile,3.DoUntil循环体Loop,4.Do循环体LoopUntil,4.4.2DoLoop循环,1.While循环,DoWhile循环体Loop,执行过程:(先判断,后执行)先判断循环条件,若为真:执行循环体,再判断循环条件否则,跳过循环体,执行Loop之后语句,4.4.2DoLoop循环,DoWhile循环体Loop,DimI,sAsIntegerForI=1To10s=s+INextIPrintI,s,例1:求1+2+3+4+10的和.,DimI,sAsIntegerI=1DoWhileLoopPrintI,s,s=s+I,I=10,I=I+1,I=11,(1)循环体执行了几次?(2)没有I=1会怎样?(3)将Print语句移到Loop的前面结果怎样?(4)I先赋值为11,结果如何?,1.While循环,4.4.2DoLoop循环,D0循环体LoopWhile,执行过程:(先执行,后判断)先执行循环体,再判断循环条件,若为真,继续执行循环体;否则,结束循环,执行Loop之后语句,1.While循环,4.4.2DoLoop循环,D0循环体LoopWhile,例4:修改例3,DimI,sAsIntegerI=1DoWhileI=10s=s+II=I+1LoopPrintI,s,DimI,sAsIntegerI=1Dos=s+II=I+1LoopWhileI=10PrintI,s,(1)循环体执行几次?(2)将I先赋值为11,执行结果如何?,1.While循环,4.4.2DoLoop循环,DoWhile循环体Loop,D0循环体LoopWhile,区别:(1)执行顺序不同形式一:先判断,后执行循环体;形式二:先执行循环体,后判断(2)执行次数不同(特殊情况下)形式一:条件不满足,循环体可能一次也不执行形式二:不论条件如何,至少执行一次,1.While循环,4.4.2DoLoop循环,练习3:用辗转相除法求两自然数m、n的最大公约数和最小公倍数,分析:最大公约数已知两数m、nmModn的值为rmn,nr,若r0,则重复否则,循环结束,m为所求的最大公约数,最小公倍数原两个数相乘,再除以最大公约数,4.4.2DoLoop循环,练习4:我国现有人口13亿,按人口年增长率0.8%计算,多少年后我国人口超过26亿。,分析计算公式:26=13(1+0.008)n已知:当前人口数量为P=13,年增长率为R=0.008循环条件:当前人口数是否超过26亿若没,计算下一年人口数PP*(1+R),年数+1,再判断,4.4.2DoLoop循环,执行过程:(先判断,后执行)先判断循环条件:条件为假:执行循环体,然后再判断条件.条件为真:跳过循环体,执行Loop之后语句,DoUntil循环体Loop,2.Until循环,4.4.2DoLoop循环,DoUntil循环体Loop,例5:修改上例,DimI,sAsIntegerI=1DoWhileI10,4.4.2DoLoop循环,2.Until循环,几种形式比较:,DoWhile循环体Loop(While),DoUntil循环体Loop(Until),区别:While条件为真时执行循环体,否则退出循环Until条件为假时执行循环体,否则退出循环,关系:while和Until可以相互转换,但循环条件取反,4.4.2DoLoop循环,练习5:输入一个正整数n,求最大的k,使得1*1+2*2+k*kn成立,循环结构.练习,分析:输入n值判断累加和sn?若是,s加下一个数的平方值重复2、3若否,结束循环由text2输出最后一个累加数k,对吗?,循环的嵌套:在一个循环体内又包含了一个完整的循环结构,4.4.3循环嵌套,ForI=1To9ForJ=1ToIs=INextJPicture1.PrintNextI,注意:内、外循环变量不能同名外循环必须完全包含内循环,不能出现交叉,分析:用三种循环个位x的可能取值为09十位y的可能取值为09百位z的可能取值为19,看三个位置上的数是否满足如下条件,若满足,即是其中一个解x3+y3+z3=z100y10x,?,练习6:求水仙花数水仙花数是指一个3位数,其各个数字的立方和等于数字本身。,4.4.3循环嵌套,1.GoTo语句2.Exit语句,满足循环条件的情况下,提前跳出循环体,结束循环。,两种形式:ExitFor、ExitDo,作用:无条件的转移到标号或行号指定的语句语法:GoTo标号|行号,100IfI=100Thens=s+II=I+2GoTo100EndIf,4.4.4其他辅助控制语句,DimIAsInteger,IfImod17=0thenprintIendIf,ForI=100to200NextI,Exitfor,分析:重复工作:判断每个数除17的余数是否为0初值、终值和增量:,练习7:求出100200之间的第一个能被17整除的整数。,4.4.4其他辅助控制语句,累加和、平均值求素数求数的质因数穷举法递推法,4.5程序示例,5,1.累加、连乘,例1:编写一个大奖赛统计选手得分的程序。要求单击“得分显示”按钮,则可以利用随机函数产生10个80100分之间的随机整数,输出在窗体上,并将计算选手的最后得分也在窗体上显示。,思考题:如果在评委的给分中,去掉一个最高分和一个最低分,然后计算最后得分,分析:由随机函数生成80100之间的10个数据连续求和求平均值,2.求阶乘,例2:求任一给定整数的阶乘,n!,分析:对于任意整数

温馨提示

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

评论

0/150

提交评论