vb程序设计教程(潘蕾)vb课件.ppt
《vb程序设计教程(潘蕾)vb课件.ppt》由会员分享,可在线阅读,更多相关《vb程序设计教程(潘蕾)vb课件.ppt(74页珍藏版)》请在三一办公上搜索。
1、第四章 Visual Basic的基本控制结构,授课教师:潘 蕾,2,1、掌握VB 程序设计中的常用语句2、掌握顺序、选择、和循环结构及相应的语句,教学要求,3,教学内容,4.1 顺序结构4.2 选择结构4.3 循环结构4.4 循环嵌套4.5 程序示例,4,4.1 顺序结构,顺序结构是程序设计中最基本、最简单的结构,在此结构中,程序按照语句出现的先后顺序依次执行。顺序结构是任何程序的基本结构,即使在选择结构和循环结构中也包含有顺序结构。,5,4.1 顺序结构,【例4.1】单击窗体,在窗体上输出两行不同格式的文字。新建工程,在窗体的Click事件中添加以下代码:Private Sub Form_
2、Click()Form1.FontSize=12Form1.ForeColor=vbRedForm1.Print 您好Form1.FontSize=16Form1.ForeColor=vbBlueForm1.Print 欢迎学习 Visual BasicEnd Sub,6,4.2 选择结构(分支结构),4.2.1 If-Then-Else-End If语句4.2.2 Select-Case-End Select语句,选择结构是根据某个条件决定执行哪部分程序,可以用If语句或Select Case语句实现。其中If语句根据分支的多少分为单分支、双分支和多分支If语句。Select Case语句使
3、程序只能根据某一个条件的不同取值来决定执行哪部分程序。大部分情况下两种语句间可以相互替换。,7,1、If-Then-Else语句(双分支结构)格式1:If Then Else End If,4.2.1 If-Then-Else-End If语句,逻辑框图:,功能:如果条件成立,则执行A组语句,否则执行B组语句。,说明:(1)判断条件可以是逻辑变量、关系表达式、逻辑表达式(2)If和End If语句成对出现;,条件?,A组语句,B组语句,成立,不成立,8,例:计算分段函数y的值。,Private Sub cmdCalculate_Click()Dim x As Single,y As Singl
4、e x=Val(Text1.Text)If x=0 Then Else End If Text2.Text=Str(y)End Sub,cmdCalculate,缩格输入,Private Sub cmdExit_Click()EndEnd Sub,Private Sub cmdClear_Click()Text1.Text=Text2.Text=Text1.SetFocusEnd Sub,从文本框取数据,向文本框放数据,y=2*Sqr(x+7)-6,y=5*x+Exp(x)-2,9,格式2:单行If-Then-Else语句 If Then Else 说明:(1)在A组语句和B组语句都只有一个语
5、句时,可使用该格式;(2)End If语句省略。例:上例可改写为以下程序段。,Private Sub cmdCalculate_Click()Dim y As Single,x As Single x=Val(Text1.Text)If x=0 Then y=2*Sqr(x+7)-6 Else y=5*x+Exp(x)-2 Text2.Text=Str(y)End Sub,10,格式3:省略 ELSE 的 If 语句(单分支语句)If Then End If格式4:省略 ELSE 的 单行 If 语句 If Then,逻辑框图,11,2.嵌套的If结构:在If语句的“语句块”中包含另一个If语
6、句,叫做嵌套的If结构。,If Then 外层 If Then 内层 Else If then Else 最内层 End IfElse If Then End IfEnd If,用于解决有多种情况的问题,4.2.1 If-Then-Else-End If语句,12,例:输入三角形的三边a、b、c,求三角形的面积,a0 and b0 and c0,a+bc and b+ca and a+cb,13,Private Sub cmdCalculate_Click()Dim a As Single,b As Single,c As Single,p As Single,s As Single a=Va
7、l(Text1.Text)b=Val(Text2.Text)c=Val(Text3.Text)If a0 And b0 And c0 Then If a+bc And b+ca And c+ab Then p=(a+b+c)/2 s=Sqr(p*(p-a)*(p-b)*(p-c)Text4.Text=Str(s)Else Text4.Text=“不能构成三角形”End If Else Text4.Text=“边长不能小于0”End IfEnd Sub,计算公式:,其中:,14,练习:键盘输入三个数,将它们从大到小依次排列输出,Private Sub Form_Click()Dim a As I
8、nteger,b As Integer,c As Integer,temp As Integer a=InputBox(输入a,顺序输出)b=InputBox(输入b,顺序输出)c=InputBox(输入c,顺序输出)If a c Then Print a,b,c Else Print a,c,b End IfEnd Sub,保证a为a,b两数中的大值,15,例:输入分数并判断等级分。计算规则如下:分数 100-90 89-80 79-70 69-60 60等级分 A B C D E,Private Sub Text1_KeyPress(KeyAscii As Integer)Dim Scor
9、e As Integer,Degree As String If KeyAscii=13 Then Score=Val(Text1.Text)If Score=90 And Score=80 Then Degree=B Else If Score=70 Then Degree=C Else If Score=60 Then Degree=D Else Degree=E End If End If End If End If Text2.Text=Degree End IfEnd Sub,缺点:嵌套层次过多,结构不清晰,容易出错。,从文本框取数据,向文本框放数据,16,3、多分支If-Then-
10、ElseIf语句格式:If Then ElseIf Then ElseIf Then Else End If,功能:-对条件自上而下依次判断,若条件i成立,则执行相应的Ai组语句;-若所有条件都不成立,则执行An+1组语句。,4.2.1 If-Then-Else-End If语句,17,(1)该语句结构可以解决多分支问题,只有一个End If语句,避免If语句嵌套层数过多的情况;(2)Else语句可以省略;(3)该结构是一个单出口的结构,即只会执行一组语句。无论执行了哪个语句块,都将执行End If的后继语句。,说 明,18,Private Sub Text1_KeyPress(KeyAsci
11、i As Integer)Dim Score As Integer,Degree As String If KeyAscii=13 Then Score=Val(Text1.Text)If Score=90 And Score=80 Then Degree=B ElseIf Score=70 Then Degree=C ElseIf Score=60 Then Degree=D Else Degree=E End If Text2.Text=Degree End IfEnd Sub,特点:结构清晰。,将上例用If-Then-ElseIf语句改写:,80=Score90?,19,格式:Selec
12、t Case Case Case Case Case Else End Select,功能:计算测试表达式的值,自上而下检查测试条件;若表达式的值符合测试 i,则执行相应的语句块 i;若所有条件都不成立,则执行语句块n+1。,4.2.2 多分支Select-Case-End Select语句,20,例:将上例用Select Case语句改写。,Private Sub Text1_KeyPress(KeyAscii As Integer)Dim Score As Integer,Degree As String If KeyAscii=13 Then Score=Val(Text1.Text)S
13、elect Case Score Case 90 To 100 Degree=A Case 80 To 89 Degree=B Case 70 To 79 Degree=C Case 60 To 69 Degree=D Case Is60 Degree=E End Select Text2.Text=Degree End IfEnd Sub,21,【例4.4】将例4.3用Select Case语句实现。,程序代码如下:Private Sub Command1_Click()Dim st As String*1st=Text1.TextSelect Case st Case a To z Tex
14、t2.Text=是小写字母 Case A To Z Text2.Text=是大写字母 Case 0 To 9 Text2.Text=是数字字符 Case Else Text2.Text=是其他字符End SelectEnd Sub,22,(1)测试表达式可以是算术表达式或字符表达式;(2)测试条件有四种形式:常量,如2、3、“A”等 闭区间,如3 To 78、“B”To“H”等 开区间,如Is20、Is30(3)Case Else语句部分可以省略;(4)以End Select语句结束;(5)该结构是一个单出口的结构,即只会执行一个语句块,若条件中有两个成立,则按语句的顺序执行前面的语句块。无论
15、执行了哪个语句块,都将执行End Select的后继语句。,说 明,23,分支结构的适用情况,验证用户输入数据的合法性分段函数计算用于区分等级其他须根据条件不同执行不同操作的情况,24,例1,例2,25,4.3 循环结构,4.3.1 For-Next 循环结构语句(计数循环)4.3.2 Do-loop循环结构语句(条件循环)4.3.3 GoTo语句*4.3.4 循环嵌套,26,在屏幕上打印5行*号,每行5个:,举例,顺序结构实现:Private Sub Command1_Click()Print*Print*Print*Print*Print*End Sub,循环结构实现:Private Su
16、b Command1_Click()Dim i As Integer Do While i 5 Print*i=i+1 LoopEnd Sub,循环控制条件,循环体,注:循环控制条件 是否已打印了5行 循环体在窗体上打印一行“*”提示:要设立一个变量,用于记录已打印的行数,每打印一行,计数变量要加1,循环控制条件即计数变量小于等于5,27,由一定的条件控制,反复执行某个程序段的程序结构称为循环结构。用于解决一些需要重复进行某些操作的问题。循环要素:循环体 重复执行的语句块 循环控制条件 条件或逻辑表达式 注:为防止死循环,在循环体内必须要有对应语句,使得循环执行条件会不满足,结束循环运行。,基
17、本概念,28,4.3.2 Do-Loop 循环(条件循环),Do-Loop循环的两种类型:“当型”(While)循环“直到型”(Until)循环,29,4.3.2 Do-Loop 循环结构语句一、“当型”循环:当条件成立时,执行循环体,至少执行一次循环体,30,4.3.2 Do-Loop 循环二、“直到型”循环:直到 条件成立时,退出循环体,31,(1)Do和Loop为循环结构关键字,必须成对出现,缺一不可;(2)循环体由可执行语句组成,可以嵌套分支结构和循环结构;(3)While语句和Until语句是可以相互转换的;(4)使用Exit Do语句可无条件退出循环,一般情况下在该语句前加上If条
18、件判断,如:If e Then Exit Do 当在执行循环体时,如果条件e被满足,则执行Exit Do语句直接退出循环。,说 明,32,格式五(特殊形式):Do Loop,执行过程:反复执行循环体。该结构称为“死循环”,在循环体内必须通过 Exit Do 语句强制退出循环体。,Do print“*”i=i+1 If i=5 then Exit Do Loop,注意:如果程序运行时出现死循环,可以使用 Ctrl+Break中止。,33,算法分析:求最大公约数的常用方法是,例1:求两个数的最大公约数,解决这类问题的核心是如下两点:(1)需要重复运行的操作相除取余(2)终止循环的条件除数为0,M
19、N R,8,2,0,Do r=m Mod n m=n n=rLoop Until n=0,最大公约数是()?,m,辗转相除法,0,34,由于输入的数据M和N要求是自然数,在程序中应加入对数据的合法性进行检验的部分;考虑到程序的应用范围,数据类型可选用长整型。,问题分析及界面设计,35,Private Sub Command1_Click()Dim m As Long,n As Long,r As Long m=Val(Text1.Text)取数据M n=Val(Text2.Text)取数据N If m 1 Or n 1 Then Text3.Text=数据错误!Else Do 求最大公约数 r
20、=m Mod n m=n n=r Loop Until n=0 Text3.Text=CStr(m)输出最大公约数 End If End Sub,Private Sub Command2_Click()Text1.Text=Text2.Text=Text3.Text=End Sub,Private Sub Command3_Click()End End Sub,检验数据合法性,Mod 前后加空格,36,例2:将十进制数转换成二进制,算法分析:十进制向二进制转换,采取的是除2取余法。,解决本问题必须考虑的是如下几点:(1)需要重复运行的操作除2取余(2)终止循环的条件商为0(3)二进制字符串的输
21、出由高位到低位,37,注意:在循环控制条件中必须出现变量,且该变量在循环体中一定要改变值,否则会造成“死循环”,即无休止的循环。若在运行程序过程若出现“死循环”,用Ctrl+Break可以强制终止程序的执行。,s=Cstr(r)&s,将余数逆序输出,即将最新获得的余数,连接在已获得的余数串的前面,s=Cstr(r)&s,Eg.a=6,38,Private Sub Form_click()Dim n as Integer,s as Long n=1 s=0 Do While n=100 s=s+n n=n+1 Loop Print“1+2+3+100=”;sEnd Sub,实现累加,练习1:求S
22、=1+2+3+4+100:,100内的奇数/偶数和?,39,练习2:计算圆周率的近似值。计算公式如下:,计算精确到通项的值小于10-7。提示:s=s+可实现累加。,解决求累加和的问题,关键注意两点:(1)通项的表示;(2)循环的结束条件;,40,Private Sub Form_Click()Dim Pi As Single,s As Single,r As Single Dim n As Integer n=1:s=0s为累加器 Do r=1/(2*n-1)2求通项 s=s+r n=n+1 Loop While r 1e-7 Pi=Sqr(8*s)Print PiEnd Sub,41,1)通
23、项为:,2)循环的结束条件为:|r|1e-4,42,Private Sub Form_Click()Dim Pi As Single,s As Single,r As Double Dim n As Integer n=1:s=0 Do r=(-1)(n+1)*1/(2*n-1)求通项 s=s+r n=n+1 Loop While Abs(r)0.0001 Pi=4*s Print PiEnd Sub,43,格式:For=To Step 循环体 Next 功能:由计数变量控制,有限次地执行循环体。,4.3.1 计数循环(For-Next循环),相当于以下语句的实现:i=Do Until i i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 程序设计 教程 潘蕾 课件
链接地址:https://www.31ppt.com/p-5451938.html