《最新大学vb课件自学VisualBasic非计算机专业34ppt课件》由会员分享,可在线阅读,更多相关《最新大学vb课件自学VisualBasic非计算机专业34ppt课件(44页珍藏版)》请在金锄头文库上搜索。
1、大学大学vb课件自学课件自学VisualBasic非计算机专业非计算机专业3、44.1.1 过程过程 为简化程序设计,将程序分割成较小的为简化程序设计,将程序分割成较小的逻辑部件逻辑部件,称,称这些部件为过程。根据执行的方式,可把这些部件为过程。根据执行的方式,可把“过程过程”分为分为“事事件过程件过程”和和“通用过程通用过程”。1.事件过程事件过程2.通用过程通用过程 一个应用程序中多个窗体可以共享的或一个窗体内不同一个应用程序中多个窗体可以共享的或一个窗体内不同的事件过程可共享的程序代码,称为的事件过程可共享的程序代码,称为“通用过程通用过程”。 为窗体及窗体上的各种对象编写的,用来响应由
2、用户为窗体及窗体上的各种对象编写的,用来响应由用户或系统引发的各种事件的程序代码,称为或系统引发的各种事件的程序代码,称为“事件过程事件过程”。事件过程由事件过程由VB中中的事件调用。的事件调用。如如: : 如果希望在单击一个名为如果希望在单击一个名为CmdStartCmdStart的命令按钮后,的命令按钮后,会调用事件过程,则要使用会调用事件过程,则要使用CmdStart_ClickCmdStart_Click过程。过程。通用过程是由事件通用过程是由事件过程或其它通用过程过程或其它通用过程调用而执行的。调用而执行的。(2).在变量名后面加上类型说明的后缀在变量名后面加上类型说明的后缀(隐式说
3、明隐式说明).符号符号数据类型数据类型举例举例$StringstrName$%IntegerITerm%,var%&LongcolorValue&!Singledistance!#DoubleExactDistance#,CurrencycSalariesOption Explicit语句语句在在模模块块中中使使用用Option Explicit语语句句,系系统统将将检检查查模模块块中中所所有未加显式说明的变量。有未加显式说明的变量。4.4运算符和表达式运算符和表达式VB中的运算符和表达式可分为中的运算符和表达式可分为算术运算符算术运算符与与算术表达式算术表达式、关系运算符关系运算符和和关系表
4、达式关系表达式、逻辑运算符逻辑运算符和和逻辑表达式逻辑表达式。4.4.1算术运算符与算术表达式算术运算符与算术表达式1.算术运算符算术运算符+、-、*、/、mod、&103=10/4=114=(-5)3=10mod3=10mod5=Hello&”World”=31022.5-125Hello World2.算术表达式算术表达式把常量、变量等运算元素用算术运算符连接起来的式子把常量、变量等运算元素用算术运算符连接起来的式子称为称为“算术表达式算术表达式”。可以使用圆括号来改变运算次序。可以使用圆括号来改变运算次序。算术运算符的运算次序为:算术运算符的运算次序为:、-(负号)(负号)、*、/、mo
5、d、+、-、&4.4.2关系运算符与关系表达式关系运算符与关系表达式关系运算用于对两个数据进行比较,比较结果为逻辑关系运算用于对两个数据进行比较,比较结果为逻辑值值“True”或或“False”。1.关系运算符关系运算符、 、=、=、Is2.关系表达式关系表达式用关系运算符把两个比较对象连接起来的式子。用关系运算符把两个比较对象连接起来的式子。3.关系表达式的运算关系表达式的运算求下列表达式的值:求下列表达式的值:14/2310mod4sqr(4)-13FalseTrue4.4.3逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式逻辑运算是对逻辑值进行的运算。逻辑运算是对逻辑值进行的运算。1.逻辑运
6、算符逻辑运算符Not、And、Or、XorNot运算运算FalseaNotaTrueFalseTrueAnd运算运算aaAndbTrueFalseFalseTruebTrueFalseFalseTrueTrueFalseFalseFalseOr运算运算TrueTrueTrueFalseaaOrbTrueFalseFalseTruebTrueFalseFalseTrueXor运算运算FalseTrueTrueFalseaaXorbTrueFalseFalseTruebTrueFalseFalseTrue逻辑运算符的优先次序为:逻辑运算符的优先次序为:NotAndOrXor2.逻辑表达式逻辑表达式
7、用逻辑运算符把逻辑变量连接起来的句子。用逻辑运算符把逻辑变量连接起来的句子。4.4.4各种运算符间的优先顺序各种运算符间的优先顺序算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符dima,b,ca=8:b=10:c=6Not(a-1b)ab+3AndbcabOrbcFalseTrueTrue4.6 VB 公共函数公共函数公共函数(内部函数)公共函数(内部函数) 是由系统提供的,可在任何一个是由系统提供的,可在任何一个VB程序中随时使用的程序中随时使用的程序段程序段。每个程序段用于进行某个特定的运算或处理。每。每个程序段用于进行某个特定的运算或处理。每个函数都有系统规定的函数名。个函
8、数都有系统规定的函数名。使用使用函数称为函数调用。函数调用形式如下:函数称为函数调用。函数调用形式如下:(p1,p2,)P1,p2是调用函数时的自变是调用函数时的自变量序列量序列,自变量个数、排列次自变量个数、排列次序和数据类型,应和函数规定序和数据类型,应和函数规定的参数相同。的参数相同。P52. 表表4-6、表、表4-7、表表4-8、表、表4-9 4.6.1算术算术函数函数4.6.2字符字符函数函数4.6.3转换转换函数函数4.6.4日期与时间日期与时间函数函数Left(x,n) 从从x字符串左边起取字符串左边起取n个字符。个字符。Dim AnyString, MyStrAnyString
9、 = Hello World 定义字符串。定义字符串。MyStr = Left(AnyString, 1) 返回返回 H。MyStr = Left(AnyString, 7) 返回返回 Hello W。MyStr = Left(AnyString, 20) 返回返回 Hello World。Mid(x,n1,n2) 从从x字符串左边第字符串左边第n1个位置起向右取个位置起向右取n2个字符。个字符。Dim y, y1, y2, y3y = Mid Function Demo 建立一个字符串。建立一个字符串。y1 = Mid(y, 1, 3) 返回返回 Mid。y2 = Mid(y, 14, 4)
10、 返回返回 Demo。y3 = Mid(y, 5) 返回返回 Funcion Demo。Ltrim(x) 去掉去掉x左边的空格。左边的空格。Rtrim(x) 去掉去掉x右边的空格。右边的空格。Trim(x) 去掉去掉x两边的空格。两边的空格。Dim y, TrimStringy= Test Demo 设置字符串初值。设置字符串初值。TrimString = LTrim(y) TrimString = Test Demo 。TrimString = RTrim(y) TrimString = Test Demo。TrimString = LTrim(RTrim(y) TrimString = T
11、est Demo。 只使用只使用 Trim 函数也同样将两头空格去除。函数也同样将两头空格去除。TrimString = Trim(y) TrimString = ”Test Demo。Chr(x) 返回以返回以x为为ASCII代码值的字符。代码值的字符。ASC(x) 给出字符给出字符x的的ASCII代码值代码值(十进制数十进制数)。 Dim MyChar MyChar = Chr(65) 返回返回 A。 MyChar = Chr(97) 返回返回 a。 MyChar = Chr(62) 返回返回 。 MyNumber = Asc(A) 返回返回 65。 MyNumber = Asc(a) 返
12、回返回 97。CInt(x):将数值型数据将数值型数据X的小数部分四舍五入取整。的小数部分四舍五入取整。Int(x) :取小于等于取小于等于X的最大整数。的最大整数。 Fix(x):将数值型数据将数值型数据X的小数部分舍去。的小数部分舍去。 Dim yy = CInt(4.5)y = CInt(4.6)y = Int(4.5)y = Fix(4.5)y = CInt(-4.5)y = Int(-4.5)y = Fix(-4.5)4544-4-5-4计算下列代数式所对应的计算下列代数式所对应的VB表达式:表达式:(1)(2)(3)(12*X+5*Y-Sqr(Abs(d3-m3)/(Exp(-X)
13、*Sin(X)X2*EXP(X)/COS(ABS(X+Y)Sqr(X+Y)/Log(X)-ABS(X)+EXP(X+Y)Date: 返回系统日期。返回系统日期。4.6.5格式化格式化函数函数Format$(0) 数字占位符。显示一位数字或是零。如果表达式在格式字符串中数字占位符。显示一位数字或是零。如果表达式在格式字符串中 0 的位置的位置上有一位数字存在,那么就显示出来;否则,就以零显示。上有一位数字存在,那么就显示出来;否则,就以零显示。 Format 函数函数 设置文本的输出格式。设置文本的输出格式。语法语法Format(expression, format)MyStr = Format
14、(5459.4, ”00000.00“) 返回返回 ”05459.40。MyStr = Format(5459.4, “#.#”) 返回返回 “5459.4”。MyStr = Format(5459.56, “#.#”) 返回返回 “5459.6”。MyStr = Format(5459.4, #,#0.00) 返回返回 5,459.40。MyStr = Format(334.9, #0.00) 返回返回 334.90。MyStr = Format(5, 0.00%) 返回返回 500.00%。(#) 数字占位符。显示一位数字或什么都不显示。如果表达式在格式字符串中数字占位符。显示一位数字或什
15、么都不显示。如果表达式在格式字符串中“#”的位置上有数字存在,那么就显示出来;否则,该位置就什么都不显示。的位置上有数字存在,那么就显示出来;否则,该位置就什么都不显示。 (.) 小数点占位符。用来决定在小数点左右可显示多少位数。小数点占位符。用来决定在小数点左右可显示多少位数。 (%) 百分比符号占位符。表达式乘以百分比符号占位符。表达式乘以 100。而百分比字符。而百分比字符 (%) 会插入到格式字会插入到格式字符串中出现的位置上。符串中出现的位置上。 (,) 千分位符号占位符。千位符号主要是把数值小数点左边超过四位数以上分千分位符号占位符。千位符号主要是把数值小数点左边超过四位数以上分出
16、千位出千位。赋值语句赋值语句赋值语句的一般形式是:赋值语句的一般形式是:Var=Var可以是变量名或可以是变量名或属性名。属性名。如:如: x=“NanJing” Label1.caption=“工作单位工作单位:”使用赋值语句还可获取对象返回的当前属性值:使用赋值语句还可获取对象返回的当前属性值:Var=Object.Property如:如: x=text1.text4.7赋值语句及赋值语句及InputBox、MsgBox函数函数不同数据类型数据的赋值:不同数据类型数据的赋值:P514.7.1InputBox函数函数InputBox函数用来接受用户通过键盘输入的数据。它的使用形式是:函数用来
17、接受用户通过键盘输入的数据。它的使用形式是:V=InputBox(prompt, title , default , xpos , ypos , helpfile, context)Prompt 必需的。必需的。作为对话框消息出现的字符串表达式作为对话框消息出现的字符串表达式。 Title 可选的。显示对话框标题栏中的字符串表达式可选的。显示对话框标题栏中的字符串表达式。 Default 可选的。显示文本框中的字符串表达式,在没有其它输入时作可选的。显示文本框中的字符串表达式,在没有其它输入时作为缺省值。如果省略为缺省值。如果省略 default,则文本框为空。,则文本框为空。 X、y 可选的
18、。成对出现,指定对话框在屏幕上显示时的位置可选的。成对出现,指定对话框在屏幕上显示时的位置。 V 可以是变体变量或字符串型变量、数值型变量。可以是变体变量或字符串型变量、数值型变量。 Helpfiel、Context 帮助文件名及帮助主题号。帮助文件名及帮助主题号。InputBox 函数示例函数示例InputBox 例例 4.7.2MsgBox函数函数MsgBox函数用来向用户发布提示消息,并要求用户作出必要的响应。函数用来向用户发布提示消息,并要求用户作出必要的响应。它的使用形式是:它的使用形式是:MsgBox(prompt, buttons , title , helpfile, cont
19、ext)Prompt 必需的。字符串表达式,作为显示在对话框中的消息。必需的。字符串表达式,作为显示在对话框中的消息。 Buttons 可选的。由可选的。由4个数值常量组成的式子,指定显示按钮的数目及形式,个数值常量组成的式子,指定显示按钮的数目及形式, 使用的图标样式,缺省按钮是什么以及消息框的强制回应等。如果使用的图标样式,缺省按钮是什么以及消息框的强制回应等。如果 省略,则省略,则 buttons 的缺省值为的缺省值为 0。 Title 可选的。在对话框标题栏中可选的。在对话框标题栏中显示显示的字符串表达式。的字符串表达式。 MsgBox 例例 5.1分支结构与分支结构语句分支结构与分支
20、结构语句1.If-Then-Else-EndIf结构语句结构语句此此结构语句的一般形式是:结构语句的一般形式是:IfeThenA组语句组语句ElseB组语句组语句EndIfABeTrueFalse此此种算法结构,还有多种变形:种算法结构,还有多种变形:P63. 例例5-1第五章第五章 选择分支与循环选择分支与循环IfeThenA组语句组语句EndIfAeTrueFalse当当A组语句仅有一个时,上图结构还可简化为组语句仅有一个时,上图结构还可简化为:IfeThenA语句语句A1e1TrueFalseIfe1ThenA1组语句组语句ElseIfe2ThenA2组语句组语句.EndIfA2A3.e
21、2e3TrueTrueFalseFalse例例.5-2SelectCaseeCasec1A组语句组语句Casec2B组语句组语句.CaseElsen组语句组语句EndSelect5.1.2Select-Case-EndSelect结构语句结构语句此此结构语句提供了实现多分支结构的另一种方结构语句提供了实现多分支结构的另一种方法,它的一般形式是:法,它的一般形式是:e为测试表达式,为测试表达式,可以是算术表达可以是算术表达式或字符表达式。式或字符表达式。c1、c2是测试项:可取:是测试项:可取:1、具体数值。、具体数值。2、连续的数据范围、连续的数据范围3、满足某个判决条件、满足某个判决条件执行
22、方式:执行方式: 先求先求测试表达式测试表达式e的值,接着逐个检查每个的值,接着逐个检查每个Case语句的测试项,如果测试表达式语句的测试项,如果测试表达式e的值满的值满足某个测试项,系统就执行该足某个测试项,系统就执行该Case语句下的那语句下的那组语句;如果没有一个测试项满足要求,就执组语句;如果没有一个测试项满足要求,就执行行CaseElse 下的语句。如果有一个以上的下的语句。如果有一个以上的测试项满足要求,则只有第一个匹配后面的测试项满足要求,则只有第一个匹配后面的语句会被执行。语句会被执行。Select Case 例例 5.2循环结构与循环结构语句循环结构与循环结构语句1.Do-L
23、oop循环循环结构语句结构语句Do-Loop循环循环结构语句有四种形式:结构语句有四种形式:DoWhilee.ExitDo.LoopDo.ExitDo.LoopWhileeDoUntile.ExitDo.LoopDo.ExitDo.LoopUntile在在Do语句和语句和Loop语句之间的语句即为循环体语句。在循环体语句之间的语句即为循环体语句。在循环体中,可以包括一条或多条中,可以包括一条或多条ExitDo语句,如果程序执行到语句,如果程序执行到ExitDo语句时,就会直接退出循环,执行语句时,就会直接退出循环,执行Loop语句的下一条语句。语句的下一条语句。 Sum=0 I=1 Do Wh
24、ile I=100 Sum=Sum+I I=I+1 LoopDoWhilee.ExitDo.LoopAeTrueFalse如:求如:求sum=1+2+100A.当型循环当型循环:AeFalseTrueDo.ExitDo.LoopWhilee Sum=0 I=1 Do Sum=Sum+I I=I+1 Loop While I100 Sum=Sum+I I=I+1 Loop AeFalseTrueDo.ExitDo.LoopUntile Sum=0 I=1 Do Sum=Sum+I I=I+1 Loop Until I100上述两直到型循环结构的区别上述两直到型循环结构的区别:当第一次执行循环语句
25、条件成立时,:当第一次执行循环语句条件成立时,第一种不执行循环体,而第二种要执行一次。第一种不执行循环体,而第二种要执行一次。AeTrueFalse P.67 例例5-3 5.2.2.For-Next循环循环结构语句结构语句如果事先已知循环次数,则可使用如果事先已知循环次数,则可使用For-Next循环循环结构语结构语句,它的一般形式是:句,它的一般形式是:Forv=e1Toe2Stepe3.ExitDo.NextvV=v+e3V超过超过e2?TrueFalse计算计算e1,e2,e3V=e1循环体循环体V为循环控制变量为循环控制变量,e1、e2、e3是控是控制循环的参数制循环的参数e1为初值
26、为初值e2为终值为终值e3为步长为步长 for next 例例1 例例5-4 例例5-5 5.2.3.循环循环嵌套嵌套Do-Loop循环和循环和For-Next循环都可以在大循环中套小循环都可以在大循环中套小循环循环. .72 九九乘法表九九乘法表 (1)外循环必须完全包含内循环,不能交叉内;)外循环必须完全包含内循环,不能交叉内;(2)循环变量与外循环变量不能同名。)循环变量与外循环变量不能同名。For i=1 To 10 For i=1 To 20 Next iNext iFor i=1 To 10 For j=1 To 20 Next iNext jRnd(x) 产生一个在产生一个在(0
27、,1)区间均匀分布的随机数。区间均匀分布的随机数。为了生成某个范围内的随机整数,可使用以下公式:为了生成某个范围内的随机整数,可使用以下公式:Int(upperbound - lowerbound + 1) * Rnd + lowerbound)这里,这里,upperbound 是随机数范围的上限,而是随机数范围的上限,而 lowerbound 则是则是随机数范围的下限。随机数范围的下限。如:随机生成一个两位的整数,可用下式:如:随机生成一个两位的整数,可用下式:Int(99-10+1)*Rnd+10)即即Int(90*Rnd+10) .72 例例5-6 .77 例例5-9 .78 例例5-1
28、0 .80 例例5-11 例:已知例:已知x,y,z三个数,比较它们三个数,比较它们的大小并排列,使得的大小并排列,使得xyz。xyT交换交换x,yFyz交换交换y,zxy交换交换x,yTTFFIf xy Then t=x:x=y:y=tIf yz Then t=y:y=z:z=t If xy Then t=x:x=y:y=t End IfEnd If1.语语法法错错误误(Syntax Error):由由于于违违反反了了语语言言有有关关语语句句形形式式或或使使用用规规则则而而产产生生的的错错误误。如如拼拼写写错错误误,关关键键字字遗遗漏漏,标标点点不不符符等错误。等错误。VB5.0能自动发现,
29、并以高亮度红色出现。能自动发现,并以高亮度红色出现。第五章第五章 程序调试程序调试5.1 Visual Basic 5.1 Visual Basic 的错误类型的错误类型2.运运行行错错误误(Run Time Error):由由于于试试图图执执行行一一个个不不可可进进行行的的操操作作而而引引起起的的。如如除除0、文文件件不不存存在在、磁磁盘盘未未插插入入软软驱驱等等。VB将将弹出一个子窗口,提示出错信息。弹出一个子窗口,提示出错信息。3.逻逻辑辑错错误误(Logic Error):程程序序的的运运行行结结果果与与预预期期不不一一致致。由由于于算算法法不不正正确确,变变量量使使用用错错误误或或程
30、程序序控控制制结结构构不不当当都都会会产产生生逻逻辑辑错错误误。这这种种错错误误是是致致命命的的,不不容容易易发发现现,也也难难以以排排除除。 VB的的调试工具正是用来帮助程序员发现程序中的逻辑错误。调试工具正是用来帮助程序员发现程序中的逻辑错误。 (运行错误运行错误)例例 VB提供了三种调试窗口用于了解程序运行时变量和提供了三种调试窗口用于了解程序运行时变量和界面的变化界面的变化。 5.2调试工具及其功能调试工具及其功能 使用使用VB的调试工具,可便捷有效地检查逻辑错误产生的调试工具,可便捷有效地检查逻辑错误产生的地点和原因。的地点和原因。P.84 表表5-1 调试工具栏中的各个按钮的功能。
31、调试工具栏中的各个按钮的功能。 “本地本地”窗口窗口,显示当前过程中所有局部变量的值,以及,显示当前过程中所有局部变量的值,以及窗体的属性值。使用时代码中必须有断点,或在中断模式运窗体的属性值。使用时代码中必须有断点,或在中断模式运行行。 “监监视视”窗窗口口,显显示示指指定定的的监监视视表表达达式式的的值值,这这些些表表达达式式是是在在“添添加加监监视视”窗窗口口中中加加入入的的。该该窗窗口口可可在在“调调试试”菜菜单单中打开。中打开。 “立立即即”窗窗口口,显显示示代代码码中中正正在在调调试试的的语语句句所所产产生生的的信信息息,如如Debug.Print的的结结果果。也也可可以以得得到到
32、直直接接键键入入命命令令所所产产生生的的结结果。果。5.3 程序调试的基本方法程序调试的基本方法 1. 设设置置断断点点:在在设设计计模模式式时时的的“代代码码”窗窗口口中中,在在需需要要设设置置或或取取消消断断点点的的那那一一行行鼠鼠标标左左键键即即可可。当当程程序序运运行行到到句句,就暂停执行,自动进入中断模式。就暂停执行,自动进入中断模式。2. 在三种调试窗口在三种调试窗口:()直接观察表达式的值()直接观察表达式的值 ()用用DebugPrint语语句句把把调调试试信信息息直直接接输输出出到到立立即即窗窗口口()在在立立即即窗窗口口中中输输入入指指令令(每每次次一一行行),用用Print显显示示表表达式的值达式的值3. 单单步步调调试试:采采用用F8键键逐逐条条语语句句跟跟踪踪,或或Shift+F8逐逐过过程程跟踪,查看代码的具体执行情况。跟踪,查看代码的具体执行情况。结束语结束语谢谢大家聆听!谢谢大家聆听!44