VisualBasic6.0语言基础课件

上传人:m**** 文档编号:586636293 上传时间:2024-09-05 格式:PPT 页数:65 大小:190KB
返回 下载 相关 举报
VisualBasic6.0语言基础课件_第1页
第1页 / 共65页
VisualBasic6.0语言基础课件_第2页
第2页 / 共65页
VisualBasic6.0语言基础课件_第3页
第3页 / 共65页
VisualBasic6.0语言基础课件_第4页
第4页 / 共65页
VisualBasic6.0语言基础课件_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《VisualBasic6.0语言基础课件》由会员分享,可在线阅读,更多相关《VisualBasic6.0语言基础课件(65页珍藏版)》请在金锄头文库上搜索。

1、Visual Basic 6.0 Visual Basic 6.0 语言基础语言基础计算机学院计算机学院 何智涛何智涛VB 第第2-3讲讲VisualBasic6.0语言基础基本主题基本主题编码基础编码基础数据类型数据类型变量与声明变量与声明分支、循环和控制分支、循环和控制数组数组过程,函数和调用方式过程,函数和调用方式VisualBasic6.0语言基础编码基础编码基础VisualBasic6.0语言基础编码基础编码基础单行语句分成多行,使用续行符单行语句分成多行,使用续行符“ _” “ _” 。将多个语句合并到同一行上将多个语句合并到同一行上 ,使用,使用“:”“:”来分隔。来分隔。一行允

2、许有一行允许有255255个字符个字符在代码中添加注释在代码中添加注释 使用西文单引号使用西文单引号 “ ”“ ”来标注一行;来标注一行; 使用使用“视图视图 工具栏工具栏 编辑编辑”中的中的“设置设置/ /解除注释块解除注释块”功能来标注一块注释或取消。功能来标注一块注释或取消。VisualBasic6.0语言基础编码基础编码基础Visual Basic Visual Basic 的命名约定的命名约定它们必须以字母开头。它们必须以字母开头。( (也可以用中文也可以用中文) )它们不可以包含嵌入的句号或者类型声明字符(规定它们不可以包含嵌入的句号或者类型声明字符(规定数据类型的特殊字符数据类型

3、的特殊字符 “ “”, “$”, “$”)。)。它们不能超过它们不能超过 255 255 个字符。控件、窗体、类和模块的个字符。控件、窗体、类和模块的名字不能超过名字不能超过 40 40 个字符。个字符。*VBVB中汉字和西文字符都中汉字和西文字符都算作一个字,占两个字节。算作一个字,占两个字节。它们不能和受到限制的关键字同名。包括预定义语句它们不能和受到限制的关键字同名。包括预定义语句(比如(比如 If If 和和 LoopLoop)、)、函数(比如函数(比如 Len Len 和和 AbsAbs)和和操作符(比如操作符(比如 Or Or 和和 ModMod)。)。 VisualBasic6.

4、0语言基础可用关键字命名的特例可用关键字命名的特例窗体和控件可以和受到限制的关键字同名。窗体和控件可以和受到限制的关键字同名。例如,可以将某个控件命名为例如,可以将某个控件命名为 LoopLoop。但引用方法但引用方法是特殊的。是特殊的。Loop.Visible = True Loop.Visible = True 出错出错 使用限定方法或加方括号使用限定方法或加方括号MyForm.Loop.Visible = True MyForm.Loop.Visible = True 用窗体名将其限定用窗体名将其限定 Loop.Visible = True Loop.Visible = True 方括号

5、起了作用方括号起了作用 VisualBasic6.0语言基础数据类型数据类型VisualBasic6.0语言基础数据类型数据类型NumericNumeric类型:类型:IntegerInteger,LongLong,SingleSingle,DoubleDouble,CurrencyCurrency。DateDate类型:类型:公元公元100/1/1 9999/12/31100/1/1 9999/12/31,0:00:00-23:59:590:00:00-23:59:59。BooleanBoolean类型:类型:True/False, -1/0,True/False, -1/0, 非非0 0和

6、和0 0StringString类型类型: : 0-655350-65535个字符,个字符,“”“”, “ ” “ ”ObjectObject类型类型: : 用于引用程序中的对象用于引用程序中的对象VariantVariant类型:类型:VisualBasic6.0语言基础Date Date 数据类型数据类型DateDate类型表示方法类型表示方法表示法:用括起来的、字面上可被看作时间和表示法:用括起来的、字面上可被看作时间和日期的字符日期的字符1 Jan1 Jan,97971998-5-12 12:30:00 PM#1998-5-12 12:30:00 PM#数字表示法:整数代表日期,小数代

7、表时间数字表示法:整数代表日期,小数代表时间范围从公元范围从公元100100年年1 1月月1 1日到日到99999999年年1212月月3131日日0 0代表代表19001900年年1 1月月1 1日日 0:00 AM0:00 AM-2.5-2.5代表了代表了18991899年年1212月月2828日日 12:00:0012:00:00VisualBasic6.0语言基础VariantVariant类型类型变体类型:智能类型,可指代任何未定义的变量。变体类型:智能类型,可指代任何未定义的变量。特殊值:特殊值:EmptyEmpty(空):未赋值。空):未赋值。NullNull(无效):数据不合法

