《VB程序设计第二章》PPT课件.ppt
第二章第二章 程序程序设计流程设计流程顺序结构程序设计选择结构程序设计循环结构程序设计顺序结构顺序结构赋值语句窗体和命令按钮数据输入数据输出注释、暂停、程序结束语句赋值语句赋值语句 形式:变量名表达式 或 对象名.属性名表达式 一般用于给变量赋值或对控件设定属性值.例:sRate!=0.1 Text1.Text”欢迎使用Visual Basic 6.0”说明:1.当表达式的类型与变量的类型不一致时,强制转换成左边的精度。例如:iA%=10/3 其结果为:32.虽然赋值号与关系运算符等于号都用“=”表示,VB系统会根据所处的位置自动判断是何种意义的符号。窗体的属性、事件和方法窗体的属性、事件和方法1.属性 Name、Caption标题、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(设置工具提示,和Picture结合使用)等。2.事件 Click、MouseDown、MouseUp、MouseMove、KeyDown、KeyUp等。3.方法 SetFocus 数据输入数据输入使用输入框输入使用文本框输入InputBox函数函数 调用格式:InputBoxInputBox(提示信息提示信息,对话框标题,对话框标题,缺省值,缺省值)其中:提示信息、对话框标题,缺省值都是字符串表达式。函数返回值为字符类型。例如:要在屏幕上显示图示的对话框。可以用以下语句实现:Dim strName As String*40strName=InputBox(请输入一个整数+vbCrLf+要求在1到100之间,数据输入,1)TextBox控件控件TextBox控件是一个文本编辑区域,可在该区域输入,编辑和显示正文内容。属性:属性:Text:正文内容Maxlength:设置正文的最多字符个数。0表示任意长度值.MultiLine:是否为多行,默认一行(FALSE)ScrollBars:当MultiLine为True时,该属性才有效,表示滚动条的形式:0-None、1-Horizontal、2-Vertical、3-Both。Locked:是否可被编辑属性,False表示为可编辑。PasswordChar:口令字符.Text属性返回输入的数据,屏幕显示该字符,SelStart,SelLength,SelText:选中文本的起始、长度、内容。常用事件常用事件 Change:当改变文本框的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,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 Print方法方法 形式:对象.PrintSpc(n)|Tab(n)表达式列表;|,作用:在对象上输出信息。对象:窗体、图形框或打印机(Printer),省略对象 在窗体上输出。Spc(n)函数:插入n个空格,允许重复使用。Tab(n)函数:左端开始右移动n列,允许重复使用。;(分号):光标定位上一个显示的字符后。,(逗号):光标定位在下一个打印区的开始位置处。注意:1.开始打印的位置是由对象的CurrentX和CurrentY属性决定,缺省为打印对象的左上角(0,0)。2.Print方法要在Form_Load事件过程中起作用,必须先设置窗体的AutoRedraw(控制对象自动重画)属性值为True。MsgBox()是输出函数,执行时产生一个输出消息的对话框,等待用户单击按钮,并返回一个整型值。MsgBox的使用有函数和过程两种形式。MsgBox()函数的一般格式为:变量=MsgBox(提示,按钮,标题)MsgBox过程的一般格式为:MsgBox 提示,按钮,标题MsgBox函数和函数和MsgBox过程过程 参数说明如下:1.“提示”和“标题”:与InputBox函数相同。2.“按钮”:为数值表达式,由3个常数组成,形式为c1+c2+c3,常数既可以用文字常量,也可以用数值常量表示。其中,c1用来指定显示按钮的数目及形式,c2表示使用图标的样式,c3用来确定默认的活动按钮。注意注意:1.在MsgBox中,参数是按一定顺序排列的,如果省略了某些参数,必须加入相应的逗号分隔符。2.MsgBox过程没有返回值,因此常用于简单的信息显示。3.Msgbox()函数的返回值是一个整数,该整数与所选择的按钮有关。每个按钮对应一个返回值,共有7种按钮。用标签控件输出用标签控件输出 标签 Label:用于显示文本(输出)信息,不能作为输入信息的界面。属性:Font,Name,Caption,Alignment属性同文本框。AutoSize:自动缩放,即大小自适应属性。默认为“False“,若为“True“,根据文本大小自动调整标签宽度。方法:Refresh(刷新)和Move(移动)。事件:Click 和 DbClick。注释、暂停、程序结束语句注释、暂停、程序结束语句1.注释语句:或 Rem 2.暂停语句:stop Stop语句用来暂停程序的执行,相当于在事件代码中设置断点。3.程序结束语句:end说明:1.Stop语句的主要作用是把解释程序置为中断(Break)模式,以便对程序进行检查和调试。可以在程序的任何地方放置Stop语句,当执行Stop语句时,系统将自动打开立即窗口。2.与End语句不同。1.IfThen语句(单分支结构)If Then 语句块1 Else 语句块2 选择结构选择结构说明:第一,语句块中有多条语句时,各语句之间用“:”分隔。第二,本结构应该在一行写完,若写不完,可以采用续行符。2.IfThenElse语句(双分支结构)If Then Else End If3.IfThenElseIf语句(多分支结构)形式:If Then ElseIf Then Else 语句块 n+1 End If4.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语句后不能出现多个变量;Case子句后不能出现变量。1.For循环语句(一般用于循环次数已知)形式:For 循环变量初值 to 终值 Step 步长 语句块1 Exit For 语句块2Next 循环变量循环结构循环结构0 初值终值 =1 时,可省略终值=0 死循环 步长循环次数注意:1.循环控制变量的值 例如程序段:For i=2 To 13 Step 3 For i=2 To 13 Step 3 Print i Print i;Next i Next i Print“I=“,I Print“I=“,I循环次数:4输出结果:2 5 8 11退出循环后:I=142.在循环体内对循环控制变量可多次引用;但最好不要对其赋值,否则影响原来的循环控制规律。例4 计算1100的奇数和,程序段如下:Dim i%,s%s=0 For 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 Loop2.DoLoop循环语句(用于控制循环次数未知)形式2:直到循环 Do 语句块1 Exit Do 语句块2Loop While|Until 说明:1.当使用While构成循环时,当条件为“真”时反复执行循环体,当条件为“假”,则退出循环。2.当使用Until 构成循环时,当条件为“假”时反复执行循环体,直到条件成立,即为“真”时,则退出循环。例5:我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。分析:解此问题两种方法。第一,可根据公式,26=13*(1+0.008)n,直接利用 标准对数函数求得;第二,利用循环求得,程序如下:Private Sub Command1_Click()x=13:n=0 Do While x n;(2)m除以n得余数r;(3)若r=0,则n为最大公约数结束;否则执行(4);(4)mn,nr,再重复执行(2)。Dim n%,m%,nm%,r%m=Val(InputBox(m=)n=Val(InputBox(n=)nm=n*mIf mn Then t=m:m=n:n=tr=m mod nDo While(r 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&i&=&i*j Picture1.Print Tab(j-1)*9+1);se;Next j Picture1.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 语句 形式:Go To 标号|行号 作用:无条件地转移到标号或行号指定的那行语句,标号是一个字符序列,行号是一个数字序列.2.Exit语句形式:Exit For、Exit Do、Exit Sub、Exit Function等。作用:退出某种控制结构的执行。Private Sub Form_Click()Private Sub Form_Click()Dim I%,Num%Dim I%,Num%Do Do 建立无穷循环。建立无穷循环。For I=1 To 100 For I=1 To 100 循环循环 100 100 次。次。Num=Num=IntInt(RndRnd*100)*100)生成一个生成一个0 0 99 99的随机数。的随机数。Select Case Num Select Case Num Case 10:Exit For Case 10:Exit For 退出退出 For.Next For.Next 循环。循环。Case 50:Exit Do Case 50:Exit Do 退出退出 Do.Loop Do.Loop 循环。循环。Case 64:Exit Sub Case 64:Exit Sub 退出子过程。退出子过程。End SelectEnd Select Next I Next I Loop LoopEnd SubEnd Sub3.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.累加、连乘时,存放累加、连乘结果的变量赋初值问题:在一重循环中,存放累加、连乘结果的变量初值设置应在循环语句前;在多重循环中要视具体问题分别对待。