《计算机VB学习第2章.ppt》由会员分享,可在线阅读,更多相关《计算机VB学习第2章.ppt(59页珍藏版)》请在三一办公上搜索。
1、Visual Basic程 序 设 计,山东外贸职业学院,E-mail:,信息管理系 柳淑花,第2章 数据与表达式,本章主要内容:2.1 VB的基本字符集和词汇2.2 VB的基本数据类型2.3 常量与变量2.4 运算符和表达式2.5 常用内部函数 本章小结 作业,退出,2.1 VB的基本字符集和词汇集,字符集 字符是构成程序设计语言的最小语法单位,VB的基本字符集包括:字母、数字、特殊符号和汉字。词汇集关键字:又称保留字,是系统应用的具有 固定意义的字母组合。如:print标识符:用户自定义的名字。包括:常量名、变量名、过程名等。,上一页,下一页,返回本章首页,2.1 VB的基本字符集和词汇集
2、,标识符的命名规则是:(1)必须以字母或汉字开头,后跟字母、数字和 下划线的组合;(2)不能包含空格和标点符号;(3)不得超过255个字符;(4)不得使用VB 的保留字;(5)在同一个作用域内,变量名必须是唯一的。如:x3,Age,计算机_07,是合法的标识符 x1=x2,print,张 三,是非法的标识符,上一页,下一页,返回本章首页,2.2 VB的基本数据类型,本节主要内容:字符串型 数值型 逻辑型 日期型 变体型 自定义类型,上一页,下一页,返回本章首页,1字符串型(String),字符型数据:是指一切可打印的字符和字符串,它是用双引号括起来的一串字符。一个西文字符、汉字都是一个字符,它
3、们在内存中都占两个字节。如:“12345”,“计算机班”,“”(空格串),“”(空串)字符型数据的默认值为:“”字符串的长度:是字符串中所包含的字符个数。注意:在VB中,字符编码采用Unicode编码(字符和 汉字均采用双字节存储)。,上一页,下一页,返回本章首页,在VB中有两种类型字符串:变长字符串 定长字符串 变长字符串的长度不确定,可以是0231个字符(约21亿)。定长字符串长度一定,最多不超过 216 个字符如:Dim S As String 变长字符串 Dim varname As String*8 定长字符串说明:在字符串中必须用两个连续的双引号来表示字符串 有一个双引号。如字符串
4、:abc“计算机”abc,在VB中表示为:abc计算机abc,上一页,下一页,返回本章首页,2数值型(Numeric),数值型数据一般分为整型和浮点型两类。整型数据又分为:整型(Integer)、长整型(Long)和字节型(Byte)实型数据又分为:单精度浮点数(Single)、双精 度浮点数(Double)和货币型数 据(Currency)数值型数据的默认值为:0 所有数值变量都可相互赋值。在将浮点数赋予整数之前,Visual Basic将浮点数的小数部分四舍五入到整数。,上一页,下一页,返回本章首页,数值型数据列表,上一页,下一页,返回本章首页,其他基本数据类型,上一页,下一页,返回本章首
5、页,3.逻辑型(Boolean),逻辑型数据只有两个值:真(True)和假(False),用2个字节存储,经常用来表示逻辑判断的结果。Boolean 的缺省值为 False。,说明:当把数值型数据转换为逻辑型数据时:0转换为False 非0转换为 True。反之:当把逻辑型数据转换为数值型时:False 转换为0 True 转换为-1。,上一页,下一页,返回本章首页,4.日期型数据(Date),用于存储Date 和 Time,表示的日期从公元100年1月1日9999年12月31日,时间范围为0:00:0023:59:59。,任何在字面上可以被认作日期的文本都可以赋值给日期变量,且日期文字必须用
6、符号“#”括起来。用8个字节存储,默认值为:0:00:00。如:#January 15,2002#,#1985-10-1 9:45:00 PM#都是合法的日期型数据。例如:Dim SomeDate As Date SomeDate=#1980-03-16#SomeDate=#3-6-07 13:20#SomeDate=#March 27,2007 1:20am#,上一页,下一页,返回本章首页,5.变体类型(Variant),Variant类型是一种特殊的、可以表示所有系统定义类型的数据类型。变体数据类型对数据的处理可以根据上下文的变化而变化,除了定长的string类型及用户自定义的数据类型之外
7、,可以处理任何类型的数据而不必进行数据类型的转换,如上所述的数值型、日期型、对象型、字符型的数据都可表示。,上一页,下一页,返回本章首页,Variant数据类型是VB对所有未定义的变量的缺省数据类型,能够存储所有类型的数据。例如:Dim SomeValue SomeValue=17 SomeValue=SomeValue-15 SomeValue=U&SomeValue Variant型数据占用16个字节的内存。,上一页,下一页,返回本章首页,6.用户自定义类型,除了上述数据类型外,在VB中,用户可以根据需要利用Type语句定义自己的数据类型,其格式如下:,Private|Public Typ
8、e 自定义类型名 数据类型元素 As 类型名 End Type,自定义类型相当于C 语言中的结构体,其中,数据类型元素名为自定义数据类型中的一个成员,类型名为前面讲述的基本类型名或自定义数据类型名。,上一页,下一页,返回本章首页,例如:定义一个有关职工信息的自定义类型,自定义类型定义好后,用户可以像使用标准数据类型一样使用自定义数据类型,如:Dim Diego As Employee 在过程中 Private Dona As Employee 在模块中使用自定义变量中的元素,类似于对象属性的操作:Diego.Name=”Diego”,Private Type EmployeeID As Int
9、egerName As String*20Salary As CurrencyEnd Type,上一页,下一页,返回本章首页,说明:(1)自定义类型必须在标准模块或窗体模块的声明段中声明,在标准模块中定义时默认为全局变量(Public)。在窗体模块或类模块的声明部分定义模块级用户自定义类型时,一定要加上Private关键字。(2)自定义类型的元素类型如果有字符串,则必须是定长字符串,即应该为:strName As String*常数(“常数”指明定长字符串的长度)自定义类型举例:见例1 li2_1.vbp,上一页,下一页,返回本章首页,2.3 常量与变量,本节主要内容:常量 变量,上一页,下一
10、页,返回本章首页,变量的说明 变量的作用域 变量的重名 变量的默认值 变量的隐式说明,1.常量,(1)文字常量 在程序代码中,以直接常量的形式给出的数据。根据使用的数据类型,文字常量分为:字符串常量,如:”Computer”数值常量,如:3.14,28,1.23E-3 逻辑(布尔)常量,如:True,False 日期型常量,如:#20 May 2008#,上一页,下一页,返回本章首页,(2)符号常量 用符号的形式表示常量称为“符号常量”。代表常量的符号称为“常量名”。符号常量与变量相似,它属于某一数据类型,并有一个常量名。符号常量必须先声明后使用,而且声明时要指定符号常量的值。在运行过程中,符
11、号常量的值不能再改变。常量名的命名规则与标识符的命名规则相同。,上一页,下一页,返回本章首页,声明符号常量的方法是:,Const As=例如:Const conMax As Integer=9 说明:中不能包含变量、函数(3)系统常量 VB系统定义的常量 如:vbRed,vbBlue vbMaxmized等,上一页,下一页,返回本章首页,2.变量,变量:程序运行过程中其值可以改变的量称为变量。(1)变量的说明 变量应该先声明后使用 声明变量就是给变量分配内存空间。声明变量的格式是:格式1:说明符 As,As,Public-全局变量 Private-局部变量 Dim-局部变量 Static-静态
12、变量,省略:为可变类型,上一页,下一页,返回本章首页,例如:dim strName as string*10 private dblNum as integer格式2:用类型说明符表示变量 例如:dim strName$private dblNum%public curWage将类型说明符放在变量名的尾部,可以表示不同的变量。%整型&长整型!单精度型#双精度型 货币型$字符串型。,上一页,下一页,返回本章首页,(2)变量的作用域,过程级变量(局部变量):局部变量:仅在说明它的过程中有效 格式:Dim|Static 变量名 As 类型名,说明:Dim过程执行完毕,变量消失,释放内存空间;(只在过
13、程执行期 间才存在)Static静态变量。程序启动时分配内存空间,程序结束时清除。(在整个应用程序运行期一直存在)模块级变量(窗体变量和标准模块变量):模块级变量:在定义该变量的模块内的所有过程内均 有效。该变量在窗体或标准模块通用声明段中说明 格式:Private|Dim 变量名 As 类型名,Private、Dim等价(一般用Private),上一页,下一页,返回本章首页,全局变量(应用程序级变量),全局变量:只能在窗体模块或标准模块的通用段 中说明,在工程内的所有过程中都有效(其 值可用于应用程序的所有过程)。格式:Public 变量名 As 类型名,说明:全局变量也是在启动时创建,程序
14、结束时被清除。访问本模块中定义的全局变量时,可直接使用变量名;访问其他模块中定义的全局变量时,必须在变量名前加“模块名.”;全局变量举例,见例2 li2_2.vbp,上一页,下一页,返回本章首页,(3)变量的重名,在同一作用域内,不能有同名的变量;不同过程中可以有同名的变量(静态变量也可),而且互不干扰;不同模块间可以有同名的全局变量,使用时要加模块名来区分;不同作用范围的变量重名时,有效范围小的变量会屏蔽有效范围大的变量;(直接使用为局部变量,全局变量应加模块名)模块级变量与过程级变量重名举例 见例题3:li2_3.vbp 全局变量与局部变量重名,见例题4:li2_4.vbp窗体属性、控件名
15、与变量重名,见例题5:li2_5.vbp,上一页,下一页,返回本章首页,(4)变量的默认值,一个变量在被声明之后、被首次赋值之前,变量取默认值。不同类型的变量,默认值不同:数值型变量0(或0.0)逻辑型变量False 日期时间型变量#0:00:00#变长字符串变量“”定长字符串变量“”变体类型变量Empty,上一页,下一页,返回本章首页,(5)变量的隐式说明,在默认状态下,VB中可以不进行变量声明,此时变量类型默认为变体类型,称为隐式声明,但是这样做可能由于变量名的误写而产生不良后果。强制显式声明变量的方法是:用Option Explicit语句“工具”菜单“选项”命令在“编辑器”选项卡中选择
16、“要求变量声明”,上一页,下一页,返回本章首页,作业:写出下列程序的运行结果,1、Private x As IntegerPrivate Sub Command1_Click()Static y As Integer Dim z As Integer n=10 z=n+z y=y+z x=x+z Label1.Caption=x Label2.Caption=y Label3.Caption=zEnd Sub,2、Private x As IntegerPrivate Sub Command1_Click()Static y As Integer Dim z As Integer n=10 z
17、=n+z y=y+z x=x+z Label1.Caption=Label1=&x Label2.Caption=Label2=&y Label3.Caption=Label3=&zEnd Sub,上一页,下一页,返回本章首页,上机实训:,实训内容:1、浮雕字的制作与图片的装载,效果见 sx2_1.vbp 2、单击窗体字符串居中显示,效果见 sx2_2.vbp 3、任意输入一个字号,字符串始终居中显 示,效果见 sx2_3.vbp,实训二 数据类型及常量、变量的应用,上一页,下一页,返回本章首页,2.4 运算符与表达式,本节主要内容:算术运算符 字符串运算符 关系运算符 逻辑运算符 日期时间运
18、算符 表达式,上一页,下一页,返回本章首页,程序中对数据的加工和处理,是依靠运算符实现的。运算符:就是表示某种运算的符号;操作数:被运算的对象称为操作数。在Visual Basic中运算符的类型有:算术运算符、字符串运算符、关系运算符、逻辑运算符、日期运算符表达式:由运算符将常量、变量、函数等联合构成的 有意义的式子称为表达式。表达式的值也有 相应的数据类型,2.4 运算符与表达式,上一页,下一页,返回本章首页,1.算术运算符,算术运算符用于数学计算,要求:参入运算的量是数值型,运算结果也是数值型。表中按照优先级别的高低列出了算术运算符。,算术运算符,上一页,下一页,返回本章首页,2.字符串运
19、算符,字符串运算符有“&”和“+”两个,见表:,字符串运算符,注意:在使用+作为字符串连接符时操作数必须为字符串,否则视具体情况会有不同结果。如:12&30 结果为1230 12+30 结果为42“12”&30 结果为1230“12”+30 结果为42“12”&“30”结果为1230“12”+“30”结果为1230,上一页,下一页,返回本章首页,3.关系运算符,关系运算符属于双目运算符,用来对两个表达式的值进行比较,比较的结果为逻辑值,即若关系成立则返回True,否则返回False。两个表达式中若有Null,则返回Null。在VB中用 1 表示True、用 0 表示False。下表列出了VB中
20、的关系运算符。,关系运算符,说明:,(1)like运算符:把一个字符串表达式与一个给定模式进行匹配,匹配成功返回结果true,否则返回结果false。模式中的匹配字符 字符串中相应的匹配内容?任何一个字符*任意多个字符或 0个字符#任意一个数字(0-9)多个字符 中的任何一个字符!多个字符 不包含在 中的任何一个字符说明:在 中,可以用由一个或多个字符组成的集合与字符串中的任一字符进行匹配,这个集合几乎 可以包括所有字符和数字。,上一页,下一页,返回本章首页,如:,Dim MyCheck 定义变量MyCheck=aBBBa Like a*a“BBB与*相匹配,返回结果True。MyCheck=
21、F Like A-Z“F与字符范围列表A-Z匹配,返回结果True。MyCheck=F Like!A-Z F与字符范围列表!A-Z不匹配,返回结果 False。,上一页,下一页,返回本章首页,MyCheck=a2a“Like a#a“数字与#匹配,返回结果True。MyCheck=“aM5b”Like“aL-P#!c-e“字母M与字符集合L-P匹配,字母b与字符集合!c-e匹配,最后返回结果True。MyCheck=BAT123khg Like B?T*字母A与?匹配,字符串123khg与*匹配,所以返回结果 True。,上一页,下一页,返回本章首页,(2)is 运算符,is 运算符比较两个对
22、象变量,返回结果为true或false。如果变量object1和objecct2两者引用相同的对象,则结果为true,否则结果为false。例:Dim mycheck Dim yobject1 As object Dim yobject2 As object set yobject1=Form set yobject2=Form mycheck=yobject1 is yobject2 True,上一页,下一页,返回本章首页,4.逻辑运算符,逻辑运算符的作用是将操作数进行逻辑运算,结果是逻辑值True 或False。逻辑运算符中,除Not为单目运算符外,其他都为双目运算符。表达式中有一个为 N
23、ull,则将返回 Null。,逻辑运算符(续),5.日期时间运算符,D型数据+/-N型数据 另一D型数据 如:#1/1/2007#+12-#1/13/2007#1/1/2007#+1.5-#1/2/2007 12:00:00 PM#小数点左侧的值表示Date 信息,小数点右侧的值则表示Time。午夜为0,正午为0.5。,上一页,下一页,返回本章首页,6.表达式,表达式的组成 表达式由变量、常量、运算符、函数和圆括号按一定的规则组成,表达式的运算结果的类型由参与运算的数据类型和运算符共同决定。表达式的书写规则(1)每个符号占1格,所有符号都必须并排写在同 一基准行上,不能出现上标和下标。(2)不
24、能按常规习惯省略的乘号*,如:2X要写成 2*X。(3)只能使用小括号(),且必须配对。(4)不能出现非法的字符,如。,上一页,下一页,返回本章首页,表达式的种类 根据表达式中运算符的类别可以将表达式分为:算术表达式 字符串表达式 日期表达式 关系表达式 逻辑表达式,上一页,下一页,返回本章首页,表达式中不同数据类型的转换,如果表达式中操作数具有不同的数据精度,则将较低精度转换为操作数中精度最高的数据精度,即按Integer、Long、Single、Double、Currency的顺序转换,且Long型数据和Single型数据进行运算时,结果总是Double型数据。运算符的优先级 当表达式中有
25、多种运算符共存时,按如下优先级的先后进行运算:算术运算符字符运算符关系运算符逻辑运算符,上一页,下一页,返回本章首页,2.5 常用内部函数,本节主要内容:数学运算函数 字符串函数 转换函数 日期和时间函数,上一页,下一页,返回本章首页,1.数学函数,随机函数的应用见例题6:li2_6.vbp,2.字符串函数,上一页,下一页,返回本章首页,字符串函数(续1),Mid函数的应用见例题7:li2_7.vbp,上一页,下一页,返回本章首页,字符串函数(续2),3.数据类型转换函数,求ASC码值 Asc 功能:用来求一个字符串首字符的ASC码值格式:Asc(string)说明:参数string可以是任何
26、有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。求ASC码字符Chr 功能:求一个ASC码值所对应的ASC码字符 格式:Chr(charcode)说明:参数charcode是一个用来识别某字符的 Long型数。charcode 的正常范围为 0 255。0 到 31 之间的数字与标准的非打印 ASCII 代码相同。例如,Chr(10)可以返回换行字符。,类型转换函数(续),上一页,下一页,返回本章首页,功能:是返回包含于字符串内的数字,字符串中是 一个适当类型的数值。格式:Val(string)如:,字符串转换为数值 Val,上一页,下一页,返回本章首页,功能:
27、是将一个数值表达式转换为一个字符串,且表达 式的类型不变。格式:Str(number)说明:当一数字转成字符串时,总会在前头保留一空位 来表示正负。如果 number 为正,返回的字符串 包含一前导空格暗示有一正号。,数值转换为字符串 Str,上一页,下一页,返回本章首页,4.日期和时间函数,时间日期函数的应用见例题8:li2_8.vbp,例题9:li2_9.vbp,第四章 小 结,1 运算符算术运算符:()*/Mod+-字符串运算符:&+关系运算符:=Like Is日期时间运算符:+-逻辑运算符:NotAndOr、XorEqvImp2 表达式运算符的优先级:算术字符串关系逻辑注意:如果表达式
28、中操作数具有不同的数据精度,则将较低精度转换为操作数中精度最高的数据精度。,上一页,下一页,返回本章首页,3 常用内部函数,(1)数学运算函数(2)字符串函数(3)转换函数(4)日期和时间函数,上一页,下一页,返回本章首页,作 业,1、编程实现函数 InStr 的功能 instrf.vbp2、编程实现函数 StrReverse的功能 StrReversef.vbp,上一页,返回本章首页,下一页,上机实训:,实训内容:1、把一个有偶数个字符的文本框中的内容从头尾至中间依次各取字符,组成一个新的字符串str2,并输出。如:str1=“123456”,则str2=“162534”,效果见 sx3_1.vbp 2、随机产生一个三位正整数,然后逆序输出,产生的数与逆序的数同时显示。如:产生246,输出是:246 642,效果见 sx3_2.vbp 3、编程实现函数 StrComp 的功能,效 果见 sx3_3.vbp,实训三 常用内部函数,上一页,返回本章首页,退出,