




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主页主页 常量、变量、函数及表达式常量、变量、函数及表达式是构成是构成VBVB应用程序的基本元素,应用程序的基本元素,也是程序设计的重要基础知识。也是程序设计的重要基础知识。学习和熟悉掌握这些元素,对学习和熟悉掌握这些元素,对以后的程序设计是十分重要的。以后的程序设计是十分重要的。主页主页第第4 4章章 程序设计基础程序设计基础 程序中的大部分实际工作是采用程序代码来处理的程序中的大部分实际工作是采用程序代码来处理的 任何一门程序设计语言都有一套严格的编程规定任何一门程序设计语言都有一套严格的编程规定 本章主要内容本章主要内容数据类型数据类型常量与变量常量与变量变量的作用域变量的作用域常用内部
2、函数常用内部函数字符处理与字符串函数字符处理与字符串函数运算符和表达式运算符和表达式主页主页 2.1 2.1 数据类型数据类型(知识点)(知识点) 在使用计算机来处理数据时,会遇到各种不同类型的数据。在使用计算机来处理数据时,会遇到各种不同类型的数据。例如,一个人的姓名是由一串文本例如,一个人的姓名是由一串文本( (字符字符) )组成,成绩、年龄和体组成,成绩、年龄和体重都是一个数值,而是否大学毕业则是一个逻辑值,等等。重都是一个数值,而是否大学毕业则是一个逻辑值,等等。 为了更好地处理各种各样的数据,为了更好地处理各种各样的数据,VBVB定义了多种数据类型定义了多种数据类型 数值型数值型 数
3、据类型数据类型 字符型字符型 逻辑型逻辑型 日期型日期型 对象型对象型 变体型变体型整数整数: 整型整型/长整型长整型字节型字节型浮点型浮点型: 单单/双精度双精度货币型货币型主页主页4.1.1 4.1.1 字符型数据字符型数据 字符串是用双引号括起来的一串字符串是用双引号括起来的一串ASCII(标准和扩充标准和扩充)字符。字符。 例如例如: ” Canton”、”1+2=?”、”GoodMorning”等等 “”称为起止界限符。称为起止界限符。 字符串长度。字符串长度。 分为分为: : 变长字符串变长字符串( (长度不固定长度不固定,0-2,0-23131) ) 定长字符串定长字符串( (长
4、度固定,长度固定,2 21616) ) 长度为长度为0 0(不含任何字符)的字符串称为空字符串(不含任何字符)的字符串称为空字符串 例如:例如: 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的值为的值
5、为4个字符个字符” Visu” 主页主页 4.1.2 4.1.2 数值型数据数值型数据 (1) (1) 整型整型(Integer)(Integer)和长整型和长整型(Long)(Long) 不带小数部分的数,表示正整数、负整数和零不带小数部分的数,表示正整数、负整数和零 整型数(整型数(2 2字节)字节): : -32768-327683276732767 长整型数(长整型数(4 4字节):字节):-2147483648-214748364821474836472147483647 (2) (2) 字节型字节型(Byte)(Byte) 字节型数可以字节型数可以1 1个字节表示无符号的整数个字节
6、表示无符号的整数 0 0255255(3) (3) 单精度型单精度型(Single)(Single)和双精度型和双精度型(Double)(Double) 浮点数。表示带有小数部分的数浮点数。表示带有小数部分的数 表示数的范围大,但有误差。表示数的范围大,但有误差。 如超出某个表示范围,则用科学记数法如超出某个表示范围,则用科学记数法 例如:例如:4.53E8(4.534.53E8(4.5310108 8) ),8.173E-148.173E-14,3.14D233.14D23(4) (4) 货币型货币型(Currency)(Currency) 专门为处理货币而设计的数据类型专门为处理货币而设计
7、的数据类型 它可最多保留小数点右边它可最多保留小数点右边4 4位和小数点左边位和小数点左边1515位位主页主页4.1.34.1.3其他类型数据其他类型数据 (1) 逻辑型数据只有逻辑型数据只有True(真真)和和False(假假)两个值两个值 (2)日期型数据用两个日期型数据用两个“#”符号把日期和时间的值括起来符号把日期和时间的值括起来 如:如:#08/20/2001#、#2001-08-20# (3) 变体型变体型(Variant)数据是一种可变的数据类型,可以存放任数据是一种可变的数据类型,可以存放任何类型的数据,何类型的数据,VB会自动完成必要的转换会自动完成必要的转换 不特别说明时,
8、不特别说明时,VB会自动将该变量默认为会自动将该变量默认为Variant型变量型变量 例:例: Temp=“22” 字符串字符串 Temp=Temp-1 数值数值 Temp=#01/01/2002# 日期日期主页主页4.1.4 4.1.4 用户定义的数据类型用户定义的数据类型(知识点)(知识点) 用户可利用用户可利用Type语句定义自己的数据类型。格式如下:语句定义自己的数据类型。格式如下: Type 数据类型名数据类型名 数据类型元素名数据类型元素名 As 类型名类型名 数据类型元素名数据类型元素名 As 类型名类型名 End type 其中其中“数据类型名数据类型名”是要定义的数据类型的名
9、字,其命名规则是要定义的数据类型的名字,其命名规则与变量的命名规则相同;与变量的命名规则相同; “数据类型元素名数据类型元素名”遵循同样的规则,遵循同样的规则,且不能是数组名;且不能是数组名; “类型名类型名”是可以是任何基本数据类型,也可是可以是任何基本数据类型,也可以是用户定义的类型以是用户定义的类型主页主页4.1.4 4.1.4 用户定义的数据类型用户定义的数据类型 使用使用Type语句时,应注意以下几点:语句时,应注意以下几点: (1) 记录类型中的元素可以是变长字符串,也可以是定长字符记录类型中的元素可以是变长字符串,也可以是定长字符串。当在随机文件中使用时;必须使用定长字符串,其长
10、度用类串。当在随机文件中使用时;必须使用定长字符串,其长度用类型名称加上一个星号和常数指明。格式如下:型名称加上一个星号和常数指明。格式如下: String * 常数常数 (2)记录类型的定义必须放在模块(包括标准模块和窗体模块)记录类型的定义必须放在模块(包括标准模块和窗体模块)的声明部分,在使用记录类型前必须用的声明部分,在使用记录类型前必须用Type语句加以定义语句加以定义 (3) 在记录类型中不能使用动态数组在记录类型中不能使用动态数组 (4) 在随机文件操作中,记录类型有重要的作用在随机文件操作中,记录类型有重要的作用*只是定义数据类型,不是定义变量只是定义数据类型,不是定义变量主页
11、主页 4.2 4.2 常量与变量常量与变量(知识点)(知识点) 4.2.1 4.2.1 常量常量 在程序运行期间其值始终保持不变的量在程序运行期间其值始终保持不变的量 文字常量文字常量:在程序代码中直接给出的字符串和数值。:在程序代码中直接给出的字符串和数值。 例如:例如:123,-263, ”Visual Basic” , ”12.57”等等 符号常量:符号常量:在程序中用符号表示的常量。在程序中用符号表示的常量。 格式:格式: PublicPrivate Const 常量名常量名 As 数据类型数据类型=表达式表达式 例如:例如: Const PI=3.14159 As Single 其中
12、其中“常量名常量名”是一个名字,按变量的构成规则命名,可加类是一个名字,按变量的构成规则命名,可加类型说明符。型说明符。 “表达式表达式”由文字常量、算术运算符(指数运算符由文字常量、算术运算符(指数运算符“”除外)、逻辑运算符组成,也可以使用诸如除外)、逻辑运算符组成,也可以使用诸如“Error On input”之类的字符串,但不能使用字符串连接运算符、变量及之类的字符串,但不能使用字符串连接运算符、变量及用户定义的函数或内部函数用户定义的函数或内部函数主页主页 4.2.2 4.2.2 变量变量 变量是在程序运行期间其值可以发生变化的变量是在程序运行期间其值可以发生变化的量量 1. 变量的
13、命名规则变量的命名规则 变量是一个名字,给变量命名时应遵守以下规则变量是一个名字,给变量命名时应遵守以下规则 (1) 名字只能由字母、数字和下划线组成;名字只能由字母、数字和下划线组成; (2)名字的第一个字符必须是英文字母,最后一个字符可以是名字的第一个字符必须是英文字母,最后一个字符可以是类型说明符;类型说明符; (3)名字的有效字符为名字的有效字符为255个;个; (4)名字不能用名字不能用Visual Basic的保留字作变量名,但可以把保留的保留字作变量名,但可以把保留字嵌入变量名中;同时变量名也不能是末尾带有类型说明符的字嵌入变量名中;同时变量名也不能是末尾带有类型说明符的保留字保
14、留字主页主页 4.2.2 4.2.2 变量变量 2. 变量的类型和定义变量的类型和定义 任何变量都属于一定的数据类型,包括基本数据类型和用任何变量都属于一定的数据类型,包括基本数据类型和用户定义的数据类型。在户定义的数据类型。在Visual Basic中,可以用下面几种方式来中,可以用下面几种方式来规定一个变量的类型规定一个变量的类型 (1) 用类型说明符来标识用类型说明符来标识 把类型说明符放在变量的尾部,可以标识不同的变量类型。把类型说明符放在变量的尾部,可以标识不同的变量类型。其中其中%表示整形;表示整形;&表示长整形;表示长整形; !表示单精度型,!表示单精度型, #表示双表示双精度型
15、;精度型; 表示货币型;表示货币型; $表示字符串型。表示字符串型。 (2) 定义变量时指定其类型。定义变量时指定其类型。 (3) 用用Def Type语句定义语句定义 (4) 用类型说明符定义的变量,在使用时可省略类型说明符用类型说明符定义的变量,在使用时可省略类型说明符主页主页 4.2.2 4.2.2 变量变量 3. 变体类型变量(变体类型变量(Variant变量)变量) (1) Variant变量的定义变量的定义 Variant变量可以用普通数据类型变量的格式定义,也可用默认定义。变量可以用普通数据类型变量的格式定义,也可用默认定义。 (2) Variant变量定义变量时指定其类型。变量
16、定义变量时指定其类型。 在对存放字符串的在对存放字符串的Variant变量进行操作时可能会产生歧义。当用变量进行操作时可能会产生歧义。当用“+”运运算符对两个算符对两个Variant变量进行运算时。如果两个变量都是数值,则执行数值变量进行运算时。如果两个变量都是数值,则执行数值相加运算;如果两个变量都是字符串,则执行字符串连接操作相加运算;如果两个变量都是字符串,则执行字符串连接操作 (3) Variant变量用变量用Def Type语句定义语句定义 Variant变量在被赋值前为空值(内部表示为变量在被赋值前为空值(内部表示为Empty或或0),它不同于数值),它不同于数值0,不同于空字符串
17、(不同于空字符串(“”“”),也不同于),也不同于Null。通过。通过IsEmpty函数可以测试一个函数可以测试一个变量自建立以来是否被赋过值变量自建立以来是否被赋过值 (4) Variant变量中的变量中的Null值值 Variant变量可以取一个特殊值变量可以取一个特殊值Null,该值通常在数据库应用程序中用来指,该值通常在数据库应用程序中用来指出未完成或漏掉的数据。出未完成或漏掉的数据。主页主页 (1) “值可变值可变”:当将某个数据存放到一个变量时,就把变量:当将某个数据存放到一个变量时,就把变量中原有的值中原有的值“冲冲”掉,换成新的值。掉,换成新的值。 例如,以下例如,以下2个赋值
18、语句:个赋值语句: a = 3 a = 8 同一变量在不同时刻可以取不同的值同一变量在不同时刻可以取不同的值 (2)“取之不尽取之不尽”:在运算过程中,如果没有改变该变量的值,:在运算过程中,如果没有改变该变量的值,那么,不管使用变量的值进行多少次运算,其值始终保持不变。那么,不管使用变量的值进行多少次运算,其值始终保持不变。 例如例如 x = 5 a = 3 + x x的值始终保持为的值始终保持为5 b = x*x 4*x 3. 3.变量的两个重要特点变量的两个重要特点主页主页 变量的作用域变量的作用域(空间空间)和生存期和生存期(时间时间) 4.3.1 代码模块的概念代码模块的概念 应用程
19、序应用程序工程文件工程文件(.vbp)窗体模块窗体模块文件文件(.frm)Sub过程过程Function过程过程事件事件过程过程声明声明部分部分类模块类模块文件文件(.cls)标准模块标准模块文件文件(.bas)Sub过程过程Function过程过程声明声明部分部分Sub Main过程过程 4.3 变量的作用域变量的作用域(知识点)(知识点) 应用程序包括应用程序包括窗体文件窗体文件(.frm)、模块文件、模块文件(.bas)和类模块和类模块(.cls)主页主页 局部变量、模块级变量和全局变量局部变量、模块级变量和全局变量 1. 局部变量局部变量 在一个过程内部用在一个过程内部用Dim或或St
20、atic声明的变量称为局部变量。只声明的变量称为局部变量。只能在本过程中有效。在一个窗体中,不同过程中定义的局部变量可能在本过程中有效。在一个窗体中,不同过程中定义的局部变量可以同名。如需要,可通过以同名。如需要,可通过“过程名过程名.变量名变量名”的形式分别引用不同过的形式分别引用不同过程中的相同名字的变量。程中的相同名字的变量。例如,在一个窗体中定义例如,在一个窗体中定义 Private Sub Command1_Click() Dim Sum As Integer Sum = 1 . . . End Sub Private Sub Command2_Click() Dim Sum As
21、Single Sum = 1.5 . . . End Sub 这两个同名变量这两个同名变量Sum没有任何联系没有任何联系 4.3.2 4.3.2 变量的作用域变量的作用域它们互不相识它们互不相识主页主页 模块级变量可以在一个窗体的不同过程中使用模块级变量可以在一个窗体的不同过程中使用 在窗体模块的声明部分中声明该变量在窗体模块的声明部分中声明该变量 DimDim n As Integer n As Integer Private Sub Command1_Click() Private Sub Command1_Click() n=1 n=1 End Sub End Sub Private S
22、ub Command2_Click() Private Sub Command2_Click() n=n+1 n=n+1 End Sub End Sub 如果用如果用Private或或Dim来声明,则该变量只能在本窗体来声明,则该变量只能在本窗体(或本或本模块模块)中有效,在其他窗体或模块中不能引用该变量。中有效,在其他窗体或模块中不能引用该变量。 以以Public声明的变量,允许在其他窗体和模块中引用声明的变量,允许在其他窗体和模块中引用 2. 2. 模块级变量模块级变量主页主页 全局变量也称全程变量,作用域最大。可以在工程的任何全局变量也称全程变量,作用域最大。可以在工程的任何一个过程、模
23、块中使用。一个过程、模块中使用。 与模块变量类似,全局变量要在标准模块文件与模块变量类似,全局变量要在标准模块文件(.bas)中的声中的声明部分声明。用明部分声明。用Global或或Public语句来声明。全局变量只能在标语句来声明。全局变量只能在标准模块中的声明,不能在过程或窗体模块中的声明。准模块中的声明,不能在过程或窗体模块中的声明。 格式:格式: Global 变量名变量名 As 数据类型数据类型 Public 变量名变量名 As 数据类型数据类型 3. 3. 全局变量全局变量主页主页 4. 4. 三种变量的作用域三种变量的作用域名称名称作用域作用域声明位置声明位置使用语句使用语句局部
24、局部变量变量过程过程过程中过程中Dim或或Static模块模块变量变量窗体模块或标准模窗体模块或标准模块块模块的声明模块的声明部分部分Dim或或Pravite全局全局变量变量整个应用程序整个应用程序标准模块的标准模块的声明部分声明部分Public或或Global主页主页 用Dim和和Public(或(或Global)语句可以定义局部变量、模块变量和全局语句可以定义局部变量、模块变量和全局变量。对于局部变量,也可以变量。对于局部变量,也可以Dim(或(或Static) 定义,而在需要时直接给出变定义,而在需要时直接给出变量名。变量的类型可以根据类型说明符(量名。变量的类型可以根据类型说明符(%、
25、&、!、!、#、$、)来标识。)来标识。如果没有使用类型说明符标识,则如果没有使用类型说明符标识,则Visual Basic把该变量指定为变体数据类把该变量指定为变体数据类型。型。 默认声明一般只适用于局部变量,模块变量和全局变量必须在代码窗口默认声明一般只适用于局部变量,模块变量和全局变量必须在代码窗口中用中用Dim和和Public语句显式声明。语句显式声明。 如果要如果要强制强制用户对用户对变量进行显式的声明变量进行显式的声明,则可以通过菜单中的工具,则可以通过菜单中的工具 选项选项编辑器选项卡中的编辑器选项卡中的“要求变量声明要求变量声明”选项进行选择。这样设置后,每选项进行选择。这样设
26、置后,每次新建文件时,次新建文件时,Visual Basic会把语句会把语句Option Explicit(选择显式)自动加到(选择显式)自动加到模块变量或全局变量的声明部分。用户也可直接输入这条语句。这种情况下,模块变量或全局变量的声明部分。用户也可直接输入这条语句。这种情况下,如果运行含有默认声明变量的程序时,如果运行含有默认声明变量的程序时, Visual Basic会显示一个信息框,会显示一个信息框,“变量未定义变量未定义” 。 3. 3. 默认声明默认声明(知识点)(知识点) 主页主页 生存期,即变量能够保持其值的时间生存期,即变量能够保持其值的时间 动态变量动态变量和和静态变量静态
27、变量 1. 动态变量动态变量 程序运行进入变量所在的过程时,才为变量分配内存单元,程序运行进入变量所在的过程时,才为变量分配内存单元,退出过程时,该变量占用的内存单元自动释放,其值消失。当再退出过程时,该变量占用的内存单元自动释放,其值消失。当再次进入该过程时,所有的动态变量将重新初始化。次进入该过程时,所有的动态变量将重新初始化。 使用使用DimDim关键字关键字在过程中声明的局部变量属于动态变量在过程中声明的局部变量属于动态变量 2. 静态变量静态变量 退出该过程时变量值被保留,即变量所占的内存单元没有释放。退出该过程时变量值被保留,即变量所占的内存单元没有释放。当以后再次进入该过程时,原
28、来的变量值可以继续使用当以后再次进入该过程时,原来的变量值可以继续使用 使用使用Static关键字关键字在过程中声明的局部变量属于静态变量在过程中声明的局部变量属于静态变量 4.3.3 4.3.3 变量的生存期变量的生存期 Private Sub Dim a As Integer a是动态变量是动态变量 Static b As Integer b是静态变量是静态变量 x = a + 1 每次进入过程时,每次进入过程时, a值为值为0 y = b + 1 每次进入过程时,每次进入过程时, b保持上次的值保持上次的值 End Sub主页主页用用Static Sub对过程对过程Subtest进行定义
29、,因此该过程中的局部变量进行定义,因此该过程中的局部变量t为静态变量为静态变量Static Sub subtest() Dim t As Integer t为静态变量为静态变量 t = 2 * t + 1 Print tEnd SubPrivate Sub Command1_Click() Call subtest 调用子过程调用子过程subtestEnd SubPrivate Sub Form_Load()End Sub将将Static Sub 改为改为Private Sub再运行。再运行。 例例4.14.1 Static Sub Static Sub语句示例语句示例主页主页 内部函数是由内
30、部函数是由VB系统提供系统提供 函数调用的一般格式为:函数调用的一般格式为: 函数名函数名(参数参数1,参数,参数2,) 返回函数值返回函数值 例如:例如: y = Sqr(289) Sqr是内部函数名,是内部函数名,289为参数,运行时该语句调用内部为参数,运行时该语句调用内部函数函数Sqr来求来求289的平方根,其计算结果由系统返回给变量的平方根,其计算结果由系统返回给变量y VB的内部函数大体上分为四大类:数学函数,字符串函的内部函数大体上分为四大类:数学函数,字符串函数,日期与时间函数和转换函数。数,日期与时间函数和转换函数。4.4 4.4 常用内部函数常用内部函数(知识点)(知识点)
31、 主页主页Hex$函数可以把一个十进制数转换为十六进制数函数可以把一个十进制数转换为十六进制数Oct$函数可以把一个十进制数转换为八进制数函数可以把一个十进制数转换为八进制数4.4.2 4.4.2 数值转换函数数值转换函数 主页主页 Asc (字符串字符串):返回:返回“字符串字符串”中的第一个字符的中的第一个字符的ASCII码。码。 Chr$(表达式表达式):把:把“表达式表达式”的值转换为相应的的值转换为相应的ASCII字符。字符。 Val (字符串字符串):把:把“字符串字符串”转换为数值。转换为数值。 Str$(数值表达式数值表达式):把:把“数值表达式数值表达式”的值转换为一个字符串
32、。的值转换为一个字符串。 Cint (X):把:把X的小数部分四舍五入,转换为整数。的小数部分四舍五入,转换为整数。 Ccur (X):把:把X的值转换为货币类型值。小数部分最多保留的值转换为货币类型值。小数部分最多保留4位,且自动四舍位,且自动四舍五入。五入。 CDbl (X):把:把X的值转换为双精度数。的值转换为双精度数。 CLng (X):把:把X的小数部分四舍五入,转换为长整型数。的小数部分四舍五入,转换为长整型数。 CSng (X):把:把X的值转换为单精度数。的值转换为单精度数。 CVar (X):把:把X的值转换为变体类型值。的值转换为变体类型值。4.4.3 4.4.3 类型转
33、换函数类型转换函数 主页主页 转换函数用于数据类型的转换转换函数用于数据类型的转换 说明:说明:Val函数将数字字符串转换为数值型数字时,会自动将字符串中函数将数字字符串转换为数值型数字时,会自动将字符串中的空格去掉,并依据字符串中排列在前面的数值常量来定值,例如:的空格去掉,并依据字符串中排列在前面的数值常量来定值,例如: Val(A12) 的值为的值为 0 Val(12A12) 的值为的值为 12 Val(1.2e2) 的值为的值为 120 使用转换函数的示例使用转换函数的示例 Private Sub Form_Click() x = 123 y = 123 a = Chr$(Asc(x)
34、 + 5) b = Str$(Val(x) + 5) c = Val(Str(y) + 5) Print a,b, c End Sub 运行程序后单击窗体,输出结果是什么运行程序后单击窗体,输出结果是什么 ? ?类型转换函数类型转换函数想一想想一想6 128 1235转换函数例转换函数例思考题思考题主页主页 Sin (X):返回自变量:返回自变量X的正弦值。的正弦值。 Cos (X):返回自变量:返回自变量X的余弦值。的余弦值。 Tan (X):返回自变量:返回自变量X的正切值。的正切值。 Atn (X):返回自变量:返回自变量X的反正切值。的反正切值。 *1度度=/180=3.14159/1
35、80(弧度)(弧度)4.4.4 4.4.4 三角函数三角函数 主页主页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 4.4.8 指数函数(指数函数(Exp) Exp (X):返回以:返回以e为底,以为底,以X为指数的值,即为指数的值,即eX。
36、Log (X):返回自变量:返回自变量X的自然对数(以的自然对数(以e为底)。为底)。 lg(x)=(ln(x)/(ln(10)4.4.5 4.4.5 内部函数内部函数 主页主页4.4.9 4.4.9 日期函数(日期函数(date) Day (Now):返回当前的日期。:返回当前的日期。 WeekDay (Now):返回当前的星期。:返回当前的星期。 Month (Now):返回当前的月份。:返回当前的月份。 Year (Now):返回当前的年份。:返回当前的年份。4.4.10 4.4.10 时间函数(时间函数(time) Hour (Now):返回小时(:返回小时(0-23)。)。 Minu
37、te (Now):返回分钟(:返回分钟(0-59)。)。 Second (Now):返回秒(:返回秒(0-59)。)。*可通过立即窗口输入命令检验函数可通过立即窗口输入命令检验函数4.4.9 4.4.9 日期、时间函数日期、时间函数 主页主页4.4.11 4.4.11 随机函数(随机函数(RndRnd) 随机函数随机函数Rnd可以模拟自然界中各种随机现象。它可产生一可以模拟自然界中各种随机现象。它可产生一个个(0,1)的随机数。在的随机数。在VB中,有一个称为中,有一个称为随机数生成器随机数生成器的随机数生的随机数生成程序,能产生一个随机数序列,用户每次调用成程序,能产生一个随机数序列,用户每
38、次调用Rnd即可得到这即可得到这个随机数序列中的一个。个随机数序列中的一个。 使用使用Randomize(x)语句可以为语句可以为随机数生成器随机数生成器指定不同的初值指定不同的初值或者称为随机数序列的或者称为随机数序列的“种子种子”,这样可以得到不同的随机数序,这样可以得到不同的随机数序列。列。 Rnd通常与通常与Int函数配合使用函数配合使用 生成生成a, b区间范围内的随机整数,可以采用区间范围内的随机整数,可以采用 Int(b-a+1)*Rnd + a) 例如例如 Int(4*Rnd+1)可以产生可以产生14之间之间(含含1和和4)的随机整数。的随机整数。可以是可以是1,2,3或或4,
39、这由,这由VB运行时随机给定。运行时随机给定。主页主页编写的窗体单击事件过程代码如下:编写的窗体单击事件过程代码如下: Private Sub Form_Click() Dim a As Integer, b As Integer, c As Integer Randomize 初始化随机数生成器初始化随机数生成器 a = Int(90 * Rnd + 10) 产生产生10,99区间内的随机整数区间内的随机整数 b = Int(90 * Rnd + 10) c = a + b 求两数之和求两数之和 Print 产生的两个随机数产生的两个随机数: ; a, b Print 和数和数: ; c E
40、nd Sub运行程序后单击窗体,输出结果是:运行程序后单击窗体,输出结果是: 产生的两个随机数:产生的两个随机数:56 71 和数:和数:127例例4.2 通过随机函数产生通过随机函数产生2个两位正整数,求这个两位正整数,求这2个数个数 之和并显示出来之和并显示出来 再次运行程序,单击窗体后再次运行程序,单击窗体后输出另一组结果是:输出另一组结果是: 产生的两个随机数:产生的两个随机数:18 37 和数:和数:55主页主页 字符串函数大都以字符串函数大都以“$”结尾,表明函数的返回值为字符串结尾,表明函数的返回值为字符串 4.5.1 4.5.1 删除空白字符串函数删除空白字符串函数 LTrim
41、$ (字符串字符串):去掉字符串左边的空白字符。:去掉字符串左边的空白字符。 RTrim$ (字符串字符串):去掉字符串右边的空白字符。:去掉字符串右边的空白字符。 Trim$ (字符串字符串):去掉字符串左、右两边的空白字符。:去掉字符串左、右两边的空白字符。4.5.2 4.5.2 字符串截取函数字符串截取函数 Left$ (字符串字符串,n):返回:返回“字符串字符串”前前n个字符。个字符。 Right$ (字符串字符串,n):返回:返回“字符串字符串”后后n个字符。个字符。 Mid$ (字符串字符串,p,n):从位置:从位置p开始取字符串的开始取字符串的n个字符。个字符。 示例:示例:M
42、id(“ABCDEG”,3,2) 的结果为的结果为 ”CD” 若省略若省略n,则得到的是从,则得到的是从P开始的往后所有字符,如开始的往后所有字符,如 Mid(“ABCDE”,2) 的结果为的结果为 “BCDE”4. 54. 5 字符串函数字符串函数(知识点)(知识点) 主页主页 字符串函数大都以字符串函数大都以“$”结尾,表明函数的返回值为字符串结尾,表明函数的返回值为字符串 4.5.3 4.5.3 字符串长度测试函数字符串长度测试函数 Len (字符串字符串) Len (变量名变量名) 用用Len函数可测字符串的长度,也可测变量的存储空间,它的自变量函数可测字符串的长度,也可测变量的存储空
43、间,它的自变量可以是字符串也可以是变量名。可以是字符串也可以是变量名。4.5.4 4.5.4 String$函数函数 String$ (n ,ASCII码码) String$ (n,字符串字符串) 返回返回n个指定字符组成的字符串。个指定字符组成的字符串。4. 54. 5 字符串函数字符串函数主页主页4.5.5 4.5.5 空格函数空格函数 Space$ (n) Space$ (n) 返回返回n n个空格个空格4.5.6 4.5.6 字符串匹配函数字符串匹配函数 InStr (f, InStr (f, 字符串字符串1,1,字符串字符串2,n)2,n)在在“字符串字符串1”中查找中查找“字符串字
44、符串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, ”A12a34A56A12a34A56”
45、, , ”A A”, 1, 1) ) 的结果为的结果为 4 4 Instr( Instr(”A12a34A56A12a34A56”, ”A A”) ) 的结果为的结果为 1 14. 54. 5 字符串函数字符串函数主页主页4.5.7 4.5.7 字母大小写转换字母大小写转换 Ucase$ (字符串字符串) 把把“字符串字符串”中的小写字母转换为大写字母中的小写字母转换为大写字母 Lcase$ (字符串字符串) 把把“字符串字符串”中的大写字母转换为小写字母中的大写字母转换为小写字母4.5.8 4.5.8 插入字符串语句插入字符串语句Mid $ Mid$(字符串字符串,位置位置,L)=子字符串子
46、字符串 把把“字符串字符串”的的“位置位置”开始的字符用开始的字符用“子字符串子字符串”代替。代替。如果含有如果含有L自变量,则替换的内容是自变量,则替换的内容是“子字符串子字符串”左边的左边的L个字个字符。符。“位置位置”和和L均为长整型数均为长整型数4. 54. 5 字符串函数字符串函数主页主页 先从字符串先从字符串a中找出某个指定字符中找出某个指定字符(本例为空格本例为空格),再以此,再以此字符为界拆分成两个字符串。编写的窗体单击过程代码如下:字符为界拆分成两个字符串。编写的窗体单击过程代码如下: Private Sub Form_Click() Dim a As String, b A
47、s String, c As String, n 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 使用字符串函数示例使用字符串函数示例主页主页 Private Sub Form_Click()
48、Dim a As String, b As String, c As String, 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
49、函数函数, 应如何改动?应如何改动?想一想想一想思考题思考题A. n B. Len(a)-n C. Len(a)B主页主页 五类表达式:五类表达式:算术表达式算术表达式、字符串表达式字符串表达式、日期表达式日期表达式、关系表达式关系表达式和和逻辑表达式逻辑表达式 1. 算术表达式:算术表达式: (知识点)(知识点) 运算符及其优先级:运算符及其优先级: (乘方乘方) -(取负取负) * / (整数除法)(整数除法) Mod + - &(连接)(连接) 示例:示例:5*x10 + x/6 x(1/3) 15 Mod 6 (1)幂运算时,当指数是一个表达式时,必须加上括号。幂运算时,当指数是一个表达式时,必须加上括号。 (2)整除的操作数一般为整型值,当操作数带有小数时,首先将其四舍五入为整整除的操作数一般为整型值,当操作数带有小数时,首先将其四舍五入为整数型数或长整型数,然后进行整除运算,计算结果取整,不进行舍入处理。数型数或长整型数,然后进行整除运算,计算结果取整,不进行舍入处理。 (3)算术运算算术运算“+”也可以用做字符串连接符,可以把两个字符串连接在一起,生也可以用做字符串连接符,可以把两个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 收益分红合同协议书范本
- 怎么跟孩子签协议书合同
- 2025年中国表面活性剂市场监测调查分析与投资战略咨询预测报告
- 2025年中国船底防污涂料项目创业计划书
- 企业强制终止合同协议书
- 恋爱合同协议书怎么签
- 健身销售类方案
- 加工合同协议书模板图片大全
- 2025年中国防火板市场运行格局及投资战略研究报告
- 2025年中国防腐胶行业市场前景预测及投资价值评估分析报告
- 2021译林版高中英语选择性必修二课文翻译
- 外墙清洗保洁合同
- 机械原理课程设计-平台印刷机主传动机构设计说明书
- 天然气管道运输外文文献
- 安全生产费用确认单
- 新教材 人教B版高中数学必修第四册 第十一章 立体几何初步 精品教学案(知识点考点汇总)
- 民法典合同编之违约责任实务解读PPT
- 人教版六年级毕业考试卷数学讲解学习
- (完整PPT)抽油机井示功图分析课件
- 最新国家开放大学电大本科液压气动技术期末题库及答案
- 道岔验收表格
评论
0/150
提交评论