可视化程序设计语言基础.ppt_第1页
可视化程序设计语言基础.ppt_第2页
可视化程序设计语言基础.ppt_第3页
可视化程序设计语言基础.ppt_第4页
可视化程序设计语言基础.ppt_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

常州工学院计算机系,1,1. VB程序书写规范和程序注释 2. VB中标准的数据类型 3. VB中的运算符和表达式 4. 变量与常量 5. 数组 6. 枚举类型 7. 用户自定义类型 8. VB的基本控制结构 9. 过程 10. 常用函数,第三章 VB语言基础,常州工学院计算机系,2,一、 VB程序书写规范和程序注释, 语句体,语句的功能,具体操作和说明,语句的一般形式:,例: Print “OK!”,赋值语句: 结束语句:End,常州工学院计算机系,3,一、 VB程序书写规范和程序注释,按行书写 VB代码中不区分字母的大小写 一行一句 一句多行(续行标记 一个空格+一个下划线_) 一行多句(语句分隔符 冒号) 例: x=10:y=“Visual Basic”:z=20,常州工学院计算机系,4,一、 VB程序书写规范和程序注释,书写规范 对于VB中的保留字,首字母总被转换成大写,其余字母被转换成小写。 对于用户自定义的变量、过程名,VB总是以第一次定义的为准,以后输入的自动向第一次的定义转换。 程序注释(可读性) Rem语句 Rem 单引号 ,常州工学院计算机系,5,二、 VB中标准的数据类型,常州工学院计算机系,6,二、 VB中标准的数据类型,数值型(Numeric)数据 Integer 和 Long 型:用于保存整数,整数运算速度快、精确,但表示数的范围小。Long较大的整数,Integer较小的整数。 Single 和Double型:用于保存浮点实数,浮点实数表示数的范围大,但有误差且运算速度慢。Double的精度大于Single Currency 型:是定点实数或整数,最多保留小数点右边4位和小数点左边15位,用于货币计算。 Byte 型:用于存储二进制数。一个字节型变量,常州工学院计算机系,7,二、 VB中标准的数据类型,日期型(Date)数据 Date型按8字节的浮点数来存储。 日期范围:100年1月1日9999年12月31日 时间范围:0:00:0023:59:59 赋值时用两个#号将日期括起来 A#10/12/2002#,常州工学院计算机系,8,二、 VB中标准的数据类型,字符型(String)数据: 用于表示由很多字符组成的字符串。 字符串的表示方法:两侧用“ ”号括起来 B “Visual Basic” 定长字符串:String*Size 不足在右边补空 超过截取 变长字符串,常州工学院计算机系,9,二、 VB中标准的数据类型,逻辑型(Boolean)数据 用于逻辑判断,它只有True和 False两个值,常州工学院计算机系,10,二、 VB中标准的数据类型,变体型(Variant)数据(尽量少用) 是一种特殊的数据类型,是所有未定义变量的默认数据类型,它可以存储所有系统定义的类型的数据 缺点:占用的空间较大,慢 注意以下两种特定值: Empty:在赋值之前,Variant变量具有值Empty IsEmpty函数 Null:表示未知数据或丢失的数据,常用于数据库应用程序 IsNull函数,常州工学院计算机系,11,二、 VB中标准的数据类型,对象数据类型 可用来引用应用程序或某些其他应用程序中的对象 给Object类型的变量指定某一具体的对象时应该用Set语句赋值,常州工学院计算机系,12,VB中的类型转换函数,常州工学院计算机系,13,算术运算符与算术表达式 算术运算符 (乘方)、 + (加) 、-减(负号) 、* (乘)、/ (除)、 (整除)、 Mod(取余(模) 优先级: -(负) * / Mod +- 算术表达式 A*b/(c*d) a*b/c/d a*b/c*d 132*3 238/2 mod 3 29 mod 98/2,三、 运算符和表达式,常州工学院计算机系,14,关系运算符与关系表达式 关系运算符 、 =、 、=、 IS(对象引用比较)、Like(字符串比较) 关系表达式(按值比较,字符按其ASCII码逐个比较) A=z/2 B$”Basic” 优先级相同,三、 运算符和表达式,常州工学院计算机系,15,逻辑运算符与逻辑表达式 逻辑运算符,三、 运算符和表达式,常州工学院计算机系,16,三、 运算符和表达式,字符串运算符 字符串运算符有两个“” 和“&”。在使用&时应注意变量与运算符&之间应有一个空格。 +和& 的区别 :连接符两端的操作数均应是字符型 & :进行连接操作前,系统先将操作数首先转换为字符型,然后再进行连接。 例如:“12000”12345 结果24345 12345+“abcdef” 出错 12 & “12345” 结果1212345,常州工学院计算机系,17,三、 运算符和表达式,各种运算符间的优先顺序 算术运算符字符运算符关系运算符逻辑运算符 对于多种运算符并存的表达式,可以增加括号,改变优先级 例如:(分析优先级) A=2*3.14159*r and x5 or not b X2 or text1.text=“Microsoft” (19)and 119)or 12,常州工学院计算机系,18,数据存储形式,常州工学院计算机系,19,四、变量与常量,命名规则 必须以字母、汉字开头,由字母、汉字、数字或下划线组成。作为变量名的字符串内不得包括点号和用于类型说明的字符%、&、!、#、$和空格。 长度255个字符。 见名知义、在作用域内必须唯一。 不能使用VB中的关键字。 VB中不区分变量名的大小写。为便于区分,一般变量首字母用大写字母,其余用小写字母。常量全部用大写字母。,常州工学院计算机系,20,四、变量与常量常量,系统提供的常量 VB系统中还提供了为应用程序和控件定义的常量,这些常量位于对象库中,可通过对象浏览器查看。 如:颜色常量 VbRed、VbBlue 符号常量(Const语句) 为什么要用? 如何用?,常州工学院计算机系,21,四、变量与常量常量,Const 语句的形式: Public | Private Const As Type = ,Const PI=3.14159 Const conBirthday=#3/22/93# Public Const Country$=“CHINA”,Fax_Num&=36134484 Public Const conYearsMissyou As Integer=6,注:常量一旦声明,在其后的代码中只能引用,不能改变,常州工学院计算机系,22,VB中变量的声明分为两种方法 隐式声明:允许对使用的变量未声明就直接使用 private sub form_click() k&=1 country$=“China” Print k,Country end sub,四、变量与常量变量,隐式声明的弱点:变量名书写错误,不会出错!,显示声明:每个变量都必须先声明再使用 要强制显式声明变量,只须在类模块、窗体模块或标准模块的声明段中加入这条语句 OPTION EXPLICIT,常州工学院计算机系,23,Option Explicit 语句 在模块中使用OPTION EXPLICIT语句,系统将检查模块中所有未加显式说明的变量,一旦发现这样的变量存在,就会产生一个出错信息,提示使用者改正错误 要求变量声明 可以通过“工具”菜单 “选项”“编辑器”选项卡设置,四、变量与常量变量,常州工学院计算机系,24,四、变量与常量变量,变量的作用域与变量说明语句 作用域 局部变量 在过程中说明,仅在说明它的过程中有效 窗体/ 模块变量 在窗体或标准模块中说明,在定义该变量的模块或窗体的所有过程内均有效 全局变量 在模块或窗体中说明,在工程内的所有过程中都有效,常州工学院计算机系,25,四、变量与常量变量,作用时间 普通局部变量:只在声明它的过程内部有效 变量在过程真正执行时才分配空间。过程执行完毕后即释放空间,变量中存放的值也就不复存在。 静态局部变量:只在声明它的过程内部有效 变量在第一次定义时分配空间。过程执行完毕后,只要程序还未结束,该变量的值就依然存在,该变量占用的空间不被释放。,常州工学院计算机系,26,四、变量与常量变量,Private Sub Command1_Click() Dim i As Integer Print i i = i + 1 Print i End Sub,Private Sub Command2_Click() Static i As Integer Print i i = i + 1 Print i End Sub,?想一想:会有什么不同,常州工学院计算机系,27,四、变量与常量变量,变量说明语句 Dim As , As 用于说明窗体变量或局部变量(最常用),Public As , As 用于说明全局变量,Private As , As 用于说明窗体 / 模块级变量,Static As , As 用于说明静态变量,常州工学院计算机系,28,四、变量与常量变量,窗体级和全局变量应在“代码编辑器”窗口中的(通用)(声明)部分进行说明 例: Dim count as integer public name as string , age as integer 局部变量仅在使用它的过程中说明 例: private sub command1_click() Dim count as integer End sub 用Dim 语句说明的变量初值为0或空串 变量名自动转换,常州工学院计算机系,29,不同作用范围的3种变量声明及使用规则,常州工学院计算机系,30,变长字符串(缺省): Dim As String 例:Dim strName As String 定长字符串: Dim As String * size 例:dim empname as string*50(不足补空,太长截取) 相关函数: TRIM,RTRIM , LTRIM , LEFT , RIGHT , MID$,四、变量与常量变量,常州工学院计算机系,31,五、数 组,数组:数组是一种由同类数据组成的有序集合。,Name (25),数组名,下 标,数组元素(下标变量),数组元素:数组中每一个数据称为数组元素 表示方法:数组名(S1,S2,) (S1,S2为下标) 下标:元素在数组中的位置,数组的引入,能够实现对数据的快速、成批处理。,常州工学院计算机系,32,五、数 组,数组的声明: 格式:Dim () As 维数定义的格式: To , To 数组的命名:数组的命名规则与普通变量相同。 数组的维数:简单的说就是数组下标的个数。 数组的类型:与变量的类型一样。 省略下界时, 系统缺省为0,但可通过Option Base语句改变 OPTION BASE 语句 Option Base 1(默认为0) 必须写在窗体或标准模块的所有过程之前 一个模块中只能出现一次Option Base 语句 必须写在数组说明语句之前 使该模块中所有缺省说明下标下界的数组的下标下界为1,常州工学院计算机系,33,五、数 组,数组的形式:静态数组(元素个数固定)和动态数组(元素个数可以在程序运行期间改变) 静态数组:说明数组时,如果指明了数组的维数和每一维的下标范围,在使用过程中,维数和下标范围不变的数组 动态数组:说明数组时,如果不指明了数组的维数和每一维的下标范围,仅用一对圆括号表示,在使用过程中,可以利用ReDim语句对维数和下标范围重新说明的数组 例:Dim Pin() as integer Private sub form_load Redim pin(5) End sub,常州工学院计算机系,34,五、数 组,ReDim Preserve As 使用Preserve,则在对数组重新说明时,将会保留原数组中的元素的内容 。例如:,Dim A() Redim A(3) A(0)=0:A(1)=1:A(2)=2:A(3)=3 Redim A(10) 思考:此时A(0)A(3)中的内容为多少?,Dim A() Redim A(3) A(0)=0:A(1)=1:A(2)=2:A(3)=3 Redim Preserve A(10) 思考:此时A(0)A(3)中的内容为多少?,A(0)A(3)中的内容恢复为初始值,A(0)A(3)中的内容维持不变,常州工学院计算机系,35,五、数 组,控件数组 在一个窗体内可以包含多个同种类型的控件 同一类型的控件通过控件数组可以共享同一个事件过程 属性的共享 加一个控件 设置属性 加另一个控件:右击控件/复制/粘贴 查看另一个控件的属性,常州工学院计算机系,36,五、数 组,事件过程的共享 加一个控件 设置事件过程 加另一个控件:右击控件/复制/粘贴 查看另一个控件的事件过程进行比较 元素:text1(0),text1(1),text1(2) 优点:编写的代码比较简单且易于维护,常州工学院计算机系,37,六、枚 举 类 型,枚举:将变量的可能值一一列举出来,变量的取值只限于列举出来的值得范围内 语法: private | public Enum Style_name element1 =常数表达式 element2 =常数表达式 End Enum,38,举例: 1. Private Enum Days Monday =1 Tuesday Wednesday Thursday Friday Saturday Sunday End Enum,Dim a as Days a = Tuesday a?,a2,必须先声明后使用!,常州工学院计算机系,39,七、用户自定义类型,数组能够存放一组性质相同的数据,例如:一批学生某门的课的成绩: Dim score(50)As Integer Score(1)=95 但若同时要表示学生的姓名和考试成绩,因为数据的性质不同,则需要声明两个数组 Dim Score(50) As Intege 存放其对应的考试成绩 Dim Name(50) as String 存放学生的姓名 Name(1)=“张三”:Score(1)=95,常州工学院计算机系,40,用户自定义类型,这样的问题其实可以通过用户自定义类型来实现 用户自定义类型,也可称为记录类型。它由若干个标准数据类型组成。 语法: private | public Type var_name elementname1 as type_name1 elementname2 as type_name2 End Type,常州工学院计算机系,41,用户自定义类型,举例: Private Type UserType ID as integer Name as String End Type Dim a as UserType a.Name=“张某某” a.ID=1,常州工学院计算机系,42,用户自定义类型,注意: 自定义数据类型一般在标准模块(.bas)中定义,默认是Public。若在窗体模块中定义,必须是Private 自定义数据类型中元素的类型可以是字符串,但必须是定长字符串。 一旦定义好了类型,就可以在变量的声明时使用该类型 要表示自定义类型变量中的某个元素,形式如下: 变量名 . 元素名,常州工学院计算机系,43,八、VB的基本控制结构,1. 顺序结构 2. 选择结构 3. 循环结构,常州工学院计算机系,44,常州工学院计算机系,45,1. 顺序结构,基本形式 变量名表达式 表达式可以是任何类型的表达式,一般其类型应该和变量的类型相一致。 VB带有强制类型转换功能,常州工学院计算机系,46,2. 分支结构,If e Then A组语句 End If If e Then A组语句,单分支结构语句,e.g.: If x5 then y=x2+4 End if,If x5 then y=x2+4,常州工学院计算机系,47,If e Then A组语句 Else B组语句 End If If e Then 语句1 Else 语句2,双分支结构,常州工学院计算机系,48,多分支结构,If e1 Then A1组语句 ElseIf e2 Then A2组语句 Else An+1组语句 End If,注意:ElseIf是连着写,中间没有空格。,常州工学院计算机系,49,常州工学院计算机系,50,注意: 条件:是必要的参数,其结果为True 或False 在块形式中, If 块必须以一个 End If 语句结束。Else 和 ElseIf 子句都是可选的。在 If 块中,可以放置任意多个 ElseIf 子句,但是都必须在Else 子句之前。,常州工学院计算机系,51,Select Case结构语句,Select Case e Case c1 A 组语句 Case c2 B 组语句 Case Else n 组语句 End Select,e:测试表达式,可以为任何数值表达式或字符串表达式,常州工学院计算机系,52,C1,c2情况表达式,可以为以下几种形式: 表达式 表达式 To 表达式 Is 多个情况表达式值,中间用“,”进行隔开,Case 6,Case “6”,Case 1 To 9,Case Is 10,Case 1,3,5,7,9,常州工学院计算机系,53,3. 循环结构,For v=e1 To e2 Step e3 Exit For Next v,For循环语句,常州工学院计算机系,54,当知道循环次数的时候最还是使用此结构,功能: 1)当循环控制变量在给定范围内,则执行循环体内的语句块,否则跳出循环,执行next 后的语句。 2)当执行到next时,循环控制变量自加步长,然后跳回第一步,重新判断循环控制变量是否在给定范围内,常州工学院计算机系,55,例:s=1+3+5+99 s=1+(1+2)+(1+2+3)+(1+2+10) 任意输入一个自然数,判断是否为素数 求m和n的最大公约数,常州工学院计算机系,56,DoLoop循环语句,用DO循环重复执行一语句块,且重复次数不定。 DoLoop语句有4种形式,但每种形式都会对循环条件进行判断以决定是否继续执行循环。循环条件必须是一个值为True或False的表达式。,常州工学院计算机系,57,Do While e Exit Do Loop,首先测试循环条件:如果循环条件为False或零,则跳过后面的循环语句序列。 如果循环条件为True或非零,则VB将进入循环体执行语句,执行语句后退回到Do While语句再测试循环条件。,例:s=1+2+3+100,常州工学院计算机系,58,Do Exit Do Loop While e,T,F,常州工学院计算机系,59,Do Until e Exit Do Loop,常州工学院计算机系,60,Do Exit Do Loop Untile e,常州工学院计算机系,61,多重循环语句,多重循环语句也称为循环语句的嵌套,就是在一个循环体内又出现另外的循环语句。在进行嵌套的时候必须注意: 1.内、外循环的循环变量不能同名。 2.内循环必须完全处于外循环之中,不能出现任何交叉。 另外,循环体如果出现在if语句、select等语句中时,则也必须作为一个整体出现在条件语句的语句块中。 例:1、九九乘法表,常州工学院计算机系,62,九、Sub 过程,Vb使用三种过程 子程序过程(Sub Procedure) Sub过程不返回值 函数过程(Function Procedure) Function过程只返回一个值 属性过程(Property Procedure) Property过程设置和返回对象、类等的属性值(略),常州工学院计算机系,63,1. 事件过程 事件:能被对象(窗体和控件)识别的动作 由用户产生:click事件,keypress事件 由系统产生:timer事件 事件过程:存放对发生的事件进行处理的代码的过程 事件过程是窗体和控件的附属物 分为窗体事件过程和控件事件过程,常州工学院计算机系,64,定义事件过程,窗体事件过程的语法 Private Sub Form_事件名(参数列表) 局部变量和常数声明 语句块 End Sub 注意 过程名由“Form”、下划线和事件名组成 “Private”表示该事件过程不能在它自己的窗体模块之外被调用。它的使用范围是模块级的,在该窗体模块之外是不可见的 事件过程是VB内部定义好的,有无参数,由VB决定,常州工学院计算机系,65,控件事件过程的语法 Private Sub 控件名_事件名(参数列表) 局部变量和常数声明 语句块 End Sub 注意 过程名由控件名、下划线和事件名组成 建立事件过程 双击窗体或控件 单击“查看代码”按钮,常州工学院计算机系,66,2. 通用过程 通用过程是一个必须从另一个过程显式调用的程序段,使用它可使复杂程序分解成易于管理的逻辑单元。 通用过程分为公有过程和私有过程两种。 定义Sub过程 Sub过程不能嵌套定义 建立Sub过程,常州工学院计算机系,67, Private | Public Sub 过程名 (参数列表) 局部变量和常数声明 语句块 Exit Sub 语句块 End Sub 前缀Private、Public、Static 形式参数格式: (“传值”和“传址”方式) ByVal 变量名 () AS 数据类型 ,常州工学院计算机系,68,3. Function过程 语法: Private | Public Function 函数名 (参数列表) As 数据类型 局部变量和常数声明 语句块 函数名 = 表达式 Exit Function 语句块 函数名 = 表达式 End Function,常州工学院计算机系,69,4.过程调用 事件过程由系统自行调用 Sub过程调用 Call语句 Call 过程名 (实在参数表) 直接用过程名 过程名 实参1 ,实参2 . . . 参数的传递方式有“传值”和“传址”,常州工学院计算机系,70,Function过程调用 Function 过程名 ( 实在参数表 ) 注意: 1. 函数返回的值往往需要使用,则参数必须加上括号 2. 但也可以按Sub来使用,只是此时将放弃返回值,常州工学院计算机系,71,5. 调用其他模块中的公共过程 窗体中的公用过程 Call . 标准模块中的公用过程 无同名过程 Call 有同名过程 Call .,常州工学院计算机系,72,6. 参数的传递 形参 定义过程(Sub)或函数(Function)时,出现在形参表中的变量名、数组名称之为形式参数 形参给出传递到过程(函数)中的值在过程(函数)中的表现形式 形参的类型 (1). 除定长字符串变量之外的合法变量名; (2). 后面跟有左右圆括号的数组名,常州工学院计算机系,73,实参 在调用Sub或Function过程时,传送给相应过程的变量名、数组名、常数或表达式 “形实结合”要求在传递参数时,“形实对应”,要求形参和实参数据类型相互兼容 传递参数的两种方式:按值传递和按地址传递(“引用”) ByVal|ByRef 参数名()As数据类型,常州工学院计算机系,74,按值传递参数 形参前加关键字“ByVal” 过程调用时,VB给按值传递参数分配一个临时存储单元 按值传递参数,传递的只是实参变量的副本 过程中改变形参值,只影响副本 按地址传递参数 形参前加关键字“ByRef”,或省略关键字 形参和实参共用内存的同一“地址” 过程中改变形参值,将同时将形参和实参中的值,常州工学院计算机系,75,声明数组参数的格式: 形参数组名() As 数据类型 数组形参的下标和维数由数组实参决定 Ubound()函数可用的最大下标 Lbound()函数可用的最小下标,常州工学院计算机系,76,形参的类型可声明为Control 向过程传递控件 形参的类型可声明为Form 向窗体传递控件 VB可以将对象赋给某一变量,常州工学院计算机系,77,递 归 过 程,在函数定义中调用了函数本身,即递归为定义的函数 递归过程中必须有结束递归语句 调用递归过程时,程序的执行过程:,逐层调用,逐层返回,常州工学院计算机系,78,10. 常 用 函 数,定义:由系统提供的,可在任何一个VB程序中随时使用的程序段。每个程序段用于进行某个特定的运算或处理。 例:SQR(X),VAL(X),CHR(X)。 函数调用:(p1,p2, )(show) 自变量的个数、排列次序、数据类型,应和函数规定的参数相同(一致) SGN(X) SGN(-23) SGN(34) SGN(0),常州工学院计算机系,79,算 术 函 数,常州工学院计算机系,80,Rnd函数,Rnd函数返回的范围为:0,1),默认情况下每次运行一个应用程序,VB提供相同的种子,即Rnd产生相同序列的随机数,为了每次运行时产生不同序列的随机数,可先执行Randomize语句 思考:如何产生30,50之间的随机数,Int(Rnd*2130) Int(Rnd*范围基数),常州工学院计算机系,81,VB中的转换函数,常州工学院计算机系,82,字 符 函 数,常州工学院计算机系,83,Len(c):返回字符串长度。 LenB(c):返回字符串所占的字节数 StrReverse(c):将字符串反向。 Ltrim、Rtrim、Trim(c):将字符串左边、右边或两边的空格清除。 Left(c,n):从左边截取字符串。 Right(c,n):从右边截取字符串。 Mid(c,n1,n2):从中间截取字符串,其中第二、第三个参数分别表示从第几个字符开始,共截取几个字符。 Space(n):返回空格字符串。 String(n,c):以单一字符填充字符串。,常州工学院计算机系,84,Strcomp(c1,c2,m):用来比较两个字符串的大小。 Strconv(c,参数):按指定的形式转换字符串。 Replace:替换字符串中的指定字符串,它的使用方法为: replace(字符串表达式,查找字符串,替换字符串,起始位置,替换数量,比较方式) Split:按分隔符将字符串分解为多个部分,并以数组形式返回,它的使用方法为: Split(字符串表达式,分隔符,分解数量,比较方式),Shell(a,b):调用Windows下运行的可执行程序 a:要执行的应用程序名 b:表示所执行的应用程序的窗口大小,常州工学院计算机系,85,Format函数,它可以使数值、日期或字符串按指定的格式输出。其形式如下: Format$(表达式,格式字符串) (1)数值格式化 (2)日期和时间格式化 (3)字符串格式化,例:a12.2345 b=12 Format(a,”0.00”)12.23,Format(b,”0.00”)=12.00 Format(a,”#.#”)12.23,Format(b,”#.#”)=12,常州工学院计算机系,86,日期与时间函数,常州工学院计算机系,87,Date函数:用来返回当前日期。 DateSerial:用来返回一个日期形式 Time函数:用来返回系统当前时间。 Tim

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论