分享
分销 收藏 举报 申诉 / 69
播放页_导航下方通栏广告

类型第4章VB控制结构.ppt

  • 上传人:精***
  • 文档编号:12519521
  • 上传时间:2025-10-24
  • 格式:PPT
  • 页数:69
  • 大小:1.05MB
  • 下载积分:16 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    VB 控制 结构
    资源描述:
    按一下以編輯母片標題樣式,按一下以編輯母片,第二層,第三層,第四層,第五層,按一下以編輯母片標題樣式,按一下以編輯母片,第二層,第三層,第四層,第五層,4.1,顺序结构,流程结构(如右图),自上而下一句一句地执行,先执行语句,A,再执行语句,B,【,例,4.1】,假设,10,存放在变量,x,中,,20,存放在变量,y,中,交换,x,和,y,中的值,使得,20,存放在,x,中,,10,存放在,y,中。,temp=x,x=y,y=temp,4.1,顺序结构,程序代码,:,Private Sub Command1_Click(),Dim x As Integer,y As Integer,temp As Integer,x=InputBox(input x:,10),y=InputBox(input y:,20),temp=x,x=y,y=temp,Print,交换后,:&x&,&y,End Sub,4.1,顺序结构,1.,单分支结构(,If,Then,语句),单行形式:,If,Then,多行形式:,If,Then,End,If,语法格式:,1.,单分支结构(,If,Then,语句),单行形式:,If,x y,Then,t=x:x=y:y=t,例:通过比较与交换,x,、,y,中的数,使得,x,大于,y,多行形式:,If,x y,Then,t=x,x=y,y=t,End If,2.,双分支结构(,If,Then,Else,语句),语法格式:,单行形式:,If,Then,Else,多行形式:,If,Then,Else,End,If,2.,双分支结构(,If,Then,Else,语句),例:用双分支条件语句计算以下分段函数的值。,代码设计:,Private Sub Command1_Click(),Dim x As Single,y As Single,x=Val(Text1.Text),If,x=0,Then,y=Abs(x),Else,y=x 2+1,Text2.Text=y,End Sub,If,x=0,Then,y=Abs(x),Else,y=x 2+1,End,If,3.,多分支结构,语法格式:,If,Then,ElseIf,Then,Else,语句块,n+1,End,If,3.,多分支结构,说明:,不管有几个分支,程序执行了一个分支后,其余分支不再执行。,根据流程,当多分支中有多个条件都为,True,,则只执行第一个为,True,的分支的语句块。,ElseIf,子句和,Else,子句是可选项,若省略前者则退化为双分支结构,若两者都省略则退化为单分支结构。,3.,多分支结构,例,4.3,:编程计算下列分段函数值,Private Sub Command1_Click(),Dim x As Single,y As Single,x=Text1.Text,If,x=0,Then,y=2-x,ElseIf,x=2,Then,y=x+2,ElseIf,x=5,Then,y=x 2,Else,y=25-x,End,If,Text2=y,End Sub,代码,界面,4.If,语句的嵌套,在,If,语句(单分支,或双分支,或多分支结构)的语句块中又包含一个,If,语句(单分支,或双分支,或多分支结构)。,格式,If,Then,If,Then,End,If,End,If,说明:,(,1,)对于嵌套结构,为了增强程序的可读性,应该采用,缩进,形式书写;,(,2,),If,语句是多行形式时,,If,必须有,End If,与之,配对,,表示,If,结构的结束。对于多层,If,嵌套,,End If,与它,最接近,的,If,配对。,4.If,语句的嵌套,【,例,4.4】,用,If,语句的嵌套形式,编程计算例,4.5,的分段函数值。,4.If,语句的嵌套,代码设计:,Private Sub Command1_Click(),Dim x As Single,y As Single,x=Text1.Text,If,x=2,Then,If x=0 Then,y=2-x,Else,y=x+2,End If,Else,If,x=5,Then,y=x 2,Else,y=25-x,End If,End If,Text2=y,End Sub,4.2.2 Select,Case,语句,Select Case,Case,语句块,1,Case,Case,Case Else,End Select,格式,:,说明:,(,1,),有四种形式,表达式,例:,Case 2,表达式,1 To,表达式,2,例:,Case 60 To 100,Is,关系运算符 表达式,例:,Case Is 15,注:,To,指定范围,小值在前,大值在后。,例:,Case 10 To 1,不能用逻辑运算符将多个,Is,指定的范围组合在一起。,例:,Case Is60 And Is 0,x,-x),与,If,x 0,Then,r=x,Else,r=-x,等价,小结,顺序结构,赋值语句,条件结构,单分支结构,(If Then,语句,),双分支结构,(If Then Else,语句,),多分支结构,(IfThenElseIf ElseEnd If,语句,),If,语句的嵌套,练习,1,、输入一学生,VB,成绩,评定其等级。方法是:,90100,分为“优秀”,,8089,分为“良好”,,7079,分为“中等”,,6069,分为“及格”,,60,分以为“不合格”。,2,、,编写程序,根据用户在文本框,Text1,中输入的文本,统计其中数字(,09,)的个数、英文字母(区分大小写)的个数和其他字符的个数,并在窗体中输出统计结果。,4.3,循环结构,4.3.1 For,循环结构,4.3.2 Do,Loop,循环结构,4.3.3 While,Wend,循环结构,4.3.4,循环的嵌套,4.3.1 For,循环结构,引例:利用,For,循环求累加和,,s=1+2+100,Private Sub Command1_Click(),Dim i As Integer,s As Integer,For,i=1,To,100,Step,1,s=s+i,Next,i,Print s,End Sub,4.3.1 For,循环结构,For,循环变量,=,初值,To,终值,Step,步长,语句块,Exit For,循环体,语句块,Next,循环变量,功能:,循环变量依次取初值到终值之间的以步长为增量的数列的值,每取一个值执行一次循环体。,初值、终值、步长均为数值表达式,其值可以是整数,也可以是实数。,循环变量,+,步长循环变量。,步长,=1,时,可省略,语法:,循环变量为一个数值型变量,可以是整型或实型。,4.3.1 For,循环结构,步骤描述:,(,1,)计算出初值、终值和步长。,(,2,)将初值赋给循环变量。,(,3,)判断循环变量是否,超过,终值。超过终值,则退出循环。否则:,(,4,)执行循环体。,(,5,)执行,Next,语句,循环变量,+,步长循环变量。,(,6,)转到(,3,),进行循环。,步长,0,时,循环变量,终值,为超过;,For,i=1,To,10,Step 1,s=s+i,Next,i,步长,0,时,循环变量,=50,Then,Exit For,如果,i,50,,则提前退出循环,Next,i,Print s,End Sub,4.3.1 For,循环结构,说明,(,2,),有时会根据解决问题的需要,结合条件判断和,Exit For,语句,在循环变量超过终值之前,提前退出循环,执行紧接在,Next,之后的语句。,例:求,s=1+2+50,。,4.3.1 For,循环结构,【,例,4.6】,编写程序,界面如图所示。要求:单击“运行”按钮,产生,5,个随机两位正整数,并计算它们的和与乘积,并分别在,Text1,、,Text2,、,Text3,中显示出来。,Private Sub Command1_Click(),Dim i%,x%,Sum%,Dim Product As Double,Sum=0:Product=1,Text1.Text=,Randomize,End Sub,4.3.1 For,循环结构,代码:,Private Sub Command1_Click(),Dim i%,x%,Sum%,Dim Product As Double ,以免溢出,Sum=0:Product=1:Text1.Text=,Randomize,For,i=1,To,5,x=Int(99-10+1)*Rnd+10),Text1.Text=Text1.Text&CStr(x),Sum=Sum+x,Product=Product*x,Next,i,Text2.Text=Sum,Text3.Text=Product,End Sub,While,循环,(,当型循环,),Until,循环,(,直到型循环,),判,断,前,置,式,Do While,循环条件,语句块,1,Exit Do,语句块,2,Loop,Do Until,循环条件,语句块,1,Exit Do,语句块,2,Loop,判,断,后,置,式,Do,语句块,1,Exit Do,语句块,2,Loop While,循环条件,Do,语句块,1,Exit Do,语句块,2,Loop Until,循环条件,4.3.2,DoLoop,循环结构,4.3.2,DoLoop,循环结构,(,1,),“,循环条件,”,可以是关系表达式或逻辑表达式,也可以是数值表达式(非,0True,,,0False,)。,说明,(,2,)对于判断前置式的,Do,Loop,循环,是先判断循环条件,决定是否执行循环体,因此循环体可能一次都不执行。而对于判断后置式的,Do,Loop,循环,是先执行循环体,然后再判断循环条件,因此循环体至少要被执行一次。,(,3,),While,循环和,Until,循环相互转换时,循环条件应当相反。,(,4,)在使用,Do,Loop,循环时,随着循环体一次又一次地被执行,应当能使循环条件发生改变,能在有限次数的循环后退出循环。,(,5,)循环体中可以包含一条或多条,Exit Do,语句,用来强行退出循环,转至,Loop,语句的下一条语句执行。,(,6,)在,Do,Loop,循环中,可以既不使用,While,关键字,也不使用,Until,关键字以及后面的循环条件。,Private Sub Command1_Click(),Dim b As Boolean,x As Integer,b=True,x=12,Do While b,Print x,Loop,End Sub,死循环,Private Sub Command1_Click(),Dim i As Integer,s As Integer,i=1,Do,s=s+i,i=i+1,If i 100 Then Exit Do,Loop,Print s,End Sub,Ctrl+Break,可中断死循环,4.3.2,DoLoop,循环结构,【,例,4.7】,利用如下公式计算,e,的近似值,当第,n,项的值小于,10,-6,时,终止运算。,分析:,总体是一个求累加和的问题,循环次数未知,给出了循环控制条件,FM,n,=FM,n-1,*n,4.3.2,DoLoop,循环结构,代码设计:,Private Sub Command1_Click(),Dim n%,fenmu&,tongxiang!,sum!,n=0,fenmu=1,tongxiang=1,Do While,tongxiang 10 -6,sum=sum+tongxiang,n=n+1,fenmu=fenmu*n,tongxiang=1/fenmu,Loop,Text1.Text=sum,End Sub,思考:,将代码中的,DoLoop,部分改写成其他形式,如何改?,4.3.2 WhileWend,循环结构(选讲),语法格式,While,语句块,Wend,例:,求,s=1+2+100,Private Sub Command1_Click(),Dim i As Integer,s As Integer,i=1,While,i 1 Or n 1,Then,mn=m*n,r=m Mod n,Do Until,r=0,m=n,n=r,r=m Mod n,Loop,Label3.Caption=M,、,N,的最大公约数:,&n&vbCrLf,Label3.Caption=Label3.Caption&M,、,N,的最小公倍数:,&mn/n,Else,MsgBox,输入数据有误,请重新输入,m,n,End If,End Sub,欧几里德算法,代码设计,判素数,分析:,判断,N,是不是素数的基本方法是将,N,分别除以,2,,,3,,,,,N-1,,若都不能整除,则,N,为素数。,因为,N=,Sqr(N,)*,Sqr(N,),,所以当,N,能被大于等于,Sqr(N,),的整数整除时,一定存在一个小于等于,Sqr(N,),的整数,使,N,能被它整除,因此判断,N,是不是素数,只要判断,N,能否被,2,,,3,,,,,Sqr(N,),整除即可。,【,例,4.11】,编写程序判断一个,正整数是否为素数,。所谓素数是指只能被,1,和自身整除,不能被其他整数整除的自然数。,界面设计:,判素数,Private Sub Command1_Click(),Dim N As Integer,I As Integer,K As Integer,N=Val(Text1),K=,Int(Sqr(N),或,K=Sqr(N),,或,K=N-1,,或,K=N/2,For,I=2,To,K,If N Mod I=0 Then Exit For ,如,N,能被其他整数整除,则退出循环。,Next,I,If,I K,Then,当,IK,时,说明,N,是素数,Label2.Caption=N&,是素数,Else,Label2.Caption=N&,不是素数,End If,End Sub,代码设计一:,判素数,代码设计二:,Private Sub Command2_Click(),Dim N%,I%,flag As Boolean,flag,作标志,为,True,表示是素数,N=Val(Text1),flag=True ,先认为,N,是素数,For,I=2,To,Int(Sqr(N),If,N Mod I=0,Then,如果,N,能被其他整数整除,那么,flag=False ,标明不是素数,Exit For,提前退出循环,End If,Next,I,If,flag,Then,当,flag,为,True,时,说明,N,是素数,Label2.Caption=N&,是素数,Else,Label2.Caption=N&,不是素数,End If,End Sub,判素数,思考:,编程验证哥德巴赫猜想,一个大于等于,6,的偶数可以表示为两个素数之和。,例,:,6=3+3,,,8=3+5,,,10=3+7,。,字符的加密和解密,【,例,4.13】,编写程序实现字符的加密和解密。,界面设计:,字符的加密和解密,分析:,加密是以某种特殊的算法改变原有的信息数据,,使得未授权的用户即使获得了已加密的信息,但因不知解密的密码,仍然无法了解信息的内容。,凯撒加密,(Caesar cipher),:设,k,等于,3,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A,B,C,字符的加密和解密,Private Sub Command1_Click(),“,加密”按钮事件过程,Dim i%,key%,ch As String*1,iAsc%,mingwen$,miwen$,Text2=:Text3=:Text4=,mingwen=Text1.Text:miwen=:key=3,For,i=1,To,Len(mingwen),ch=Mid(mingwen,i,1),取出,mingwen,中的第,i,个字符,If,(ch=A And ch Asc(Z),Then,iAsc=iAsc-26 ,加密字符超过,Z,的处理,ch=Chr(iAsc),ElseIf,(ch=a And ch Asc(z),Then,iAsc=iAsc-26 ,加密字符超过,z,的处理,ch=Chr(iAsc),End If,miwen=miwen&ch,Next,i,Text2.Text=miwen,End Sub,字符的加密和解密,Private Sub Command3_Click(),“,解密”按钮事件过程,Dim i%,key%,ch As String*1,iAsc%,mingwen$,miwen$,miwen=Text3.Text:mingwen=“:key=3,For,i=1,To,Len(miwen),ch=Mid(miwen,i,1),取出,miwen,中的第,i,个字符进行解密,If,(ch=A And ch=Z),Then,iAsc=Asc(ch)-key,If,iAsc=a And ch=z),Then,iAsc=Asc(ch)-key,If,iAsc Asc(a),Then,iAsc=iAsc+26 ,解密字符小于,a,的处理,ch=Chr(iAsc),End If,mingwen=mingwen&ch,Next,i,Text4.Text=mingwen,End Sub,字符的加密和解密,Private Sub Command2_Click(),“,传输”按钮事件过程,Text3.Text=Text2.Text,End Sub,Private Sub Command4_Click(),“,清空”按钮事件过程,Text1=:Text2=:Text3=:Text4=,End Sub,无穷级数求,Sin(x),【,例,4.14】,利用无穷级数求,sin(x),函数的近似值。已知:,分析:,整体是一个累加和问题,设第,n-1,项为,T,n-1,,,第,n,项为,T,n,,则,T,n,=-T,n-1,(x 2/(2*n-2)*(2*n-1),若前,n-1,项和为,Sum,n-1,,前,n,项和为,Sum,n,,则,Sum,n,=Sum,n-1,+T,n,无穷级数求,Sin(x),代码设计:,Private Sub Command1_Click(),Dim x As Single,n As Integer,sum As Single,Dim t As Single,x=Text1.Text,sum=0,t=x,n=1,Do Until,Abs(t)=10 -7,sum=sum+t,n=n+1,t=-t*(x 2/(2*n-1)*(2*n-2),Loop,Text2.Text=sum,End Sub,找水仙花数(穷举法),【,例,4.15】,找出所有的水仙花数,。所谓水仙花数是指一个,3,位数,其各位数字的立方和等于数字本身。例如:,371=33+73+13,,则,371,是水仙花数。,界面设计,:程序运行界面如图所示。,分析:,“穷举法”是解决该类问题的常用方法。穷举法就是把可能的情况一一列举出来,一一检验是否是符合条件的解题方法。本例一一列举,100,999,中的每一个数,一一检验是否是水仙花数。,找水仙花数(穷举法),Private Sub Command1_Click(),Dim i As Integer,n As Integer,Dim a As Integer,b As Integer,c As Integer,n=0,For,i=100,To,999,a=Mid(i,1,1),或,a=i100,b=Mid(i,2,1),或,b=(i10)mod 10,c=Mid(i,3,1),或,i Mod 10,If,i=a 3+b 3+c 3,Then,判断是否为水仙花数,n=n+1,记录个数,List1.AddItem i,显示水仙花数,End If,Next,i,Text1.Text=n,显示水仙花个数,End Sub,代码设计一:,找水仙花数(穷举法),Private Sub Command1_Click(),Dim i As Integer,n As Integer,Dim a As Integer,b As Integer,c As Integer,n=0,For,a=1,To,9,For,b=0,To,9,For,c=0,To,9,i=a*100+b*10+c,If,i=a 3+b 3+c 3,Then,n=n+1 ,记录个数,List1.AddItem i ,显示水仙花数字,End If,Next,c,Next,b,Next,a,Text1.Text=n ,显示水仙花个数,End Sub,代码设计二:,求超越方程的解(牛顿迭代法),【,例,4.16】,用牛顿迭代法求方程,sin(x)-x/2=0,在,x0=,附近的一个实根,误差,=10-5,。,界面设计:程序运行界面如图所示。,求超越方程的解(牛顿迭代法),求此切线和,x,轴的交点,即得,分析:,牛顿迭代法是求解一元非线性方程的常用算法。几何意义如图所示,假设待求方程为,f(x)=0,,则求根问题可归结为求,y=f(x),与,x,轴的交点,先选取一个,x,0,作为不够精确的初始根,过,(x,0,,,f(x,0,),作,y=f(x),的切线,则切线方程为,显然,求得的,x,1,比,x,0,更逼近,y=f(x),与,x,轴的交点(即,f(x)=0,的根),再由,x,1,求,x,2,,,,最终得到较为精确的近似根。,求超越方程的解(牛顿迭代法),由此得到,牛顿迭代公式,为:,当,|x,n+1,-x,n,|=,(本例中,=10-5,)则迭代结束。,x,n+1,即为方程,f(x)=0,的最终近似根。,值给得越小,方程的根就越精确,计算量也越大。,求超越方程的解(牛顿迭代法),Private Sub Command1_Click(),Dim x0 As Single,x1 As Single,eps As Single,Dim delta As Single,x0=Text1.Text,eps=Text2.Text,Do,x1=x0-(Sin(x0)-x0/2)/(Cos(x0)-0.5),求下一个迭代根,delta=x1-x0,x0=x1,Loop Until,Abs(delta)eps,Text3.Text=x1,End Sub,代码设计:,练习,1,、输入一个正整数,n,,求最大的,k,,使得,1*1+2*2+k*kn,成立,2,、,求任一给定整数的阶乘,,n,!,3,、,将一个正整数分解为质因数乘积。,如,36,2233,
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:第4章VB控制结构.ppt
    链接地址:https://www.zixin.com.cn/doc/12519521.html
    页脚通栏广告

    Copyright ©2010-2025   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork