1、主页主页 常量、变量、函数及表示式常量、变量、函数及表示式是组成是组成VBVB应用程序基本元素,应用程序基本元素,也是程序设计主要基础知识。也是程序设计主要基础知识。学习和熟悉掌握这些元素,对学习和熟悉掌握这些元素,对以后程序设计是十分主要。以后程序设计是十分主要。第1页主页主页第第4 4章章 程序设计基础程序设计基础 程序中大部分实际工作是采取程序代码来处理程序中大部分实际工作是采取程序代码来处理 任何一门程序设计语言都有一套严格编程要求任何一门程序设计语言都有一套严格编程要求 本章主要内容本章主要内容数据类型数据类型常量与变量常量与变量变量作用域变量作用域惯用内部函数惯用内部函数字符处理与
2、字符串函数字符处理与字符串函数运算符和表示式运算符和表示式第2页主页主页 2.1 2.1 数据类型数据类型 在在使使用用计计算算机机来来处处理理数数据据时时,会会碰碰到到各各种种不不一一样样类类型型数数据据。比比如如,一一个个人人姓姓名名是是由由一一串串文文本本(字字符符)组组成成,成成绩绩、年年纪纪和和体体重重都是一个数值,而是否大学毕业则是一个逻辑值,等等。都是一个数值,而是否大学毕业则是一个逻辑值,等等。为了更加好地处理各种各样数据,为了更加好地处理各种各样数据,VBVB定义了各种数据类型定义了各种数据类型 数值型数值型 数据类型数据类型 字符型字符型 逻辑型逻辑型 日期型日期型 对象型
3、对象型 变体型变体型整数整数:整型整型/长整型长整型字节型字节型浮点型浮点型:单单/双精度双精度货币型货币型第3页主页主页4.1.1 4.1.1 字符型数据字符型数据 字符串是用双引号括起来一串字符串是用双引号括起来一串ASCII(标准和扩充标准和扩充)字符。字符。比如比如:”Canton”、”1+2=?”、”GoodMorning”等等 “”称为起止界限符。称为起止界限符。字符串长度。字符串长度。分为分为:变长字符串变长字符串(长度不固定长度不固定,0-2,0-23131)定长字符串定长字符串(长度固定,长度固定,221616)长度为长度为0 0(不含任何字符)字符串称为空字符串(不含任何字
4、符)字符串称为空字符串 比如:比如:Dim a As String a是是不定长字符串不定长字符串 Dim b As String*4 b是是定长字符串定长字符串(4个字符个字符)a=”VB”a值为值为2个字符个字符”VB”a=”Visual Basic”a值为值为12个字符个字符”Visual Basic”b=”VB”b值为值为4个字符个字符”VB ”(后面有后面有2个空格个空格)b=”Visual Basic”b值为值为4个字符个字符”Visu”第4页主页主页 4.1.2 4.1.2 数值型数据数值型数据 (1)(1)整型整型(Integer)(Integer)和长整型和长整型(Long)
5、(Long)不带小数部分数,表示正整数、负整数和零不带小数部分数,表示正整数、负整数和零 整型数(整型数(2 2字节)字节):-32768-327683276732767 长整型数(长整型数(4 4字节):字节):-2147483648-214748364821474836472147483647 (2)(2)字节型字节型(Byte)(Byte)字节型数能够字节型数能够1 1个字节表示无符号整数个字节表示无符号整数 0 0255255(3)(3)单精度型单精度型(Single)(Single)和双精度型和双精度型(Double)(Double)浮点数。表示带有小数部分数浮点数。表示带有小数部分
6、数 表示数范围大,但有误差。表示数范围大,但有误差。如超出某个表示范围,则用科学记数法如超出某个表示范围,则用科学记数法 比如:比如:4.53E8(4.53104.53E8(4.53108 8),8.173E-148.173E-14,3.14D233.14D23(4)(4)货币型货币型(Currency)(Currency)专门为处理货币而设计数据类型专门为处理货币而设计数据类型 它可最多保留小数点右边它可最多保留小数点右边4 4位和小数点左边位和小数点左边1515位位第5页主页主页4.1.34.1.3其它类型数据其它类型数据 (1)逻辑型数据只有逻辑型数据只有True(真真)和和False(
7、假假)两个值两个值 (2)日期型数据用两个日期型数据用两个“#”符号把日期和时间值括起来符号把日期和时间值括起来 如:如:#08/20/#、#-08-20#(3)变体型变体型(Variant)数据是一个可变数据类型,能够存放任数据是一个可变数据类型,能够存放任何类型数据,何类型数据,VB会自动完成必要转换会自动完成必要转换 不尤其说明时,不尤其说明时,VB会自动将该变量默认为会自动将该变量默认为Variant型变量型变量 例:例:Temp=“22”字符串字符串 Temp=Temp-1 数值数值 Temp=#01/01/#日期日期第6页主页主页4.1.4 4.1.4 用户定义数据类型用户定义数据
8、类型 用户可利用用户可利用Type语句定义自己数据类型。格式以下:语句定义自己数据类型。格式以下:Type 数据类型名数据类型名 数据类型元素名数据类型元素名 As 类型名类型名 数据类型元素名数据类型元素名 As 类型名类型名 End type 其中其中“数据类型名数据类型名”是要定义数据类型名字,其命名规则与变是要定义数据类型名字,其命名规则与变量命名规则相同;量命名规则相同;“数据类型元素名数据类型元素名”遵照一样规则,且不能是遵照一样规则,且不能是数组名;数组名;“类型名类型名”是能够是任何基本数据类型,也能够是用户是能够是任何基本数据类型,也能够是用户定义类型定义类型第7页主页主页4
9、.1.4 4.1.4 用户定义数据类型用户定义数据类型 使用使用Type语句时,应注意以下几点:语句时,应注意以下几点:(1)统计类型中元素能够是变长字符串,也能够是定长字符串。统计类型中元素能够是变长字符串,也能够是定长字符串。当在随机文件中使用时;必须使用定长字符串,其长度用类型名当在随机文件中使用时;必须使用定长字符串,其长度用类型名称加上一个星号和常数指明。格式以下:称加上一个星号和常数指明。格式以下:String*常数常数 (2)统计类型定义必须放在模块(包含标准模块和窗体模块)统计类型定义必须放在模块(包含标准模块和窗体模块)申明部分,在使用统计类型前必须用申明部分,在使用统计类型
10、前必须用Type语句加以定义语句加以定义 (3)在统计类型中不能使用动态数组在统计类型中不能使用动态数组 (4)在随机文件操作中,统计类型有主要作用在随机文件操作中,统计类型有主要作用*只是定义数据类型,不是定义变量只是定义数据类型,不是定义变量第8页主页主页 4.2 4.2 常量与变量常量与变量 4.2.1 4.2.1 常量常量 在程序运行期间其值一直保持不变量在程序运行期间其值一直保持不变量 文字常量文字常量:在程序代码中直接给出字符串和数值。:在程序代码中直接给出字符串和数值。比如:比如:123,-263,”Visual Basic”,”12.57”等等 符号常量:符号常量:在程序中用符
11、号表示常量。在程序中用符号表示常量。格式:格式:PublicPrivate Const 常量名常量名 As 数据类型数据类型=表示式表示式 比如:比如:Const PI=3.14159 As Single 其其中中“常常量量名名”是是一一个个名名字字,按按变变量量组组成成规规则则命命名名,可可加加类类型型说说明明符符。“表表示示式式”由由文文字字常常量量、算算术术运运算算符符(指指数数运运算算符符“”除除外外)、逻逻辑辑运运算算符符组组成成,也也能能够够使使用用诸诸如如“Error On input”之之类类字字符符串串,但但不不能能使使用用字字符符串串连连接接运运算算符符、变变量量及及用用户
12、定义函数或内部函数户定义函数或内部函数第9页主页主页 4.2.2 4.2.2 变量变量 变量是在程序运行期间其值能够发生改变量变量是在程序运行期间其值能够发生改变量 1.变量命名规则变量命名规则 变量是一个名字,给变量命名时应恪守以下规则变量是一个名字,给变量命名时应恪守以下规则 (1)名字只能由字母、数字和下划线组成;名字只能由字母、数字和下划线组成;(2)名字第一个字符必须是英文字母,最终一个字符能够是类名字第一个字符必须是英文字母,最终一个字符能够是类型说明符;型说明符;(3)名字有效字符为名字有效字符为255个;个;(4)名字不能用名字不能用Visual Basic保留字作变量名,但能
13、够把保留字保留字作变量名,但能够把保留字嵌入变量名中;同时变量名也不能是末尾带有类型说明符保留嵌入变量名中;同时变量名也不能是末尾带有类型说明符保留字字第10页主页主页 4.2.2 4.2.2 变量变量 2.变量类型和定义变量类型和定义 任任何何变变量量都都属属于于一一定定数数据据类类型型,包包含含基基本本数数据据类类型型和和用用户户定定义义数数据据类类型型。在在Visual Basic中中,能能够够用用下下面面几几个个方方式式来来要要求求一个变量类型一个变量类型 (1)用类型说明符来标识用类型说明符来标识 把类型说明符放在变量尾部,能够标识不一样变量类型。把类型说明符放在变量尾部,能够标识不
14、一样变量类型。其中其中%表示长整形;!表示单精度型,表示长整形;!表示单精度型,#表示双精度型;表示双精度型;表示表示货币型;货币型;$表示字符串型。表示字符串型。(2)定义变量时指定其类型。定义变量时指定其类型。(3)用用Def Type语句定义语句定义 (4)用类型说明符定义变量,在使用时可省略类型说明符用类型说明符定义变量,在使用时可省略类型说明符第11页主页主页 4.2.2 4.2.2 变量变量 2.变体类型变量(变体类型变量(Variant变量)变量)(1)Variant变量定义变量定义 Variant变量能够用普通数据类型变量格式定义,也可用默认定义。变量能够用普通数据类型变量格式
15、定义,也可用默认定义。(2)Variant变量定义变量时指定其类型。变量定义变量时指定其类型。在对存放字符串在对存放字符串Variant变量进行操作时可能会产生歧义。当用变量进行操作时可能会产生歧义。当用“+”运算运算符对两个符对两个Variant变量进行运算时。假如两个变量都是数值,则执行数值相变量进行运算时。假如两个变量都是数值,则执行数值相加运算;假如两个变量都是字符串,则执行字符串连接操作加运算;假如两个变量都是字符串,则执行字符串连接操作 (3)Variant变量用变量用Def Type语句定义语句定义 ariant变量在被赋值前为空值(内部表示为变量在被赋值前为空值(内部表示为Em
16、pty或或0),它不一样于数值),它不一样于数值0,不一样于空字符串(,不一样于空字符串(“”),也不一样于),也不一样于Null。经过。经过IsEmpty函数能够测函数能够测试一个变量自建立以来是否被赋过值试一个变量自建立以来是否被赋过值 (4)Variant变量中变量中Null值值 Variant变量能够取一个特殊值变量能够取一个特殊值Null,该值通常在数据库应用程序中用来指,该值通常在数据库应用程序中用来指出未完成或遗漏数据。出未完成或遗漏数据。第12页主页主页 (1)“值可变值可变”:当将某个数据存放到一个变量时,就把变量:当将某个数据存放到一个变量时,就把变量中原有值中原有值“冲冲
17、”掉,换成新值。掉,换成新值。比如,以下比如,以下2个赋值语句:个赋值语句:a=3 a=8 同一变量在不一样时刻能够取不一样值同一变量在不一样时刻能够取不一样值 (2)“取之不尽取之不尽”:在运算过程中,假如没有改变该变量值,:在运算过程中,假如没有改变该变量值,那么,不论使用变量值进行多少次运算,其值一直保持不变。那么,不论使用变量值进行多少次运算,其值一直保持不变。比如比如 x=5 a=3+x x值一直保持为值一直保持为5 b=x*x 4*x 3.3.变量两个主要特点变量两个主要特点第13页主页主页 变量作用域变量作用域(空间空间)和生存期和生存期(时间时间)4.3.1 代码模块概念代码模
18、块概念 应用程序应用程序工程文件工程文件(.vbp)窗体模块窗体模块文件文件(.frm)Sub过程过程Function过程过程事件事件过程过程申明申明部分部分类模块类模块文件文件(.cls)标准模块标准模块文件文件(.bas)Sub过程过程Function过程过程申明申明部分部分Sub Main过程过程 4.3 变量作用域变量作用域应用程序包含应用程序包含窗体文件窗体文件(.frm)、模块文件、模块文件(.bas)和类模块和类模块(.cls)第14页主页主页 局部变量、模块级变量和全局变量局部变量、模块级变量和全局变量 1.局部变量局部变量 在一个过程内部用在一个过程内部用Dim或或Stati
19、c申明变量称为局部变量。只能申明变量称为局部变量。只能在本过程中有效。在一个窗体中,不一样过程中定义局部变量能够在本过程中有效。在一个窗体中,不一样过程中定义局部变量能够同名。如需要,可经过同名。如需要,可经过“过程名过程名.变量名变量名”形式分别引用不一样过形式分别引用不一样过程中相同名字变量。程中相同名字变量。比如,在一个窗体中定义比如,在一个窗体中定义 Private Sub Command1_Click()Dim Sum As Integer Sum=1 .End Sub Private Sub Command2_Click()Dim Sum As Single Sum=1.5 .En
20、d Sub 这两个同名变量这两个同名变量Sum没有任何联络没有任何联络 4.3.2 4.3.2 变量作用域变量作用域它们互不相识它们互不相识第15页主页主页 模块级变量能够在一个窗体不一样过程中使用模块级变量能够在一个窗体不一样过程中使用 在窗体模块申明部分中申明该变量在窗体模块申明部分中申明该变量 Dim Dim n As Integer n As Integer Private Sub Command1_Click()Private Sub Command1_Click()n=1 n=1 End Sub End Sub Private Sub Command2_Click()Private
21、 Sub Command2_Click()n=n+1 n=n+1 End Sub End Sub 假如用假如用Private或或Dim来申明,则该变量只能在本窗体来申明,则该变量只能在本窗体(或本或本模块模块)中有效,在其它窗体或模块中不能引用该变量。中有效,在其它窗体或模块中不能引用该变量。以以Public申明变量,允许在其它窗体和模块中引用申明变量,允许在其它窗体和模块中引用 2.2.模块级变量模块级变量第16页主页主页 全局变量也称全程变量,作用域最大。能够在工程任何一全局变量也称全程变量,作用域最大。能够在工程任何一个过程、模块中使用。个过程、模块中使用。与模块变量类似,全局变量要在标
22、准模块文件与模块变量类似,全局变量要在标准模块文件(.bas)中申中申明部分申明。用明部分申明。用Global或或Public语句来申明。全局变量只能在标语句来申明。全局变量只能在标准模块中申明,不能在过程或窗体模块中申明。准模块中申明,不能在过程或窗体模块中申明。格式:格式:Global 变量名变量名 As 数据类型数据类型 Public 变量名变量名 As 数据类型数据类型 3.3.全局变量全局变量第17页主页主页 4.4.三种变量作用域三种变量作用域名称名称作用域作用域申明位置使用语句使用语句局部局部变量变量过程过程过程中过程中Dim或或Static模块模块变量变量窗体模块或标准模窗体模
23、块或标准模块块模块申明部分Dim或或Pravite全局全局变量变量整个应用程序整个应用程序标准模块申明部分Public或或Global第18页主页主页 用Dim和和Public(或(或Global)语句能够定义局部变量、模块变量和全局语句能够定义局部变量、模块变量和全局变量。对于局部变量,也能够变量。对于局部变量,也能够Dim(或(或Static)定义,而在需要时直接给出变定义,而在需要时直接给出变量名。变量类型能够依据类型说明符(量名。变量类型能够依据类型说明符(%、&、!、!、#、$、)来标识。假如)来标识。假如没有使用类型说明符标识,则没有使用类型说明符标识,则Visual Basic把
24、该变量指定为变体数据类型。把该变量指定为变体数据类型。默认申明普通只适合用于局部变量,模块变量和全局变量必须在代码窗默认申明普通只适合用于局部变量,模块变量和全局变量必须在代码窗口中用口中用Dim和和Public语句显式申明。语句显式申明。假如要假如要强制强制用户对用户对变量进行显式申明变量进行显式申明,则能够经过菜单中工具,则能够经过菜单中工具 选项选项编辑器选项卡中编辑器选项卡中“要求变量申明要求变量申明”选项进行选择。这么设置后,每次新建文选项进行选择。这么设置后,每次新建文件时,件时,Visual Basic会把语句会把语句Option Explicit(选择显式)自动加到模块变量(选
25、择显式)自动加到模块变量或全局变量申明部分。用户也可直接输入这条语句。这种情况下,假如运行或全局变量申明部分。用户也可直接输入这条语句。这种情况下,假如运行含有默认申明变量程序时,含有默认申明变量程序时,Visual Basic会显示一个信息框,会显示一个信息框,“变量未定义变量未定义”。3.3.默认申明默认申明第19页主页主页 生存期,即变量能够保持其值时间生存期,即变量能够保持其值时间 动态变量动态变量和和静态变量静态变量 1.动态变量动态变量 程序运行进入变量所在过程时,才为变量分配内存单元,退程序运行进入变量所在过程时,才为变量分配内存单元,退出过程时,该变量占用内存单元自动释放,其值
26、消失。当再次进出过程时,该变量占用内存单元自动释放,其值消失。当再次进入该过程时,全部动态变量将重新初始化。入该过程时,全部动态变量将重新初始化。使用使用DimDim关键字关键字在过程中申明局部变量属于动态变量在过程中申明局部变量属于动态变量 2.静态变量静态变量 退出该过程时变量值被保留,即变量所占内存单元没有释放。退出该过程时变量值被保留,即变量所占内存单元没有释放。当以后再次进入该过程时,原来变量值能够继续使用当以后再次进入该过程时,原来变量值能够继续使用 使用使用Static关键字关键字在过程中申明局部变量属于静态变量在过程中申明局部变量属于静态变量 4.3.3 4.3.3 变量生存期
27、变量生存期 Private Sub Dim a As Integer a是动态变量是动态变量 Static b As Integer b是静态变量是静态变量 x=a+1 每次进入过程时,每次进入过程时,a值为值为0 y=b+1 每次进入过程时,每次进入过程时,b保持上次值保持上次值 End Sub第20页主页主页用用Static Sub对过程对过程Subtest进行定义,所以该过程中局部变量进行定义,所以该过程中局部变量t为静态变量为静态变量Static Sub subtest()Dim t As Integer t为静态变量为静态变量 t=2*t+1 Print tEnd SubPrivat
28、e Sub Command1_Click()Call subtest 调用子过程调用子过程subtestEnd SubPrivate Sub Form_Load()End Sub将将Static Sub 改为改为Private Sub再运行。再运行。例例4.14.1 Static Sub Static Sub语句示例语句示例第21页主页主页 内部函数是由内部函数是由VB系统提供系统提供 函数调用普通格式为:函数调用普通格式为:函数名函数名(参数参数1,参数,参数2,)返回函数值返回函数值 比如:比如:y=Sqr(289)Sqr是内部函数名,是内部函数名,289为参数,运行时该语句调用内部为参数
29、,运行时该语句调用内部函数函数Sqr来求来求289平方根,其计算结果由系统返回给变量平方根,其计算结果由系统返回给变量y VB内部函数大致上分为四大类:数学函数,字符串函数,内部函数大致上分为四大类:数学函数,字符串函数,日期与时间函数和转换函数。日期与时间函数和转换函数。4.4 4.4 惯用内部函数惯用内部函数第22页主页主页Hex$函数能够把一个十进制数转换为十六进制数函数能够把一个十进制数转换为十六进制数Oct$函数能够把一个十进制数转换为八进制数函数能够把一个十进制数转换为八进制数4.4.2 4.4.2 数值转换函数数值转换函数 第23页主页主页 Asc(字符串字符串):返回:返回“字
30、符串字符串”中第一个字符中第一个字符ASCII码。码。Chr$(表示式表示式):把:把“表示式表示式”值转换为对应值转换为对应ASCII码。码。Val(字符串字符串):把:把“字符串字符串”转换为数值。转换为数值。Str$(数值表示式数值表示式):把:把“数值表示式数值表示式”值转换为一个字符串。值转换为一个字符串。Cint(X):把:把X小数部分四舍五入,转换为整数。小数部分四舍五入,转换为整数。Ccur(X):把:把X值转换为货币类型值。小数部分最多保留值转换为货币类型值。小数部分最多保留4位,且自动四舍五位,且自动四舍五入。入。CDbl(X):把:把X值转换为双精度数。值转换为双精度数。
31、CLng(X):把:把X小数部分四舍五入,转换为长整型数。小数部分四舍五入,转换为长整型数。CSng(X):把:把X值转换为单精度数。值转换为单精度数。CVar(X):把:把X值转换为变体类型值。值转换为变体类型值。4.4.3 4.4.3 类型转换函数类型转换函数 第24页主页主页 转换函数用于数据类型转换转换函数用于数据类型转换 说明:说明:Val函数将数字字符串转换为数值型数字时,会自动将字符串中函数将数字字符串转换为数值型数字时,会自动将字符串中空格去掉,并依据字符串中排列在前面数值常量来定值,比如:空格去掉,并依据字符串中排列在前面数值常量来定值,比如:Val(A12)值为值为 0 V
32、al(12A12)值为值为 12 Val(1.2e2)值为值为 120 使用转换函数示例使用转换函数示例 Private Sub Form_Click()x=123 y=123 a=Chr$(Asc(x)+5)b=Str$(Val(x)+5)c=Val(Str(y)+5)Print a,b,c End Sub 运行程序后单击窗体,输出结果是什么运行程序后单击窗体,输出结果是什么?类型转换函数类型转换函数想一想想一想6 128 1235转换函数例转换函数例思索题思索题第25页主页主页 Sin(X):返回自变量:返回自变量X正弦值。正弦值。Cos(X):返回自变量:返回自变量X余弦值。余弦值。Ta
33、n(X):返回自变量:返回自变量X正切值。正切值。Atn(X):返回自变量:返回自变量X反正切值。反正切值。*1度度=/180=3.14159/180(弧度)(弧度)4.4.4 4.4.4 三角函数三角函数 第26页主页主页4.4.5 4.4.5 绝对值函数(绝对值函数(Abs)Abs(X):返回自变量:返回自变量X绝对值。绝对值。4.4.6 4.4.6 符号函数(符号函数(Sgn)Sgn(X):返回自变量:返回自变量X符号。符号。-1,0,14.4.7 4.4.7 平方根函数(平方根函数(Sqr)Sqr(X):返回自变量:返回自变量X平方根,平方根,X必须大于或等于必须大于或等于04.4.8
34、 4.4.8 指数函数(指数函数(Exp)Exp(X):返回以:返回以e为底,以为底,以X为指数值,即为指数值,即eX。Log(X):返回自变量:返回自变量X自然对数(以自然对数(以e为底)。为底)。lg(x)=(ln(x)/(ln(10)4.4.5 4.4.5 内部函数内部函数 第27页主页主页4.4.9 4.4.9 日期函数(日期函数(Abs)Day(Now):返回当前日期。:返回当前日期。WeekDay(Now):返回当前星期。:返回当前星期。Month(Now):返回当前月份。:返回当前月份。Year(Now):返回当前年份。:返回当前年份。4.4.10 4.4.10 时间函数(时间函
35、数(Sgn)Hour(Now):返回小时(:返回小时(0-23)。)。Minute(Now):返回分钟(:返回分钟(0-59)。)。Second(Now):返回秒(:返回秒(0-59)。)。*可经过马上窗口输入命令检验函数可经过马上窗口输入命令检验函数4.4.9 4.4.9 日期、时间函数日期、时间函数 第28页主页主页4.4.11 4.4.11 随机函数(随机函数(RndRnd)随机函数Rnd可以模拟自然界中各种随机现象。它可产生一个(0,1)随机数。在VB中,有一个称为随机数生成器随机数生成程序,能产生一个随机数序列,用户每次调用Rnd即可得到这个随机数序列中一个。使用Randomize(
36、x)语句可认为随机数生成器指定不一样初值或者称为随机数序列“种子”,这么可以得到不一样随机数序列。Rnd通常与Int函数配合使用 生成a,b区间范围内随机整数,可以采取 Int(b-a+1)*Rnd+a)例如 Int(4*Rnd+1)可以产生14之间(含1和4)随机整数。可以是1,2,3或4,这由VB运行时随机给定。第29页主页主页编写窗体单击事件过程代码以下:编写窗体单击事件过程代码以下:Private Sub Form_Click()Dim a As Integer,b As Integer,c As Integer Randomize 初始化随机数生成器初始化随机数生成器 a=Int(9
37、0*Rnd+10)产生产生10,99区间内随机整数区间内随机整数 b=Int(90*Rnd+10)c=a+b 求两数之和求两数之和 Print 产生两个随机数产生两个随机数:;a,b Print 和数和数:;c End Sub运行程序后单击窗体,输出结果是:运行程序后单击窗体,输出结果是:产生两个随机数:产生两个随机数:56 71 和数:和数:127例例4.2 经过随机函数产生经过随机函数产生2个两位正整数,求这个两位正整数,求这2个数个数 之和并显示出来之和并显示出来 再次运行程序,单击窗体后输再次运行程序,单击窗体后输出另一组结果是:出另一组结果是:产生两个随机数:产生两个随机数:18 3
38、7 和数:和数:55第30页主页主页 字符串函数大都以字符串函数大都以“$”结尾,表明函数返回值为字符串结尾,表明函数返回值为字符串 4.5.1 4.5.1 删除空白字符串函数删除空白字符串函数 LTrim$(字符串字符串):去掉字符串左边空白字符。:去掉字符串左边空白字符。RTrim$(字符串字符串):去掉字符串右边空白字符。:去掉字符串右边空白字符。Trim$(字符串字符串):去掉字符串左、右两边空白字符。:去掉字符串左、右两边空白字符。4.5.2 4.5.2 字符串截取函数字符串截取函数 Left$(字符串字符串,n):返回:返回“字符串字符串”前前n个字符。个字符。Right$(字符串
39、字符串,n):返回:返回“字符串字符串”后后n个字符。个字符。Mid$(字符串字符串,p,n):从位置:从位置p开始取字符串开始取字符串n个字符。个字符。示例:示例:Mid(“ABCDEG”,3,2)结果为结果为”CD”若省略若省略n,则得到是从,则得到是从P开始往后全部字符,如开始往后全部字符,如 Mid(“ABCDE”,2)结果为结果为 “BCDE”4.54.5 字符串函数字符串函数第31页主页主页 字符串函数大都以字符串函数大都以“$”结尾,表明函数返回值为字符串结尾,表明函数返回值为字符串 4.5.3 4.5.3 字符串长度测试函数字符串长度测试函数 Len(字符串字符串)Len(变量
40、名变量名)用用Len函数可测字符串长度,也可测变量存放空间,它自变量能够是函数可测字符串长度,也可测变量存放空间,它自变量能够是字符串也能够是变量名。字符串也能够是变量名。4.5.4 4.5.4 String$函数函数 String$(n,ASCII码码)String$(n,字符串字符串)返回返回n个指定字符组成字符串。个指定字符组成字符串。4.54.5 字符串函数字符串函数第32页主页主页4.5.5 4.5.5 空格函数空格函数 Space$(n)Space$(n)返回返回n n个空格个空格4.5.6 4.5.6 字符串匹配函数字符串匹配函数 InStr(f,InStr(f,字符串字符串1,
41、1,字符串字符串2,n)2,n)在在“字符串字符串1”中查找中查找“字符串字符串2”,假如找到了则返回,假如找到了则返回“字符串字符串2”第一字符在第一字符在“字符串字符串1”中位置。中位置。“字符串字符串1”第一个字符位置为第一个字符位置为1。f表示开始搜索位置表示开始搜索位置(默认值为默认值为1),n表示比较方式,若表示比较方式,若n为为0(默认默认),表示区分大小写;若,表示区分大小写;若n为为1,则不分大小写。,则不分大小写。比如比如 Instr(3,Instr(3,”A12a34A56A12a34A56”,”A A”)结果为结果为 7 7 Instr(3,Instr(3,”A12a3
42、4A56A12a34A56”,”A A”,1,1)结果为结果为 4 4 Instr(Instr(”A12a34A56A12a34A56”,”A A”)结果为结果为 1 14.54.5 字符串函数字符串函数第33页主页主页4.5.7 4.5.7 字母大小写转换字母大小写转换 Ucase$(字符串字符串)把把“字符串字符串”中小写字母转换为大写字母中小写字母转换为大写字母 Lcase$(字符串字符串)把把“字符串字符串”中大写字母转换为小写字母中大写字母转换为小写字母4.5.8 4.5.8 插入字符串语句插入字符串语句Mid$Mid$(字符串字符串,位置位置,L)=子字符串子字符串 把把“字符串字
43、符串”“位置位置”开始字符用开始字符用“子字符串子字符串”代替。假如代替。假如含有含有L自变量,则替换内容是自变量,则替换内容是“子字符串子字符串”左边左边L个字符。个字符。“位位置置”和和L均为长整型数均为长整型数4.54.5 字符串函数字符串函数第34页主页主页 先从字符串先从字符串a中找出某个指定字符中找出某个指定字符(本例为空格本例为空格),再以此,再以此字符为界拆分成两个字符串。编写窗体单击过程代码以下:字符为界拆分成两个字符串。编写窗体单击过程代码以下:Private Sub Form_Click()Dim a As String,b As String,c As String,n
44、 As Integer a=VisualBasic 表示空格表示空格 n=InStr(a,)查找空格位置查找空格位置 b=Left(a,n-1)取左边部分取左边部分 c=Mid(a,n+1)取右边部分取右边部分 Print b 显示左边部分显示左边部分 Print c 显示右边部分显示右边部分 End Sub 程序运行后单击窗体,输出结果是:程序运行后单击窗体,输出结果是:Visual Basic例例4.34.3 使用字符串函数示例使用字符串函数示例第35页主页主页 Private Sub Form_Click()Dim a As String,b As String,c As String,
45、n As Integer a=“VisualBasic”表示空格表示空格 n=InStr(a,“”)查找空格位置查找空格位置 b=Left(a,n-1)取左边部分取左边部分 c=Right(a,_)取右边部分取右边部分 Print b 显示左边部分显示左边部分 Print c 显示右边部分显示右边部分 End Sub 程序运行后单击窗体,输出结果是:程序运行后单击窗体,输出结果是:Visual Basic 若用若用 RightRight函数来代替函数来代替 MidMid函数函数,应怎样改动?应怎样改动?想一想想一想思索题思索题A.n B.Len(a)-n C.Len(a)B第36页主页主页 五
46、类表示式:五类表示式:算术表示式算术表示式、字符串表示式字符串表示式、日期表示式日期表示式、关系表示式关系表示式和和逻逻辑表示式辑表示式 1.算术表示式:算术表示式:运算符及其优先级:运算符及其优先级:(乘方乘方)-(取负取负)*/(整数除法)(整数除法)Mod+-&(连接)(连接)示例:示例:5*x10+x/6 x(1/3)15 Mod 6 (1)幂运算时,当指数是一个表示式时,必须加上括号。幂运算时,当指数是一个表示式时,必须加上括号。(2)整除操作数普通为整型值,当操作数带有小数时,首先将其四舍五入为整数整除操作数普通为整型值,当操作数带有小数时,首先将其四舍五入为整数型数或长整型数,然
47、后进行整除运算,计算结果取整,不进行舍入处理。型数或长整型数,然后进行整除运算,计算结果取整,不进行舍入处理。(3)算术运算算术运算“+”也能够用做字符串连接符,能够把两个字符串连接在一起,也能够用做字符串连接符,能够把两个字符串连接在一起,生成一个较长字符串。生成一个较长字符串。(4)取模运算用来求余数,其结果为第一个操作数整除第二个操作数所得余数。取模运算用来求余数,其结果为第一个操作数整除第二个操作数所得余数。4.6 4.6 运算符与表示式运算符与表示式结果?结果?第37页主页主页2.字符串表示式:字符串表示式:运算符有两个:运算符有两个:&和和+”计算机计算机”&”网络网络”结果为结果
48、为”计算机网络计算机网络”3.日期表示式日期表示式:#8/8/#-#6/3/#结果为结果为 66#12/1/#-32 结果为结果为#10/30/#4.6 4.6 运算符与表示式运算符与表示式第38页主页主页4.关系运算符关系运算符 关系运算符又称比较运算符,用来对两个表示式值进行比较,关系运算符又称比较运算符,用来对两个表示式值进行比较,比较结果是一个逻辑值,即比较结果是一个逻辑值,即True 或或False。Visual Basic提供提供了了8个关系运算符,相等(个关系运算符,相等(=)、不相等()、不相等(或或)、小于)、小于()、小于等于()、小于等于(=)、比)、比较样式(较样式(L
49、ike)和比较对像变量()和比较对像变量(Is)5.逻辑运算符逻辑运算符 逻辑运算符也称布尔运算符。用逻辑运算符连接两个或逻辑运算符也称布尔运算符。用逻辑运算符连接两个或多个关系式,组成一个布尔表示式。多个关系式,组成一个布尔表示式。Visual Basic提供了提供了6个个逻辑运算符,非(逻辑运算符,非(Not)、与()、与(And)、或(、或(Or)、异或、异或(Xor)、等价(、等价(Eqv)、蕴涵(、蕴涵(Imp)4.6 4.6 运算符与表示式运算符与表示式第39页主页主页6.表示式执行次序表示式执行次序 一个表示式可能含有各种运算,计算机按一定次序对表示式一个表示式可能含有各种运算,
50、计算机按一定次序对表示式求值。普通次序:求值。普通次序:(1)首先进行函数运算。首先进行函数运算。(2)接着进行算术运算。其次序为:接着进行算术运算。其次序为:(幂幂)-(取负取负)*/(整除)(整除)Mod(取余)(取余)+-&(连接)(连接)(3)然后进行关系运算(然后进行关系运算(=、=)。)。(4)然后进行逻辑运算,次序为:然后进行逻辑运算,次序为:Not And OrXor Eqv Imp 4.6 4.6 运算符与表示式运算符与表示式第40页主页主页 1+2*14 Mod 17 6/2=?求出以下表示式值求出以下表示式值想一想想一想 1.按运算符优先级分成若干运算步骤按运算符优先级分