8、。无效):数据不合法。ErrorError(出错):过程中出现一个错误条件。出错):过程中出现一个错误条件。NothingNothing(无指向):没有指向任何确定的对象。无指向):没有指向任何确定的对象。VarType() VarType() 用来检测当前的变体变量中的数据类用来检测当前的变体变量中的数据类型。型。VisualBasic6.0语言基础自定义类型自定义类型使用使用TypeType可以来定义自定义类型可以来定义自定义类型Type Type 自定义类型名自定义类型名元素名元素名(下标下标) As ) As 类型名类型名End TypeEnd TypeDim Dim 变量名变量名 A

9、s As 自定义类型名自定义类型名注意:注意:自定义类型必须在标准模块中定义,默认为自定义类型必须在标准模块中定义,默认为PublicPublic自定义类型元素可以为字符串类型,但必须定长自定义类型元素可以为字符串类型,但必须定长注意定义合理的自定义类型名称,以免造成与实际变注意定义合理的自定义类型名称,以免造成与实际变量名的混淆量名的混淆VisualBasic6.0语言基础自定义类型举例自定义类型举例Type StudTypeType StudTypeintNo as IntegerintNo as IntegerstrName as String * 20strName as String

10、 * 20strSex as String * 1strSex as String * 1SngMark(1 to 4) as SingleSngMark(1 to 4) as SinglesngTotal as SinglesngTotal as SingleEnd TypeEnd TypeDim Student as StudTypeDim Student as StudTypeStudent.intNo = 3012Student.intNo = 3012Student.SngMark(4) = 89.5Student.SngMark(4) = 89.5VisualBasic6.0语言基

11、础变量与声明变量与声明VisualBasic6.0语言基础变量与声明变量与声明显式声明显式声明Dim x Dim x Dim x as integerDim x as integerDim x as integer, y as integerDim x as integer, y as integer隐式声明(均为隐式声明(均为VariantVariant类型)类型)Temp = ptionTemp = ption声明强制手段,在模块文件的顶部填入声明强制手段,在模块文件的顶部填入Option Option Explicit Explicit 将强制用户对所有变量的显式声明将强制用户对所有变量

12、的显式声明常量声明:常量声明:Const PIConst PI 3.14159 3.14159系统常量系统常量 vbNormal = 0, vbNormal = 0, 便于程序的阅读和理解便于程序的阅读和理解VisualBasic6.0语言基础运算符运算符算术算术“+”“+”,“-”-”,“*”*”,“/”/”,“”【整除整除】,ModMod字符串字符串“&”&”:在进行连接前均强制转为字符型:在进行连接前均强制转为字符型“+”“+”:要求两侧均为字符类型:要求两侧均为字符类型关系关系“”, “ “ ”, “ “ ”, “ “ ”, “ “ ”, “”, “ “Like”(Like”(比较字符

13、串模式比较字符串模式) ), “ “Is”Is”( (比较对象引用比较对象引用) ) 操作数为数值,按大小操作数为数值,按大小操作数为字符型,按字符的操作数为字符型,按字符的ASCIIASCII码值从左到右依码值从左到右依次比较次比较逻辑逻辑NotNot,AndAnd,OrOr, XorXor,EqvEqv系统将以数值的二进制值逐位进行逻辑运算系统将以数值的二进制值逐位进行逻辑运算VisualBasic6.0语言基础表达式表达式书写规则书写规则乘号不能省略乘号不能省略 a*b OK! ab ?a*b OK! ab ?括号成对出现,均使用圆括号括号成对出现,均使用圆括号“()()”不同数据类型的

