《VB程序设计第二章.ppt》由会员分享,可在线阅读,更多相关《VB程序设计第二章.ppt(47页珍藏版)》请在三一办公上搜索。
1、第二章 程序设计流程,顺序结构程序设计选择结构程序设计循环结构程序设计,顺序结构,赋值语句窗体和命令按钮数据输入数据输出注释、暂停、程序结束语句,赋值语句 形式:变量名表达式 或 对象名.属性名表达式 一般用于给变量赋值或对控件设定属性值.例:sRate!=0.1 Text1.Text”欢迎使用Visual Basic 6.0”,说明:1.当表达式的类型与变量的类型不一致时,强制转换成左边的精度。例如:iA%=10/3 其结果为:3,2.虽然赋值号与关系运算符等于号都用“=”表示,VB系统会根据所处的位置自动判断是何种意义的符号。,窗体的属性、事件和方法,1.属性 Name、Caption标题
2、、Backcolor、Forecolor、MaxButton、MinButton、Icon、ControlBox、Picture、BorderStyle(0 1 2 3 4 5)、WindowsState(0-正常、1-最小化、2-最大化)2.事件 Click、DblClick、Load、UnLoad Load:当装入窗体时激发,通常用于对属性和变量初始化。3.方法 Print、Cls和Show、Hide等。,命令按钮的属性、事件和方法,1.属性 Name、Caption、Default、Cancel、Enabled、Visible、Value、ToolTipText(设置工具提示,和Pict
3、ure结合使用)等。2.事件 Click、MouseDown、MouseUp、MouseMove、KeyDown、KeyUp等。3.方法 SetFocus,数据输入,使用输入框输入使用文本框输入,InputBox函数,调用格式:InputBox(提示信息,对话框标题,缺省值)其中:提示信息、对话框标题,缺省值都是字符串表达式。函数返回值为字符类型。,例如:要在屏幕上显示图示的对话框。,可以用以下语句实现:Dim strName As String*40strName=InputBox(请输入一个整数+vbCrLf+要求在1到100之间,数据输入,1),TextBox控件,TextBox控件是一
4、个文本编辑区域,可在该区域输入,编辑和显示正文内容。属性:Text:正文内容Maxlength:设置正文的最多字符个数。0表示任意长度值.MultiLine:是否为多行,默认一行(FALSE),ScrollBars:当MultiLine为True时,该属性才有效,表示滚动条的形式:0-None、1-Horizontal、2-Vertical、3-Both。Locked:是否可被编辑属性,False表示为可编辑。PasswordChar:口令字符.Text属性返回输入的数据,屏幕显示该字符,SelStart,SelLength,SelText:选中文本的起始、长度、内容。,常用事件 Change
5、:当改变文本框的Text属性时会引发该事件。KeyPress(KeyAscii As Integer):同上,并可返回一个KeyAscii参数;当KeyAscii为13时表示按回车键;为0时为去除刚输入的字符。LostFocus:当控件失去焦点时发生。GotFocus:当控件获得焦点时发生。,常用方法 对象.SetFocus:是把光标移到指定的文本框对象中。,例1.简单文本编辑器。,例2.计算圆的面积和周长。,Private Sub Command1_Click()Dim r!,l!,s!r=InputBox(请输入圆的半径:+Chr(13)+Chr(10)+_ 然后单击确定,输入框,1000
6、,1000)l=2*3.14159*r s=3.14159*r*r Text1.Text=r:Text2.Text=l:Text3.Text=sEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Load()Text1=“:Text2=“:Text3=End Sub,数据输出,用Print方法输出用消息框函数输出用文本框控件输出用标签控件输出,Print方法 形式:对象.PrintSpc(n)|Tab(n)表达式列表;|,作用:在对象上输出信息。对象:窗体、图形框或打印机(Printer),省略对象 在窗体上输出。Spc(
7、n)函数:插入n个空格,允许重复使用。Tab(n)函数:左端开始右移动n列,允许重复使用。;(分号):光标定位上一个显示的字符后。,(逗号):光标定位在下一个打印区的开始位置处。,注意:1.开始打印的位置是由对象的CurrentX和CurrentY属性决定,缺省为打印对象的左上角(0,0)。2.Print方法要在Form_Load事件过程中起作用,必须先设置窗体的AutoRedraw(控制对象自动重画)属性值为True。,MsgBox()是输出函数,执行时产生一个输出消息的对话框,等待用户单击按钮,并返回一个整型值。MsgBox的使用有函数和过程两种形式。MsgBox()函数的一般格式为:变量
8、=MsgBox(提示,按钮,标题)MsgBox过程的一般格式为:MsgBox 提示,按钮,标题,MsgBox函数和MsgBox过程,参数说明如下:1.“提示”和“标题”:与InputBox函数相同。2.“按钮”:为数值表达式,由3个常数组成,形式为c1+c2+c3,常数既可以用文字常量,也可以用数值常量表示。其中,c1用来指定显示按钮的数目及形式,c2表示使用图标的样式,c3用来确定默认的活动按钮。,注意:,1.在MsgBox中,参数是按一定顺序排列的,如果省略了某些参数,必须加入相应的逗号分隔符。2.MsgBox过程没有返回值,因此常用于简单的信息显示。3.Msgbox()函数的返回值是一个
9、整数,该整数与所选择的按钮有关。每个按钮对应一个返回值,共有7种按钮。,用标签控件输出,标签 Label:用于显示文本(输出)信息,不能作为输入信息的界面。,属性:Font,Name,Caption,Alignment属性同文本框。AutoSize:自动缩放,即大小自适应属性。默认为“False“,若为“True“,根据文本大小自动调整标签宽度。方法:Refresh(刷新)和Move(移动)。事件:Click 和 DbClick。,注释、暂停、程序结束语句,1.注释语句:或 Rem 2.暂停语句:stop Stop语句用来暂停程序的执行,相当于在事件代码中设置断点。3.程序结束语句:end,说
10、明:1.Stop语句的主要作用是把解释程序置为中断(Break)模式,以便对程序进行检查和调试。可以在程序的任何地方放置Stop语句,当执行Stop语句时,系统将自动打开立即窗口。2.与End语句不同。,1.IfThen语句(单分支结构)If Then 语句块1 Else 语句块2,选择结构,说明:第一,语句块中有多条语句时,各语句之间用“:”分隔。第二,本结构应该在一行写完,若写不完,可以采用续行符。,2.IfThenElse语句(双分支结构)If Then Else End If,3.IfThenElseIf语句(多分支结构)形式:If Then ElseIf Then Else 语句块
11、n+1 End If,4.Select Case语句(情况语句)形式:Select Case 变量或表达式Case 表达式列表1 语句块1Case 表达式列表2 语句块2 Case Else 语句块n+1End Select,例3:由计算机来当一年级的算术老师,要求给出一系列的09之间的操作数,进行四则运算,学生输入该题的答案,计算机根据学生的答案判断正确与否,当结束时给出成绩。,常见错误1在选择结构中缺少配对的结束语句。对多行式的If块语句中,应有配对的 End If语句结束。2.多行选择ElseIf关键字的书写,ElseIf 不要写成Else If。3.Select Case语句后不能出现
12、多个变量;Case子句后不能出现变量。,1.For循环语句(一般用于循环次数已知)形式:For 循环变量初值 to 终值 Step 步长 语句块1 Exit For 语句块2Next 循环变量,循环结构,0 初值终值=0 死循环,步长,循环次数,注意:1.循环控制变量的值 例如程序段:For i=2 To 13 Step 3 Print i;Next i Print“I=“,I循环次数:4输出结果:2 5 8 11退出循环后:I=142.在循环体内对循环控制变量可多次引用;但最好不要对其赋值,否则影响原来的循环控制规律。,例4 计算1100的奇数和,程序段如下:,Dim i%,s%s=0 Fo
13、r i=1 To 100 Step 2 s=s+i Next i,Dim i%,s%s=0:i=1re:If i=100 Then s=s+i i=i+2 GoTo re End If,形式1:当型循环 Do While|Until 语句块1 Exit Do 语句块2 Loop,2.DoLoop循环语句(用于控制循环次数未知),形式2:直到循环 Do 语句块1 Exit Do 语句块2Loop While|Until,说明:1.当使用While构成循环时,当条件为“真”时反复执行循环体,当条件为“假”,则退出循环。2.当使用Until 构成循环时,当条件为“假”时反复执行循环体,直到条件成立,
14、即为“真”时,则退出循环。,例5:我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。分析:解此问题两种方法。第一,可根据公式,26=13*(1+0.008)n,直接利用 标准对数函数求得;第二,利用循环求得,程序如下:Private Sub Command1_Click()x=13:n=0 Do While x 26 x=x*1.008:n=n+1 Loop Print n,x End Sub,例6:用辗转相除法求两自然数m,n的最大公约数和最小公倍数。分析:求最大公约数的算法思想:(1)对于已知两数m,n,使得mn;(2)m除以n得余数r;(3)若r=0,则n为最大公约
15、数结束;否则执行(4);(4)mn,nr,再重复执行(2)。,Dim n%,m%,nm%,r%m=Val(InputBox(m=)n=Val(InputBox(n=)nm=n*mIf m 0)m=n n=r r=m mod nLoopPrint 最大公约数=,n Print 最小公倍数=,nm/n,3.循环的嵌套:一个循环体内又包含了一个完整的循环结构。要注意以下事项:1.内循环变量与外循环变量不能同名;2.外循环必须完全包含内循环,不能交叉;3.不能从循环体外转向循环体内,反之则可以。,例7:打印九九乘法表.For i=1 To 9 For j=1 To 9 se=j Next j Pict
16、ure1.Print Next i,思考:打印上三角或下三角程序如何改动?要打印下三角?,例8:求100以内素数。素数是一个大于2,且不能被1和本身以外的整数整除的整数。判别某数m是否为素数最简单的方法是:对于m 从 i=2,3,m-1判别m能否被i整除,只要有一个能整除,m不是素数,否则m是素数。For m=2 To 100 For i=2 To m-1 If(m Mod i)=0 Then GoTo N1 Next i Print mN1:Next m,思考:此例用Go To语句对非素数不作判断,若不用GoTo语句,如何修改程序?,几种循环语句比较:,其他辅助控制语句:,1.Go To 语
17、句 形式:Go To 标号|行号 作用:无条件地转移到标号或行号指定的那行语句,标号是一个字符序列,行号是一个数字序列.2.Exit语句形式:Exit For、Exit Do、Exit Sub、Exit Function等。作用:退出某种控制结构的执行。,Private Sub Form_Click()Dim I%,Num%Do 建立无穷循环。For I=1 To 100 循环 100 次。Num=Int(Rnd*100)生成一个0 99的随机数。Select Case Num Case 10:Exit For 退出 For.Next 循环。Case 50:Exit Do 退出 Do.Loop
18、 循环。Case 64:Exit Sub 退出子过程。End Select Next I LoopEnd Sub,3.End语句形式:End功能:结束一个程序的运行。在Visual Basic中还有多种形式的End语句,用于结束一个程序块或过程。其形式有:End If End Select End Type End With End Sub End Function等它们与对应的语句配对使用。,4.With 语句形式:With 对象 语句块 End With作用:对某个对象执行一系列的操作,而不用重复指出对象的名称。With Label1.Height=2000.Width=2000.FontSize=22.Caption=MyLabelEnd With,Label1.Height=2000 Label1.Width=2000 Label1.FontSize=22 Label1.Caption=MyLabel,常见错误1.不循环或死循环的问题:主要是循环条件、循环初值、循环终值、循环步长的设置有问题。2.循环结构中缺少配对的结束语句:For缺少配对的Next。3.循环嵌套时,内外循环交叉。4.累加、连乘时,存放累加、连乘结果的变量赋初值问题:在一重循环中,存放累加、连乘结果的变量初值设置应在循环语句前;在多重循环中要视具体问题分别对待。,