欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    算法基础与VB基本语句.ppt

    • 资源ID:6056236       资源大小:239.50KB        全文页数:43页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    算法基础与VB基本语句.ppt

    1,新编Visual Basic程序设计教程,2,第4章 算法基础与VB基本语句,4.1 算法基础1、概念 解决某个问题所使用的方法和步骤。亦称算法设计2、算法分类 1)数值计算算法。例:四则运算、求微积分 2)非数值计算算法。例:数据的查找、分类、排序3、算法描述 流程框图、流程图 举例:求2个学生的平均成绩。其中学生A为95分,B为70分。方法:1)将95分赋予变量A,70分赋予变量B 2)A加B的值除以2,结果赋予变量C 3)打印输出C值,3,根据以上题意绘出流程图:图形说明:,开始,A=95,B=70,C=(A+B)/2,输出C,结束,流程的起点与终点数据处理数据的输入/输出条件判断一个特定过程流程线流程图上与其它部分相连的点,4,4、基本算法结构,A,B,A,B,e,True,False,A,A,e,False,False,True,True,e,循环结构,循环结构,顺序结构,分支结构,循环体,当型循环当条件 e 成立,继续执行 A,直到型循环反复执行 A,直到条件 满足为止,5,4.2 赋值语句与 InputBox、MsgBox 函数4.2.1 赋值语句 LET 变量名(或属性名)=表达式 LET a=8 将数值8赋予变量a a=8 k1=“Made in china”C=(x+y)/6 Text1.Fout.Size=18,仍举上例:求2个学生的平均成绩。其中A为98分,B为70分。,Private Sub Cmd1_Click()Dim A as Integer Dim B as Integer Dim C as Integer A=95 B=70 C=(A+B)/2 Print CEnd Sub,6,4.2.2 InputBox函数功能:建立输入对话框,用来接受用户通过键盘输入的 数据。格式:变量名=InputBox(提示用文字信息,对话框 标题,预设用户编辑框内的缺省值),X,Y,帮助文件名,帮助主题号)举例:在用户界面上设置一个按钮,当按下按钮时出现 一个输入对话框,在用户编辑框内输入数据后,按对话框“确定”按钮,窗体上显示该数据。,7,Option ExplicitPrivate Sub Command1_Click()Dim word As String word=InputBox(请输入需在窗体中显示的内容:,_ 输入对话框,江南大学纺织服装学院)Print wordEnd Sub4.2.3 MsgBox函数功能:建立消息框,显示简短消息,并要求用户作出响 应。格式:abc=MsgBox(Prompt,Button,Title,H,C,提示用文字信息,对话框标题,数值常量c1+c2+c3+c4,下转:第 4章VB教材举例 1(4.2.2),换行:chr(13)+chr(10),8,举例1:窗体中设置一个文本框,一个按钮。当按下按钮 时,出现一个消息框,应答后按要求操作。(参见P62 表4-2(a、b、c、d),9,Option ExplicitPrivate Sub Command1_Click()Dim abc As String If Text1.Text=Then abc=MsgBox(您没有在文本框中输入任何内容 _,1+48+0+0,提示消息)Else Print 很好!您已经输入内容了。End IfEnd Sub,下转:第 4章VB教材举例 2(4.2.3-1),10,举例2:在关闭应用程序时,系统常常会弹出一个消息框提示用户是否真的退出程序。利用MsgBox函数的返回值可实现此操作。(参见 P63 表 4-3),11,Option ExplicitPrivate Sub Cmd1_Click()Label1.Caption=谢 谢!End SubPrivate Sub Cmd2_Click()Dim tang As String tang=MsgBox(是否真的要退出程序?,4+32,提示)If tang=6 Then End 6 是 Yes的返回值 End Sub,下转:第 4章VB教材举例 3(4.2.3-2),12,4.3 分支结构与分支结构语句4.3.1 If-Then-Else-End If 结构语句功能:根据条件 e 具有分支判断功能格式:If e Then A组语句 Else B组语句 End If,A,B,e,True,False,分支结构,X,A,B,e,13,举例:从键盘输入一个数 X,如果 X=0,则打印该数;如果 X0,则打印该负数。,14,Option ExplicitPrivate Sub Command1_Click()Dim x As Single x=InputBox(请输入X的值:,输入X,0)If x=0 Then Print“x=”;x A组语句 Else x=abs(x)Print“x=-”;x B组语句 End IfEnd SubPrivate Sub Command2_Click()Dim tang As String tang=MsgBox(是否真的要退出程序?,4+32,提示)If tang=6 Then EndEnd Sub,下转:第 4章VB教材举例 4(4.3.1-1),15,除上述标准格式外,还有不对称分支和多分支。,A,e,True,False,不对称分支结构,If e Then 例:,Private Sub Cmd2_Click()Dim x As Integer x=InputBox(“请输入X的值:”,_ 输入X,0)If x=0 Then Print x End Sub,16,多分支结构,格式:If 表达式1 Then 语句块1ElseIf 表达式2 Then 语句块2ElseIf 表达式3 Then 语句块3 End If,17,举例:P66 例 4-2 一个多分支的示例程序(流程图见 P66 图4-11),Option ExplicitPrivate Sub Command1_Click()Dim x As Integer x=Val(Text1.Text)If x 1 Then Text2.Text=这是小于1的数 ElseIf x=10 Then Text2.Text=这是1到10之间的数 Else Text2.Text=这是大于10的数 End IfEnd SubPrivate Sub Command2_Click()EndEnd Sub,下转:第 4章VB教材举例 5(4.3.1-2),看看流程吧!,18,4.3.2 并列式多分支结构语句 Select-Case-End Select 语句功能:同多分支语句,但从语句逻辑结构上为并列式分支操作。格式:Select Case e Case c1 A组语句 Case c2 B组语句 Case Else n组语句 End Select,e,B,A,C,n,c1,c2,c3,cn,e 测试表达式,算术或字符表达式c1、c2、c3 测试项:*具体取值,例;1、5、8等,*连续的数据范围,例:4 To 10,B To F*满足某判决条件,例:Is 20 Is=“P”,19,Option ExplicitPrivate Sub Command1_Click()Dim x As Integer x=Val(Text1.Text)Select Case x Case Is 1 Text2.Text=这是小于1的数 Case 1 To 10 Text2.Text=这是1到10之间的数 Case Else Text2.Text=这是大于10的数 End SelectEnd SubPrivate Sub Command2_Click()EndEnd Sub,仍以上例:P66 例 4-2 一个多分支的示例程序,下转:第 4章VB教材举例 6(4.3.2),20,注意 Is 比较运算符和使用在 Select Case 语句中的 Is 关键字并不相同:,Is 作为比较运算符:用来比较两个对象的引用变量;语法:result=object1 Is object2;说明:如果 object1 和 object2 两者引用相同的对象,则 result 为 True;否则,result 为 False。Is 作为select case 中的关键字:使用 Is 关键字时,则可以配合比较运算符(除 Is 和 Like 之外)来指定一个数值范围。如果没有提供,则 Is 关键字会被自动插入。,21,4.4 循环结构与循环结构语句循环:对某一操作重复执行类型:当型循环与直到型循环,A,False,True,e,当型循环,循环体,当型循环当条件 e 成立,继续执行 A,4.4.1 Do-Loop 语句应用场合:若事先不知道循环次数,使用该语句格式:条件成立,Do While e 做循环 Exit Do Loop特征:先判别,再循环,说明:Exit Do 功能为直接退出循环,不执行下面的 语句段。常用形式:If e Then Exit Do,A,22,举例:P68 例 4-3 采用欧几里得算法求解二个自然数 的最大公约数的程序,求最大公约数可使用“辗转相除法”例如 24 与 16,先将24被16除,得余数 8(求余运算)。之后将原来的除数 16 作为下一次的被除数,将上一次得到的余数(8)作为除数,二者相除后得余数 0。此时最后一次的除数 8 就是所求的最大公约数。,23,归纳:欧几里得算法是:如果有二个数 m,n,将大数 m作为被除数,小数作为除数,相除后余数为 r。若 r=0,则将 n m,将 r n,再进行新的一轮除法运算(即以新的 m作被除数,n作除数),得到新的 r。重复以上过程直到 r=0为止。此时 n 就是最大公约数。,画画流程吧?(欧几里得算法流程图),24,Text3.Text=CStr(m)输出最大公约数 End IfEnd SubPrivate Sub Command2_Click()Text1.Text=Text2.Text=Text3.Text=Text1.SetFocus 将文本框1设为焦点End SubPrivate Sub Command3_Click()EndEnd Sub,Option ExplicitPrivate Sub Command1_Click()Dim m,n,r,a As Long m=Val(Text1.Text)取数据M n=Val(Text2.Text)取数据N r=m*n 假设r的开始值为m*n _(实际上不可能的,为何需要这一句?)If m 0 当r不等于0,进行循环 r=m Mod n m=n n=r Loop,下转:第 4章VB教材举例 7(4.4.1),25,也可以换一种算法:使用普通数学中分步求公因子,且各因子相乘的方法求得最大公约数。,2,24 16,12 8,2,6 4,2,3 2,T=2*2*2=8,2,120 180,60 90,2,30 45,3,10 15,T=2*2*3*5=60,5,2 3,即从取数值 2 开始,将该数作为除数,对二个被除数分别作除法运算,若能同时除尽(即 Mod 运算结果为 0),则将该数赋予变量 T 并作连乘。反复使用 2 作除法运算,当 2 不能同时整除二数时,则换,26,数值 3,依次类推,直至二个被除数不能同时整除时为止。公约数 T=2*。,If m n Then a=m:m=n:n=a t=1 For i=2 To n For j=1 To n If(m Mod i)=0 And(n Mod i)=0 Then t=t*i m=m/i n=n/i End If Next NextText3.Text=CStr(t)输出最大公约数,2,24 16,12 8,2,6 4,2,3 2,从2开始尝试公约数,每个公约数可能的整除次数,27,当型循环除上述格式外,还有另一种格式:Do Exit Do Loop While e特征:先执行一次循环,然后再作条件判别,根据判别结果执行下一次循环。,A,仍举上例:求最大公约数,Option ExplicitPrivate Sub Command1_Click()Dim m,n,r,a As Long m=Val(Text1.Text)取数据M n=Val(Text2.Text)取数据N r=m*n 假设r的开始值为m*n _(实际上不可能的,实际上也可不要?)If m 0 当r不等于0,进行循环,仍转:第 4章VB教材举例 7(4.4.1),28,A,e,False,True,以上介绍了 Do-Loop语句的当型循环形式。下面介绍 Do-Loop语句的直到型循环:,直到型循环反复执行 A,直到条件 满足为止换言之,条件不满足 继续循环,格式:Do Exit Do Loop Until e 条件不成立,做循环,特征:先执行一次循环,然后再作条件判别,根据判别结果执行下一次循环。,仍举上例 例4-3 求二个自然数的最大公约数,29,直到型循环除上述格式外,还有另一种格式:,Do Until e 条件不成立,做循环 Exit Do Loop,下转:第 4章VB教材举例 8(4.4.1-2),Option ExplicitPrivate Sub Command1_Click()Dim m,n,r,a As Long m=Val(Text1.Text)取数据M n=Val(Text2.Text)取数据N r=m*n 假设r的开始值为m*n _(实际上不可能的)If m 1 Or n 1 Then 检验数据合法与否 Text3.Text=数据错误!Else If m n Then a=m:m=n:n=a Do r=m Mod n m=n n=r Loop Until r=0 当 r 等于0,停止循环,特征:先判别,再循环,仍转:第 4章VB教材举例 8(4.4.1-2),30,Do-Loop循环语句总结:,当型循环:只要条件成立就 进入循环 Do While e 条件成立,做循环 Exit Do Loop特征:先判别,后循环,Do Exit Do Loop While e 条件成立,做循环,特征:先执行一次循环,然后作条件判别,执行下一次循环,直到型循环:只要条件成立就 退出循环Do Exit Do Loop Until e 条件不成立,做循环,特征:先执行一次循环,然后作条件判别,执行下一次循环,Do Until e 条件不成立,做循环 Exit Do Loop,特征:先判别,后循环,31,4.4.2 For-Next 循环结构语句应用场合:若已知循环次数,使用 For-Next 语句格式:For v=e1 To e2 Step e3 Exit For 循环体 Next v 式中:V-循环控制变量,数据类型为整型或单精度型(算子)e1-循环初值 e2-循环终值 e3-循环步长(e3=1,可省略),举例:编写 For-Next语句,并打印出语句执行时的循环次数。,Option ExplicitPrivate Sub Form_Click()Dim i As Integer For i=1 To 10 Step 4 Print i Next i Print i=;iEnd Sub,32,运行结果:,运行过程:1)Print I 为 1 Next I 为 I=1+4=5,2)Print I 为 5 Next I 为 I=5+4=9 3)Print I 为 9 Next I 为 I=9+4=13,步长,下转:第 4章VB教 材举例 9(4.4.2-1),33,下转:第 4章VB教材举例 10(4.4.2-2),举例:可改变循环终值和步长的循环语句演示程序:,Option ExplicitPrivate Sub Form_Click()Dim z,b,i,n As Integer z=10 b=1 n=0 Print For i=1 To;z;Step;b Print For i=1 To z Step b n=n+1 Print 第;n;次循环,;i=;i;Print Next i=;i;+;b;=;i+b Next i Print Print 最后一次 i 值为;i;,为此停止循环End Sub,34,讨论:1、循环次数的计算循环次数=(循环终值-循环初值)/步长+1,Option Explicit Private Sub Form_Click()Dim i As Integer For i=0 To 6 Step 2 Print i Next iEnd Sub循环次数=6-0+1=3+1=4 2,2、循环变量初、终值可以取正值、负值或零。步长可以是正值或负值(尽量采用整型数),但不能为零(无意义)。,35,Option ExplicitPrivate Sub Form_Click()Dim i As Integer For i=-5 To 5 Step 5 Print i Next iEnd Sub,Option ExplicitPrivate Sub Form_Click()Dim i As Integer For i=3 To 0 Step-1 Print i Next iEnd Sub,1)当步长为负值时,循环变量初值 终值 2)循环次数=(0-3)/-1+1=3+1=4,循环次数=5-(-5)/5+1=3,36,3、在循环体内一般不要向循环变量再赋值,否则会改变循环次数或状况。,Option ExplicitPrivate Sub Form_Click()Dim i As Integer For i=1 To 5 i=i*i Print i Next iEnd Sub,Option ExplicitPrivate Sub Form_Click()Dim i As Integer For i=1 To 5 Print i Next iEnd Sub,循环体内未赋值,循环体内赋值,变量 i 被赋值,37,举例:例4-5 从一个由字母数字组成的字符串中找出所有大写字母并按逆序输出的程序。,Option ExplicitPrivate Sub Command1_Click()Dim s,d,t As String Dim i As Integer Text1.SetFocus s=Text1.Text 取输入字符 For i=1 To Len(s)筛选大写字母 If Mid(s,i,1)=A And Mid _(s,i,1)=Z Then t=t&Mid(s,i,1)End If Next i For i=Len(t)To 1 Step-1 字符逆序排列 d=d&Mid(t,i,1)Next i Text2.Text=d 在文本框输出End Sub,Private Sub Command2_Click()Text1.Text=Text2.Text=Text1.SetFocusEnd SubPrivate Sub Command3_Click()EndEnd Sub,下转:第 4章VB教材举例 11(例 4-5),38,4.4.3 循环嵌套概念:在一个循环体内包含另一个完整的循环,称嵌套。For I=For k=Next k Next I,内层循环,外层循环,以上为双层循环,举例:打印九九乘法表,Option ExplicitPrivate Sub Form_Click()Dim i,j As Integer For i=1 To 9 For j=1 To 9 Print i;*;j;=;i*j;Next j Print Print Next iEnd Sub,39,下转:第 4章VB教材举例 12(4.4.3-1),40,举例:设计一模拟摇奖程序。要求是:100个人中签,由机器自动随机产生1000个1100间的数据,确定第1000个随机数为中签人的得奖号。预备知识:随机数的产生 Rnd(x)若 X 0 或不置X值,随机序列的下一个随机数试在立即窗口中操作验证:Rnd(X)讨论:1)产生的随机数总是在(0,1)区间内。2)X的值影响 Rnd 生成随机数的方式。3)采用 Randomize 语句初始化随机数生成器,可从系统计时器获得随机数种子。,41,若要生成某个范围内的随机整数,可使用以下表达式:Int(随机数整数范围的上限-下限+1)*Rnd+随机数整数范围的下限)举例:现要产生166之间的随机整数,试写出表达式。Int(66-1+1)*Rnd+1)或:Int(66*Rnd+1)举例:现要产生1100之间的随机整数,试写出表达式。Int(100*Rnd+1),试在立即窗口中操作验证:Int(X*Rnd+1),现完成模拟摇奖程序。由机器自动随机产生1000个1100间的数据,确定第1000个随机数为中签人的得奖号。,42,Private Sub Command1_Click()Dim x As Integer,i As Integer,j As Integer Dim a As Integer Randomize For i=1 To 1000 x=Int(100*Rnd+1)a=0 For j=1 To 10000视觉暂停 a=a+1 Next j Text1.Text=CStr(x)Text1.Refresh强制全部重绘一个窗体或控件 Next i Text1.Text=CStr(x)End SubPrivate Sub Command2_Click()EndEnd Sub,下转:第 4章VB教材举例 13(4.4.3-2),43,本章结束,

    注意事项

    本文(算法基础与VB基本语句.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开