14、转换不同数据类型的转换操作数的精度不一致,结果使用精度高的类型操作数的精度不一致,结果使用精度高的类型Integer Long Single Double CurrencyInteger Long Single Double 关系关系 逻辑逻辑(Var*5 = 100 )(Var*5 = 100 )VisualBasic6.0语言基础基本语句基本语句赋值赋值 Let x = 5Let x = 5交互交互输入:输入: InputBox( InputBox(提示提示,标题标题,缺省缺省,X X坐标坐标,Y Y坐标坐标)StrA = InputBox(“StrA = InputBox(“请输入请输入

15、”,“输入框输入框”,“A”)A”)输出:输出: 函数:变量函数:变量% = % = MsgBox(MsgBox(提示提示,按钮按钮,标题标题) 过程:过程:MsgBox MsgBox 提示提示,按钮按钮,标题标题 VisualBasic6.0语言基础分支与选择分支与选择VisualBasic6.0语言基础 分支选择分支选择一条分支执行后,其他分支将不被执行一条分支执行后,其他分支将不被执行IfThenIfThenIfThenElseIfThenElseIf.ThenElseIfIf.ThenElseIfSelect Case Select Case VisualBasic6.0语言基础IfT

16、hen(IfThen(单分支单分支) )If condition Then statementIf condition Then statementIf x y Then t=x : x=y : y=tIf x y Then t=x : x=y : y=t If condition ThenIf condition ThenstatementsstatementsEnd IfEnd If If x y ThenIf x y Thent=x t=x x=y x=y y=t y=tEnd ifEnd if VisualBasic6.0语言基础IfThenElseIfThenElse(双分支)(双分

17、支)If condition ThenIf condition ThenstatementsstatementsElseElsestatementsstatementsEnd IfEnd If举例举例If x0 thenIf x0 theny=sin(x)+sqr(x*x+1)y=sin(x)+sqr(x*x+1)ElseElsey=cos(x)-x3+3*xy=cos(x)-x3+3*xEnd ifEnd if VisualBasic6.0语言基础If.ThenElseIfIf.ThenElseIf(多分支)(多分支)用用 If.Then.Elseif If.Then.Elseif 块定义几

18、个语句块,块定义几个语句块,只执行其中一个语句:只执行其中一个语句:If condition1 Then If condition1 Then 当条件当条件1 1满足执行语句满足执行语句 1 1statementblock-1statementblock-1ElseIf condition2 Then ElseIf condition2 Then 否则判断条件否则判断条件 2 2 statementblock-2 statementblock-2 ElseIf condition3 Then ElseIf condition3 Then 否则判断条件否则判断条件 3 3statementblo

19、ck-3 statementblock-3 .Else Else 当所有以上条件不满足,则执行语句当所有以上条件不满足,则执行语句 n n statementblock-nstatementblock-nEnd IfEnd IfVisualBasic6.0语言基础If.ThenElseIfIf.ThenElseIf举例举例在在StrCStrC变量中存放了一个字符,判断该字符是字变量中存放了一个字符,判断该字符是字母、数字或其他母、数字或其他程序片断程序片断If (strC = “a” And strc = “a” And strc =“A” And _ strC =“A” And _ strC

20、 = “0” And StrC = “0” And StrC 10 Is Case 2,4,6,Is 10 Is 关系表达式关系表达式VisualBasic6.0语言基础IfThen & Select Case IfThen & Select Case 举例举例由计算机来给出一系列的由计算机来给出一系列的1 11010的操作数和运的操作数和运算符,学生输入答案,计算机根据学生的答案算符,学生输入答案,计算机根据学生的答案判断正确与否,当结束时给出成绩。判断正确与否,当结束时给出成绩。设计设计界面设计(结果显示框,答案输入框,按钮,考题界面设计(结果显示框,答案输入框,按钮,考题显示)显示)随机

21、数产生运算数和运算符号,拼接为考题随机数产生运算数和运算符号,拼接为考题用户输入答案,判断并打印结果用户输入答案,判断并打印结果在结束时统计并打印成绩在结束时统计并打印成绩VisualBasic6.0语言基础循环与控制循环与控制VisualBasic6.0语言基础循环循环循环结构允许重复执行一行或数行代码。循环结构允许重复执行一行或数行代码。Visual Visual Basic Basic 支持的循环结构有:支持的循环结构有: DoLoopDoLoopForNextForNextFor Each.Next For Each.Next VisualBasic6.0语言基础Do Loop Do

22、Loop 的两种结构形式的两种结构形式形式形式1 1:Do While Do While 语句块语句块LoopLoop先判断后执行,可能一先判断后执行,可能一次也不执行次也不执行形式形式2 2:DoDo语句块语句块Loop While Loop While 先执行后判断,至少执先执行后判断,至少执行一次行一次VisualBasic6.0语言基础Do Loop Do Loop 的举例的举例Dim I as Integer, n as Dim I as Integer, n as Long Long Dim t as Single, e as Dim t as Single, e as Singl

23、eSinglee=0 e=0 存放累加和结果存放累加和结果i=0 i=0 计数器计数器n=1 n=1 存放阶乘的值存放阶乘的值t=1 t=1 第第n n项的值,初项的值,初值为值为1 1Do While t 0.00001Do While t 0.00001e = e + t e = e + t 累加和累加和i = i+ 1 i = i+ 1 循环次数循环次数n = n * i n = n * i 连乘积连乘积t = 1 / nt = 1 / nLoopLoopPrint Print 计算自然对数计算自然对数e e的近似的近似值,要求误差小于值,要求误差小于0.000010.00001,其计算

24、公式,其计算公式为为e = 1 + 1/1! + 1/2! e = 1 + 1/1! + 1/2! + + 分析:分析:在不断循环的基础上在不断循环的基础上进行累加和连乘。进行累加和连乘。用单项值的精度来控用单项值的精度来控制循环的结束。制循环的结束。有几个循环呢?有几个循环呢?循环计数值如何用于循环计数值如何用于计算?计算?VisualBasic6.0语言基础ForNextForNextFor For 循环变量循环变量 = = 初值初值 to to 终值终值 Step Step 步长步长 语句块语句块Next Next 循环变量循环变量注意:注意:1.1.初值只被赋值一次。初值只被赋值一次。

25、2.2.循环变量超过终值将终止循环。循环变量超过终值将终止循环。3.3.循环终止后循环变量的值保持不变,注意处理。循环终止后循环变量的值保持不变,注意处理。VisualBasic6.0语言基础ForNextForNext循环嵌套举例循环嵌套举例1.1.乘法九九表打印。乘法九九表打印。用循环变量作为乘数和被乘数即可解决。用循环变量作为乘数和被乘数即可解决。用用Picture.PrintPicture.Print命令即可逐行打印结果命令即可逐行打印结果2. 2. 上、下三角九九表打印?上、下三角九九表打印?3. 3. 注意注意内外循环变量不能同名,并列循环可以同名内外循环变量不能同名,并列循环可以

26、同名内外循环不能交叉,可以嵌套内外循环不能交叉,可以嵌套VisualBasic6.0语言基础For Each.Next For Each.Next For Each.Next For Each.Next 循环对数组或对象集合中的每循环对数组或对象集合中的每一个元素重复一组语句,而不是重复语句一定的一个元素重复一组语句,而不是重复语句一定的次数。如果不知道一个集合有多少元素,次数。如果不知道一个集合有多少元素, 该循环该循环方式将非常有用。方式将非常有用。For Each.Next For Each.Next 循环的语法如下:循环的语法如下:For Each element In groupFo

27、r Each element In groupstatementsstatementsNext elementNext elementVisualBasic6.0语言基础For Each Next For Each Next 举例举例Sub ListTableDefs () Sub ListTableDefs () 将指定将指定MdbMdb文件中的表名添加到链表文件中的表名添加到链表List1List1中中Dim objDb As Database Dim objDb As Database Dim MyTableDef as TableDefDim MyTableDef as TableDe

28、fSet objDb = OpenDatabase(c:vbbiblio.mdb, Set objDb = OpenDatabase(c:vbbiblio.mdb, True, False) True, False) For Each MyTableDef In objDb.TableDefs () For Each MyTableDef In objDb.TableDefs () List1.AddItem List1.AddItem Next MyTableDefNext MyTableDef End Sub End Sub Microsoft ExcelMicrosoft Excel电子

29、表格文件处理电子表格文件处理VisualBasic6.0语言基础使用使用For Each Next For Each Next 的限制的限制对集合,对集合,element element 只能是只能是 Variant Variant 变量,或一般变量,或一般的的 Object Object 变量变量对数组,对数组,element element 只能是只能是 Variant Variant 变量。变量。For Each.Next For Each.Next 不能与用户自定义类型的数组不能与用户自定义类型的数组一起使用,因为一起使用,因为 Variant Variant 不可能包含用户自定义不可

30、能包含用户自定义类型。类型。 VisualBasic6.0语言基础使用循环控制结构使用循环控制结构在在 VBVB中,控制结构的嵌套层数没有限制。为使判定结构和循环中,控制结构的嵌套层数没有限制。为使判定结构和循环结构更具可读性,使用缩排方式。结构更具可读性,使用缩排方式。下面的过程要把打印机和屏幕共有的字体名全部打印出来:下面的过程要把打印机和屏幕共有的字体名全部打印出来:Private Sub Form_Click ()Private Sub Form_Click () Dim SFont, PFont Dim SFont, PFont For Each SFont In Screen.Fo

31、nts () For Each SFont In Screen.Fonts () For Each PFont In Printer.Fonts ()For Each PFont In Printer.Fonts () If SFont = PFont ThenIf SFont = PFont Then Print SFontPrint SFont End IfEnd If Next PFontNext PFont Next SFont Next SFontEnd SubEnd Sub注意,第一个注意,第一个 Next Next 关闭了内层的关闭了内层的 For For 循环,而最后一个循环,

32、而最后一个 For For 关闭了外层的关闭了外层的 For For 循环。同样,在嵌套的循环。同样,在嵌套的 If If 语句中,语句中,End End If If 语句自动与最靠近的前一个语句自动与最靠近的前一个 If If 语句配对。语句配对。VisualBasic6.0语言基础控制控制Goto Goto 标号标号若需退出循环和过程(当需要达到的目的已经若需退出循环和过程(当需要达到的目的已经达到时,如循环查找字符)达到时,如循环查找字符)Exit ForExit ForExit doExit doExit SubExit SubExit FunctionExit FunctionEnd

33、 End 语句语句EndEnd,End SubEnd Sub End if, End Select End if, End SelectStop Stop 语句语句设置断点!设置断点!VisualBasic6.0语言基础控制举例错误收集控制举例错误收集Sub ExampleSub ExampleOn Error Goto ErrHandleOn Error Goto ErrHandleSet x = Object Set x = Object 可能会引发运行时错误可能会引发运行时错误Exit Sub Exit Sub 程序在此处结束,以免进入错误处理段落程序在此处结束,以免进入错误处理段落Er

34、rHandle: ErrHandle: 错误记录登记与处理错误记录登记与处理Resume NextResume NextEnd SubEnd SubVisualBasic6.0语言基础控制举例控制举例Exit For/Exit SubExit For/Exit SubPrivate Sub Form_Click ()Private Sub Form_Click () Dim SFont, PFontDim SFont, PFont For Each SFont In Screen.Fonts ()For Each SFont In Screen.Fonts () For Each PFont

35、In Printer.Fonts ()For Each PFont In Printer.Fonts () If SFont = PFont ThenIf SFont = PFont Then Print SfontPrint Sfont Exit For Exit For 退出内圈循环退出内圈循环 Exit Sub Exit Sub 退出当前过退出当前过程程 End IfEnd If Next PFontNext PFont Next SFont Next SFontEnd SubEnd SubVisualBasic6.0语言基础数组数组VisualBasic6.0语言基础数组数组数组并不是

36、一种数据类型,而是一组相同类型数组并不是一种数据类型,而是一组相同类型的变量的集合。的变量的集合。数组常和循环语句配合使用,来处理逻辑上相数组常和循环语句配合使用,来处理逻辑上相关的一批数据。关的一批数据。数组必须先声明后使用,分为静态和动态数组数组必须先声明后使用,分为静态和动态数组两类。两类。Dim Dim 数组名(下标数组名(下标1 ,1 ,下标下标2 2 )As As 类型类型 下标必须为常数,不可为表达式和变量;下标必须为常数,不可为表达式和变量;下标形式为下标形式为 “ “ 下界下界 to to 上界上界”, , 范围为范围为-32768 -32768 32767 32767; 通

37、常可省略下界,下界缺省为通常可省略下界,下界缺省为0 0;VBVB中可声明最多中可声明最多6060维的数组。维的数组。VisualBasic6.0语言基础静态数组静态数组建立公用数组,在模块的声明段用建立公用数组,在模块的声明段用 Public Public 语语句声明数组。句声明数组。建立模块级数组,在模块的声明段用建立模块级数组,在模块的声明段用 Private Private 语句声明数组。语句声明数组。建立局部数组,在过程中用建立局部数组,在过程中用 Dim Dim 语句声明数语句声明数组。组。 Public Counters (14) As IntegerPublic Counter

38、s (14) As IntegerPrivate Counters (14) As IntegerPrivate Counters (14) As IntegerDim Array1(0 to3, 0 to 4Dim Array1(0 to3, 0 to 4)as Integeras IntegerOption Base Option Base 的使用的使用 Option Base 1 Option Base 1 窗体层和模块层中声明窗体层和模块层中声明静态数组举例筛选法求素数!静态数组举例筛选法求素数!VisualBasic6.0语言基础包含其他数组的数组包含其他数组的数组建立建立 Vari

39、ant Variant 数据类型数组数据类型数组, ,将整数和字符串数将整数和字符串数组放置其中:组放置其中:Dim countersA (5) As Integer Dim countersA (5) As Integer 数组数组countersAcountersA赋值赋值Dim countersB (5) As StringDim countersB (5) As String 数组数组countersBcountersB赋值赋值Dim arrX (2) As Variant Dim arrX (2) As Variant arrX (1) = countersA () arrX (1)

40、 = countersA () 将将countersAcountersA的内容给的内容给arrX(1)arrX(1)arrX (2) = countersB () arrX (2) = countersB () 将将countersBcountersB的内容给的内容给arrX(2)arrX(2)VisualBasic6.0语言基础数组的基本操作(数组的基本操作(1 1)数组元素赋值数组元素赋值利用循环结构利用循环结构For i = 1 to 10For i = 1 to 10A(i) = iA(i) = iNext iNext i 利用利用ArrayArray函数函数Dim a as vair

41、ant, b as variantDim a as vairant, b as varianta = array(1,2,3,4,5)a = array(1,2,3,4,5)b = array(“abc”,”r”,”78”)b = array(“abc”,”r”,”78”)* *使用使用ArrayArray函数时,被赋值数组必须是函数时,被赋值数组必须是VairantVairant类型类型的的且不能定义下标!且不能定义下标!VisualBasic6.0语言基础数组的基本操作(数组的基本操作(2 2)输出输出利用循环结构进行依次输出利用循环结构进行依次输出For i= 1 to 10For i=

42、 1 to 10Print a(i)Print a(i)Next i Next i 数组赋值数组赋值数组直接对数组的赋值数组直接对数组的赋值Dim a( ) as variant Dim a as variant Dim a( ) as variant Dim a as variant 也可以也可以Dim b( ) as variant Dim b as variant Dim b( ) as variant Dim b as variant 也可以也可以a = array(1,2,3,4,5)a = array(1,2,3,4,5)b = ab = a 将将a a数组中所有元素值对应地赋值给

43、数组中所有元素值对应地赋值给b b*注意被赋值数组类型必须是注意被赋值数组类型必须是VairantVairant的的VisualBasic6.0语言基础动态数组动态数组动态地指定数组的大小。动态地指定数组的大小。Dim sArray() as IntegerDim sArray() as IntegerDim x as integerDim x as integerSub Form_Load()Sub Form_Load() ReDim sArray(4, 8) ReDim sArray(4, 8)ReDim sArray(4, 8, 9)ReDim sArray(4, 8, 9)ReDim

44、sArray(x, x+5)ReDim sArray(x, x+5)End SubEnd SubVisualBasic6.0语言基础使用动态数组的注意事项使用动态数组的注意事项在在RedimRedim之前不能声明数组维数。否则将不能重定之前不能声明数组维数。否则将不能重定义。义。ReDim ReDim 语句只能出现在过程中,是一个可执行语语句只能出现在过程中,是一个可执行语句。句。RedimRedim语句中的下标可以是有确定值的变量。语句中的下标可以是有确定值的变量。经过经过ReDimReDim,数组的维数还能动态地改变。,数组的维数还能动态地改变。RedimRedim后数组的内容可能丢失。后

45、数组的内容可能丢失。 VisualBasic6.0语言基础动态定义中保留数据动态定义中保留数据使用具有使用具有 Preserve Preserve 关键字的关键字的 ReDim ReDim 语句。语句。ReDim Preserve DynArray (UBound (DynArray) + 1) ReDim Preserve DynArray (UBound (DynArray) + 1) 只能改变多维数组中最后一维的上界;如果改变只能改变多维数组中最后一维的上界;如果改变了其它维或最后一维的下界,那么运行时就会出了其它维或最后一维的下界,那么运行时就会出错。错。ReDim Preserve

46、Matrix (10, UBound (Matrix, 2) + 1) ReDim Preserve Matrix (10, UBound (Matrix, 2) + 1) ReDim Preserve Matrix (UBound (Matrix, 1) + 1, 10)ReDim Preserve Matrix (UBound (Matrix, 1) + 1, 10)动态数组演示动态数组演示 VisualBasic6.0语言基础控件数组的使用控件数组的使用概念:是由一组相同类型的控件组成。概念:是由一组相同类型的控件组成。公用一个控件名称,每个控件有一个唯一的索引号公用一个控件名称,每个控

47、件有一个唯一的索引号(indexindex)共享一个事件过程。共享一个事件过程。创建方法创建方法设计时创建设计时创建创建控件,拷贝粘贴即可创建,具体位置由设计创建控件,拷贝粘贴即可创建,具体位置由设计者直接指定者直接指定运行时创建运行时创建设计时创建一个控件,设置设计时创建一个控件,设置IndexIndex为为0 0在运行时使用在运行时使用LoadLoad方法来加载若干个控件方法来加载若干个控件通过通过LeftLeft,TopTop属性来确定其位置属性来确定其位置VisualBasic6.0语言基础过程与函数过程与函数VisualBasic6.0语言基础过程和函数的定义过程和函数的定义自定义过

48、程自定义过程staticPublic|Private Sub staticPublic|Private Sub 子过程名子过程名 (参数列表参数列表)局部变量或常数定义局部变量或常数定义语句语句Exit SubExit Sub语句语句End SubEnd Sub自定义函数自定义函数staticPublic|Private Function staticPublic|Private Function 函数名函数名 (参数列表参数列表)As )As 类型类型 局部变量或常数定义局部变量或常数定义语句语句函数名函数名 返回值返回值Exit FunctionExit Function语句语句函数名函数

49、名 返回值返回值End SubEnd SubVisualBasic6.0语言基础过程和函数的定义过程和函数的定义过程名过程名命名原则与变量相同,注意不能与关键字,命名原则与变量相同,注意不能与关键字,APIAPI函数函数名和同级变量名相同名和同级变量名相同As As 类型类型若函数定义中省略,则为若函数定义中省略,则为VariantVariant类型类型在函数体内至少要有一次对函数名的赋值在函数体内至少要有一次对函数名的赋值参数列表形式参数列表形式ByVal ByVal 变量名变量名 ()As ()As 类型类型, ByVal , ByVal 变量名变量名 ()As ()As 类型类型 形参形

50、参定义函数和子过程时可以没有形参,但函数在没有参定义函数和子过程时可以没有形参,但函数在没有参数定义时圆括号不能被省略数定义时圆括号不能被省略VisualBasic6.0语言基础过程和函数的调用过程和函数的调用子过程调用子过程调用子过程名子过程名 参数列表参数列表 Call Call 子过程名子过程名 (参数列表参数列表)Call MyProc (FirstArgument, SecondArgument)Call MyProc (FirstArgument, SecondArgument)MyProc FirstArgument, SecondArgumentMyProc FirstArgu

51、ment, SecondArgument函数过程调用函数过程调用变量名变量名 函数名(函数名( 参数列表参数列表 )X = AnotherFunction ( ToDec)X = AnotherFunction ( ToDec)注意:注意:实参的个数、类型与形参的一致实参的个数、类型与形参的一致外部调用,注意添加模块名称外部调用,注意添加模块名称Call Form1.SomeSub (arguments) Call Form1.SomeSub (arguments) Print Module2.FunctionName (arguments) Print Module2.FunctionNam

52、e (arguments) VisualBasic6.0语言基础参数传递方式参数传递方式传值:传递的只是变量的副本。变动只影响副本而不传值:传递的只是变量的副本。变动只影响副本而不会影响变量本身。会影响变量本身。 Sub PostAccounts (ByVal intAcctNum as Integer)Sub PostAccounts (ByVal intAcctNum as Integer) 传址:使过程用变量的内存地址去访问实际变量的内传址:使过程用变量的内存地址去访问实际变量的内容。容。 Dim intX As Integer Dim intX As Integer intX = 12

53、 * 3 intX = 12 * 3 Foo (intX) Foo (intX) 注意:注意:为降低过程间耦合度,建议使用传值方式为降低过程间耦合度,建议使用传值方式传址方式下对应的实参不能为表达式和常数传址方式下对应的实参不能为表达式和常数VisualBasic6.0语言基础数组作为参数传递数组作为参数传递数组通过传地址方式进行传递数组通过传地址方式进行传递在形参和实参列表中放入数组名,须忽略维数的在形参和实参列表中放入数组名,须忽略维数的定义,但需保留定义,但需保留“()()”。在过程调用中实际使用数组时可用在过程调用中实际使用数组时可用LboundLbound和和UboundUbound

54、来确定数组上下界。来确定数组上下界。VisualBasic6.0语言基础数组参数举例数组参数举例Function Temp(InterA() as integer)Function Temp(InterA() as integer)For i = Lbound(InterA) to Ubound(InterA)For i = Lbound(InterA) to Ubound(InterA)Next iNext iEnd FunctionEnd FunctionDim a(5) as IntegerDim a(5) as IntegerDim T1 as integerDim T1 as int

55、egerT1 = temp(a()T1 = temp(a()VisualBasic6.0语言基础使用不定数量的参数使用不定数量的参数 过程调用中的参数个数也可以不等于过程说明的参数个数。可用过程调用中的参数个数也可以不等于过程说明的参数个数。可用 ParamArray ParamArray 关键字指明,过程将接受任意个数的参数。关键字指明,过程将接受任意个数的参数。于是可以这样来编写计算总和的于是可以这样来编写计算总和的 Sum Sum 函数:函数:Dim x As IntegerDim x As IntegerDim y As IntegerDim y As IntegerDim intSu

56、m As IntegerDim intSum As IntegerSub Sum (ParamArray intNums ()Sub Sum (ParamArray intNums () For Each x In intNums For Each x In intNums y = y + x y = y + x Next x Next x intSum = y intSum = yEnd SubEnd SubPrivate Sub Command1_Click ()Private Sub Command1_Click () Sum 1, 3, 5, 7, 8 Sum 1, 3, 5, 7,

57、8 List1.AddItem intSum List1.AddItem intSumEnd SubEnd SubVisualBasic6.0语言基础窗体模块1Dim/Private 变量Public 变量1标准模块Public 变量窗体模块2Dim/Private 变量Public 变量4Private Sub AStatic/Dim 变量2Private Sub CDim 变量5Public Sub BDim 变量3Public Sub DDim 变量6Public 过程1Private过程2VisualBasic6.0语言基础过程的作用域过程的作用域过程类型作用范围模块级过程全局级过程窗

58、体标准模块窗体标准模块定义方式过程名前加Private过程名前加Public能否被本模块其他过程调用能能能能能否被其他模块调用不能不能能,加窗体名。Call 窗体.My2(实参表)能,过程名唯一或加模块名。Call 标准模块.My2(实参表)VisualBasic6.0语言基础变量的作用域变量的作用域变量类型局部变量窗体/模块变量全局变量窗体标准模块声明方式Dim, StaticDim, PrivatePublic声明位置在过程中 窗体/模块的通用声明段窗体/模块的通用声明段能否被本模块其他过程调用不能能能能否被其他模块调用不能不能能,加窗体名能VisualBasic6.0语言基础静态变量和过

59、程静态变量和过程StaticStaticStatic Static 变量名变量名 As As 类型类型 Static Function Static Function 函数名(函数名( 参数列表参数列表 )As As 类型类型 Static Sub Static Sub 过程名过程名(参数列表参数列表)静态变量是局部变量的一种,在程序运行过程静态变量是局部变量的一种,在程序运行过程中可保留上次运行该过程所赋的值。中可保留上次运行该过程所赋的值。静态过程和静态函数中的所有变量均为静态类静态过程和静态函数中的所有变量均为静态类型的。型的。静态变量举例静态变量举例VisualBasic6.0语言基础

60、静态变量举例静态变量举例Sub ASub ADim I as integer, isum as integerDim I as integer, isum as integerFor I = 1 to 5For I = 1 to 5isum = sum(i)isum = sum(i)Print isumPrint isumNext I Next I End SubEnd SubFunction sum(n as integer)Function sum(n as integer)Dim j as integer (static j as integer)Dim j as integer (st

61、atic j as integer)j= j + nj= j + nSum = jSum = jEnd functionEnd function 若若j j不是静态变量,结果为不是静态变量,结果为1 1,2 2,3 3,4 4,5 5 若若j j是静态变量,结果为?(请看实例)是静态变量,结果为?(请看实例)VisualBasic6.0语言基础语言基础课后练习(语言基础课后练习(1 1)1.1.编写程序,建立并输出一个编写程序,建立并输出一个10x1010x10的矩阵,该矩的矩阵,该矩阵主对角线元素为阵主对角线元素为1 1,其余元素为,其余元素为0 0。2.2.有有1010名运动员的百米短跑比

62、赛成绩如下右表,名运动员的百米短跑比赛成绩如下右表,请编写程序,按如下格式分行输出。请编写程序,按如下格式分行输出。运动员号成绩运动员号成绩20714.5秒07715.1秒15614.2秒23114.7秒45315.2秒27613.9秒09615.7秒12213.7秒33914.9秒30214.5秒名次 运动员号 成绩1 . .2 . . . .10 . .VisualBasic6.0语言基础语言基础课后练习(语言基础课后练习(2 2)3.3.编写一个求编写一个求3 3个数中最大值个数中最大值MaxMax和最小值和最小值MinMin的过的过程,然后用这个过程分别求程,然后用这个过程分别求3 3个数,个数,5 5个数和个数和7 7个个数中的最大值和最小值。数中的最大值和最小值。4.4.编写二进制和十进制整数相互转换的编写二进制和十进制整数相互转换的2 2个函数。个函数。VisualBasic6.0语言基础ENDEND VisualBasic6.0语言基础

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号