版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章的学习要点本章的学习要点基本数据类型和用户定义的数基本数据类型和用户定义的数据类型据类型常量和变量常量和变量常用内部函数常用内部函数算术运算符、关系运算符与逻算术运算符、关系运算符与逻辑运算符以及表达式的运算优辑运算符以及表达式的运算优先级先级 数据是计算机处理的对象,也是运算产生的结果。数据是计算机处理的对象,也是运算产生的结果。 为了便于处理各式各样的数据,高级语言会将数据为了便于处理各式各样的数据,高级语言会将数据进行类型划分,即根据数据的用途不同将其定义为不进行类型划分,即根据数据的用途不同将其定义为不同的数据类型。同的数据类型。 定义数据的类型后,既可以确定数据占用的存储空定义数
2、据的类型后,既可以确定数据占用的存储空间,又可以确定数据的处理范围。间,又可以确定数据的处理范围。 Visual Basic 6.0中将数据类型分为基本数据类型和中将数据类型分为基本数据类型和用户自定义数据类型。用户自定义数据类型。数据类型数据类型关键字关键字类型符类型符前缀前缀占字节数占字节数范围范围整型整型Integer%Int2-3276832767长整型长整型Long&Lng4-21474836482147483647单精度型单精度型Single !Sng41.40E-453.40E+38双精度型双精度型Double#Dbl84.94D-3241.79D+308货币型货币型Cu
3、rrencyCur8-9.22E+149.22E+14字节型字节型Byte无无Byt10255日期型日期型Date无无Dtm801,01,10012,31,9999逻辑型逻辑型Boolean无无Bln2True与与False字符型字符型String$Str与字符串长与字符串长度有关度有关065535个字符个字符对象型对象型Object无无Obj4任何对象引用任何对象引用变体型变体型Variant无无vnt根据分配确根据分配确定定上述有效范围之一上述有效范围之一数数值值型型数值型数值型整型整型 是不带小数点的数据,和数学中整数的含义类是不带小数点的数据,和数学中整数的含义类似,只是整型数据取值范
4、围在似,只是整型数据取值范围在-3276832767之间,之间,存放在计算机中用存放在计算机中用2个字节即个字节即16位来表示。类位来表示。类型符为型符为%,即在数据尾加上,即在数据尾加上%就表示此数据为整型就表示此数据为整型数据。数据。长整型长整型 和整型数据类似,都表示整数,但所能表示的和整型数据类似,都表示整数,但所能表示的数据范围比整型大,取值范围为数据范围比整型大,取值范围为-21474836482147483647,长整型数据在计算机中用,长整型数据在计算机中用4个字节表个字节表示。类型符为示。类型符为&。例如:2%表示2以整型数据存储。例如:5&表示5为长整型数据
5、存储。 数值型数值型单精度型单精度型 带小数点的实数,在计算机中用带小数点的实数,在计算机中用4个字节来存储,个字节来存储,有效数字为有效数字为7位,通常单精度型数据以指数形式表示,位,通常单精度型数据以指数形式表示,指数部分用指数部分用E或或e表示。表示。双精度型双精度型 带小数点的实数,有效数字为带小数点的实数,有效数字为15或或16位,在计算机位,在计算机内用内用8个字节存储,比单精度型数据精度更高。双精个字节存储,比单精度型数据精度更高。双精度型数据也以指数形式表示,指数部分用度型数据也以指数形式表示,指数部分用D或或d表示。表示。例如:例如:3.6e+5表示数学中的表示数学中的3.6
6、105,7.45E-6表示表示7.4510-6 例如:例如:55.87d+5表示数学中的表示数学中的55.87105,7.45D-6表示表示7.4510-6。 数值型数值型货币型货币型 是为了计算货币而设置的定点实数或整数,它的是为了计算货币而设置的定点实数或整数,它的精度要求比较高,在计算机中用精度要求比较高,在计算机中用8个字节存储。类个字节存储。类型符为。型符为。字节型字节型 是范围在是范围在0255之间的无符号的整数,在计算机之间的无符号的整数,在计算机中仅用一个字节表示,因此称为字节型数据。中仅用一个字节表示,因此称为字节型数据。 例如:例如:23.5表示表示23.5以货币型数据存储
7、。以货币型数据存储。 日期型日期型 表示在公元表示在公元100年年1月月1日日9999年年12月月31日之间日之间的日期和时间数据,日期型数据用的日期和时间数据,日期型数据用#括起来标识。括起来标识。逻辑型逻辑型 逻辑型数据也称为布尔型数据,用来表示逻辑逻辑型数据也称为布尔型数据,用来表示逻辑判断的结果。它只有真判断的结果。它只有真True和假和假False两两种取值情况。种取值情况。例如:例如:#7/25/2019#表示表示2019年年7月月25日。日。数值型数据数值型数据逻辑型数据逻辑型数据数据转换数据转换数值型数据数值型数据逻辑型数据逻辑型数据0False非非0True0False-1T
8、rue字符型字符型 用双引号括起来的一串字符,字符型数据可以用双引号括起来的一串字符,字符型数据可以有两种:定长字符串和变长字符串。有两种:定长字符串和变长字符串。 定义变长字符串时,其后加上定义变长字符串时,其后加上“*”和数字,表和数字,表示该字符串的长度为该数字表示的字节数,例:示该字符串的长度为该数字表示的字节数,例:Dim a As String * 6,表示定义变量,表示定义变量a是一个含是一个含6个个字符的定长字符串数据。字符的定长字符串数据。对象型对象型 对象型数据主要用于定义应用程序中定义的对对象型数据主要用于定义应用程序中定义的对象的类型。象的类型。变体型变体型 变体型数据
9、可以表示任何一种数据类型,其大变体型数据可以表示任何一种数据类型,其大小由所赋予的数据类型决定。小由所赋予的数据类型决定。 阐明:阐明: (1) 不同类型的数据,所占的存储空间不一样。不同类型的数据,所占的存储空间不一样。 (2) 数据的类型可在数据之后加上一个类型符来数据的类型可在数据之后加上一个类型符来表示,例如,表示,例如,413&,86!,104.67#等。等。例如:例如:dim a As Variant 定义定义a为变体型数据为变体型数据a=123 a为整形数据为整形数据a=visual basic a为字符型数据为字符型数据 在在Visual Basic中,标识符是程序员为
10、变量、常量、中,标识符是程序员为变量、常量、数据类型、过程、函数、类等定义的名字。数据类型、过程、函数、类等定义的名字。 标识符的命名规则标识符的命名规则 (1标识符必须以字母开头,可以由字母、数字或下划标识符必须以字母开头,可以由字母、数字或下划线组成。线组成。(2标识符的长度不能超过标识符的长度不能超过255个字符,控件、窗体、类个字符,控件、窗体、类和模块的名字不能超过和模块的名字不能超过40个字符。个字符。(3自定义的标识符不能和自定义的标识符不能和VB中的运算符、语句、函数中的运算符、语句、函数和过程名等关键字同名,同时也不能与系统已有的方法和过程名等关键字同名,同时也不能与系统已有
11、的方法和属性同名。和属性同名。(4保证标识符在同一范围内是惟一的。保证标识符在同一范围内是惟一的。 常量常量 常量也称为常数。常量也称为常数。Visual Basic中,用常量表示中,用常量表示在整个程序中事先设置的、不会改变数值的数据。在整个程序中事先设置的、不会改变数值的数据。 常量分为:常量分为: 常量的数据类型可以是任何一种数据类型。常量的数据类型可以是任何一种数据类型。 直接常量直接常量符号常量符号常量常量常量直接常量直接常量 直接常量是在程序中直接给出的数值、字符、直接常量是在程序中直接给出的数值、字符、日期等具体的数据值。按照数据类型分类,可以将日期等具体的数据值。按照数据类型分
12、类,可以将直接常量分为以下几类:直接常量分为以下几类:字节型、整型和长整型常量字节型、整型和长整型常量 单精度和双精度浮点型常量单精度和双精度浮点型常量 逻辑型常量逻辑型常量 字符型常量字符型常量 直接常量直接常量 日期型常量日期型常量 字符型常量的引号必须是字符型常量的引号必须是西文双引号西文双引号 常量常量符号常量符号常量 符号常量是用一个标识符代表一个直接常量,符号常量是用一个标识符代表一个直接常量,用这个标识符作为常量名。用这个标识符作为常量名。 用户自定义的符号常量,定义格式:用户自定义的符号常量,定义格式:系统内部定义常量系统内部定义常量 用户自定义的符号常量用户自定义的符号常量
13、符号常量符号常量Const 符号常量名符号常量名 As 数据类型数据类型= 常量表达式常量表达式 Const Pi=3.141592653589 As SingerConst Da=#1/1/68#Const M As Integer=45,D=tea as String 变量变量 变量是在程序执行过程中,其值能够改变量是在程序执行过程中,其值能够改变的量。变的量。 变量名的命名遵循标识符的命名规则。变量名的命名遵循标识符的命名规则。在变量使用之前需要对变量所描述数据的数在变量使用之前需要对变量所描述数据的数据类型进行声明。在变量使用之前提前声明据类型进行声明。在变量使用之前提前声明变量称为显
14、式声明;没提前声明而直接使用变量称为显式声明;没提前声明而直接使用则称之为隐式声明。则称之为隐式声明。 显式声明显式声明 Dim | Public | Private | Static 变量名变量名1 As 类型类型1 , 变量名变量名2 As 类型类型2 Dim a As IntegerDim c变量变量隐性声明隐性声明如果没有声明就直接使用,如果没有声明就直接使用,Visual Basic会自动根会自动根据数据值对其规定数据类型。据数据值对其规定数据类型。后缀法声明后缀法声明在在Visual Basic中,对有些数据类型的变量,允许中,对有些数据类型的变量,允许直接在变量名后面加上数据类型
15、符即后缀),指直接在变量名后面加上数据类型符即后缀),指定该变量的数据类型。定该变量的数据类型。X=35 X为为Integer类型类型Y=Visual Basic 6.0编程编程 Y为为String类型类型 xa% 变量变量xa是整型数据是整型数据 xb 变量变量xb是货币型数据是货币型数据 xc$ 变量变量xc是字符型数据是字符型数据强制显式声明变量语句强制显式声明变量语句 Visual Basic虽然不要求必须对变量进行声明,但虽然不要求必须对变量进行声明,但是不声明变量经常会出现很多错误,所以一般编程是不声明变量经常会出现很多错误,所以一般编程者希望在运行程序之前由系统编译器帮助检查程序
16、者希望在运行程序之前由系统编译器帮助检查程序中是否有未显式声明的变量,如果希望这样做,可中是否有未显式声明的变量,如果希望这样做,可以在通用声明部分用强制显式声明语句。格式以在通用声明部分用强制显式声明语句。格式 :这个语句所实现的功能也可以通过这个语句所实现的功能也可以通过Visual Basic系系统的选项功能来设置,翻开统的选项功能来设置,翻开“工具工具”“选项菜选项菜单项,在单项,在“编辑器选项卡下,选中编辑器选项卡下,选中“要求变量声要求变量声明明”,同样可以达到这样的功能。,同样可以达到这样的功能。Option Explicit选择 变量在一个时刻只能存放一个值,当数据不多时,使用
17、简变量在一个时刻只能存放一个值,当数据不多时,使用简单变单变量可解决问题,但数据庞大时用简单变量效率太低。量可解决问题,但数据庞大时用简单变量效率太低。例如:例如:(1输入输入100个数,按从大到小或者从小到大的顺序输出。个数,按从大到小或者从小到大的顺序输出。(2某学校有近万名学生,做一个学生信息表。某学校有近万名学生,做一个学生信息表。 1数组的概述数组的概述 数组是具有相同数据类型的数据元素的集合。它由同一个数组是具有相同数据类型的数据元素的集合。它由同一个名名字不同下标的同类型变量组成。字不同下标的同类型变量组成。 数组中的变量称为数组元素,数组中的每个元素都有一个数组中的变量称为数组
18、元素,数组中的每个元素都有一个唯唯一的下标索引来标识自己。一的下标索引来标识自己。 数组元素的个数称为数组的长度大小)数组元素的个数称为数组的长度大小) 数组的特点:数组的特点: 1数组的命名规则遵循标识符命名规则;数组的命名规则遵循标识符命名规则; 2数组中的元素是有序排列的;数组中的元素是有序排列的; 3数组的元素个数是有限的;数组的元素个数是有限的; 4数组的数据类型就是该数组的下标变量的数据类型;数组的数据类型就是该数组的下标变量的数据类型; 5数组元素的存储不是松散状态,而是占据一片连续区数组元素的存储不是松散状态,而是占据一片连续区域。域。Score(1)Score(2)Score
19、(100)Score数组的内存表示数组的内存表示使用数组和简单变量主要存在如下区别:使用数组和简单变量主要存在如下区别:(1输入的简单变量越多,程序就越长,程序本身占用的内输入的简单变量越多,程序就越长,程序本身占用的内存空间就越大。存空间就越大。(2在一个程序中使用的简单变量个数有限,对大批量数据,在一个程序中使用的简单变量个数有限,对大批量数据,简单变量就不能表示了。简单变量就不能表示了。(3简单变量的存储位置呈松散状态,数组却占据着一片连简单变量的存储位置呈松散状态,数组却占据着一片连续的存储区域。续的存储区域。(4在程序结构上,简单变量不适合使用循环的办法来解决,在程序结构上,简单变量
20、不适合使用循环的办法来解决,增加了代码的复杂度。增加了代码的复杂度。 2 2数组的定义数组的定义 1 1数组的声明数组的声明 一个数组包括数组名称、数组维数、数组大小、数组一个数组包括数组名称、数组维数、数组大小、数组类型以及作用范围。类型以及作用范围。 在使用数组时要将以上内容告诉计算机,以便开辟足在使用数组时要将以上内容告诉计算机,以便开辟足够的内存单元来存储数够的内存单元来存储数据,这个过程叫做声明数组。据,这个过程叫做声明数组。 声明数组的语法格式:声明数组的语法格式: Public | Private | Dim Public | Private | Dim 数组名数组名(维维数定义
21、数定义)As )As 数据类型数据类型 . . 阐明:阐明: (1 1数组必须数组必须“先声明,后使用先声明,后使用”; (2 2一条声明语句可以同时声明多个不同维数的一条声明语句可以同时声明多个不同维数的数组,但数组间不能同名。数组,但数组间不能同名。2 2数组的上、下界数组的上、下界 数组有上界和下界,数组的元素在上下界内连续递增。数组有上界和下界,数组的元素在上下界内连续递增。 语法格式:语法格式: 下界下界1 To 1 To 上界上界1 ,1 ,下界下界2 To2 To上界上界2.2. 其中其中: : 下界和上界分别表示该维的最小和最大下标值,通过关下界和上界分别表示该维的最小和最大下
22、标值,通过关键字键字ToTo连接起来确定下标的取值范围。默认下界为连接起来确定下标的取值范围。默认下界为0 0,下界,下界可以省略,若省略下界说明下标的取值范围是从可以省略,若省略下界说明下标的取值范围是从0 0到上界。到上界。 例如:声明数组例如:声明数组SumsSums Dim Sums(9)As Double Dim Sums(9)As Double 该数组包含该数组包含1010个元素,个元素,a(0)a(0)a(9)a(9)3) 3) 数组的维数数组的维数 下标变量中下标的个数决定数组的维数,各维下标之间用逗下标变量中下标的个数决定数组的维数,各维下标之间用逗号号“,”隔开。隔开。 一
23、个下标的下标变量构成一维数组,一维数组表示线性顺序;一个下标的下标变量构成一维数组,一维数组表示线性顺序; 两个下标的下标变量构成二维数组,二维数组用于表示平面;两个下标的下标变量构成二维数组,二维数组用于表示平面; 三个下标的下标变量构成三维数组,三维数组可以表示立体三个下标的下标变量构成三维数组,三维数组可以表示立体空间。空间。 有多少个下标的下标变量就构成多少维的数组有多少个下标的下标变量就构成多少维的数组, ,通常又通常又把二维以上的数组称为多维数组。把二维以上的数组称为多维数组。例如:例如:Orange(1 to 5)Orange(1 to 5)表示一维数组共有表示一维数组共有5 5
24、个元素。个元素。Apple(1 to 3, 2 to 5)Apple(1 to 3, 2 to 5) 表示二维数组,大小为表示二维数组,大小为3 34 4,元素总数为二个维数的,元素总数为二个维数的乘积乘积1212,该数组在数学上可表示为,该数组在数学上可表示为3 3行行4 4列的矩阵。列的矩阵。Pear(1 to 2,1 to 3,2 to 4)Pear(1 to 2,1 to 3,2 to 4) 表示三维数组,大小为表示三维数组,大小为2 23 33 3,元素总数为三个维数,元素总数为三个维数的乘积的乘积1818,该数组在数学上可以用立体图形来表示。,该数组在数学上可以用立体图形来表示。
25、留意:留意: 在增加数组的维数时,数组所占的存储空间会大幅度在增加数组的维数时,数组所占的存储空间会大幅度增加,由于对每一个下标变量都分配空间,所以声明数组增加,由于对每一个下标变量都分配空间,所以声明数组的大小要合适。的大小要合适。4) 数组的类型数组的类型 “As 数据类型表明数组元素的类型。可以声明任何基数据类型表明数组元素的类型。可以声明任何基本数据类型的数组:本数据类型的数组:Byte、Boolean、Long、Currency、Single、Double、Date、String变长字符串)、变长字符串)、String*length定长字符串)、定长字符串)、Object对象型)、对
26、象型)、Variant变体型)、用户定义类型。变体型)、用户定义类型。5) 5) 下标变量的使用说明下标变量的使用说明下标变量由数组名后跟小括号下标变量由数组名后跟小括号“()”()”括起来的下标组成。且括起来的下标组成。且下标必须放在小括号内。下标必须放在小括号内。 例如:例如: a(3)a(3)不能写成不能写成 a3a3,否则被当作简单变量处理。,否则被当作简单变量处理。下标可以是常量、数值变量、算术表达式。下标可以是常量、数值变量、算术表达式。 例如:例如: a(6)a(6),b(2b(2* *m+1)m+1),c(i)c(i)。 若下标中若含有变量,使用前该变量应提前赋值。若下标中若含
27、有变量,使用前该变量应提前赋值。 例如:当例如:当i=1i=1时:时:a(i)a(i)表示表示a(1)a(1),a(i+2)a(i+2)表示表示a(3)a(3); 当当i=b(1)=1i=b(1)=1时:时:a(b(1)a(b(1)表示表示a(1)a(1)。下标变量的类型就是数组的类型,所有下标变量都具有一样下标变量的类型就是数组的类型,所有下标变量都具有一样的类型。的类型。下标变量像简单变量一样,一个下标变量代表相应数组的一下标变量像简单变量一样,一个下标变量代表相应数组的一个组成元素。个组成元素。 静态数组:在程序执行前,系统进行编译时,根据数组说静态数组:在程序执行前,系统进行编译时,根
28、据数组说明语句开辟的固定的存储空间,直到程序执行完毕,在整明语句开辟的固定的存储空间,直到程序执行完毕,在整个过程中存储空间大小不再改变,这种数组就叫静态数组。个过程中存储空间大小不再改变,这种数组就叫静态数组。 动态数组:在执行过程中给数组开辟存储空间后,还可以动态数组:在执行过程中给数组开辟存储空间后,还可以用用Redim或或Dim语句再次分配存储空间,这种数组就叫语句再次分配存储空间,这种数组就叫动态数组。动态数组。 在程序未执行时,动态数组不占用内存;而静态数组,在程序未执行时,动态数组不占用内存;而静态数组,编译程序将为它的数据段预留空间。编译程序将为它的数据段预留空间。 1 1静态
29、数组的声明静态数组的声明数组声明的语法格式:数组声明的语法格式: Public | Private | Dim Public | Private | Dim 数组名数组名( (下标下标) As ) As 类型类型 下标的格式下标的格式: : 下界下界1 To 1 To 上界上界1 , 1 , 下界下界2 To 2 To 上界上界22)例如:例如: Dim A(2)As DoubleDim A(2)As Double 一维数组一维数组A A,共有三个双精度元素,分别为,共有三个双精度元素,分别为A(0)A(0)、A(1)A(1)、A(2)A(2)。 2 2数组下标设置语句数组下标设置语句 下界默
30、认开始值为下界默认开始值为0 0。但在使用时,若希望从别的值开始,。但在使用时,若希望从别的值开始,这就需要用这就需要用“Option BaseOption Base语句设置数组下标的起始值。语句设置数组下标的起始值。 Option BaseOption Base语句的语法格式:语句的语法格式:Option Base nOption Base n 例如:例如: Option Base 1Option Base 1 Dim A(5)As String Dim A(5)As String 等价于等价于Dim A(1 To 5)As StringDim A(1 To 5)As String留意:留意
31、: 1 1在数组声明时,下标表示数组的维数大小,但在使用在数组声明时,下标表示数组的维数大小,但在使用中,只表示数组中的一个元素。即:中,只表示数组中的一个元素。即: Dim D(3)As DoubleDim D(3)As Double 声明过程中声明过程中 D(3)D(3)表示表示D D是一个一维数组,有是一个一维数组,有4 4个元素,个元素,分别为分别为D(0)D(0)、D(1)D(1)、D(2)D(2)、D(3)D(3)。声明完成后再出现的。声明完成后再出现的D(3)D(3),则表示数组,则表示数组D D中的一个数组元素。中的一个数组元素。 2 2Option Base nOption
32、Base n语句必须在标准模块中或窗体通用声语句必须在标准模块中或窗体通用声明处使用。明处使用。 与静态数组对应的是动态数组,即数组元素个数不定的数与静态数组对应的是动态数组,即数组元素个数不定的数组。组。 若事先不知道数组的大小,并希望在运行时可以根据需要若事先不知道数组的大小,并希望在运行时可以根据需要改变改变数组的大小或大小不断改变),这时就要使用动态数组。数组的大小或大小不断改变),这时就要使用动态数组。 动态数组与静态数组不同的是:动态数组灵活、经济、可动态数组与静态数组不同的是:动态数组灵活、经济、可伸缩,可在任何时候改变数组的大小,从而不会浪费内存。伸缩,可在任何时候改变数组的大
33、小,从而不会浪费内存。 1动态数组的声明动态数组的声明 数组声明的语法格式:数组声明的语法格式: Public | Private | Dim 数组名数组名() As 类型类型 2创建动态数组的步骤创建动态数组的步骤(1声明一个空维数表的数组不必说明维数和界限)。声明一个空维数表的数组不必说明维数和界限)。 例如:例如:Dim X( )As Integer。(2在需要指定数组大小时,再使用在需要指定数组大小时,再使用ReDim语句分配数组语句分配数组中实际元素个数。中实际元素个数。 例如:例如:ReDim X(50)。 ReDim语法格式:语法格式: ReDim Preserve 数组名数组名
34、(下标下标)As 类型类型 其中:其中: (1ReDim语句中的语句中的 As 类型类型可以省略,若不省略则必可以省略,若不省略则必须要和数组声明中的类型一致。须要和数组声明中的类型一致。 (2使用使用ReDim相当于数组被重新初始化,原来的数据将相当于数组被重新初始化,原来的数据将全部丢失。全部丢失。 (3Preserve表示再次使用表示再次使用ReDim语句改变数组大小时保语句改变数组大小时保留数组中原来的数据,但留数组中原来的数据,但Preserve只能改变多维数组中最只能改变多维数组中最后一维的上界,否则运行程序报错。后一维的上界,否则运行程序报错。 (4ReDim 语句用来更改某个已
35、声明维数或大小的数组。语句用来更改某个已声明维数或大小的数组。如果有一个较大的数组,并且不再需要它的某些元素,如果有一个较大的数组,并且不再需要它的某些元素,ReDim 可通过减小数组大小来释放内存。另一方面,如可通过减小数组大小来释放内存。另一方面,如果代码确定某个数组需要更多元素,也可使用果代码确定某个数组需要更多元素,也可使用ReDim语句语句来实现。来实现。 如果数组如果数组A已经有一些值已经有一些值,比如说比如说 dim 数组数组A() as long Redim 数组数组(1 to 2) 数组数组A(1)=10 数组数组A(2)=20 而又想再添加一项而又想再添加一项 Redim
36、数组数组(1 to 3) 这里没有使用这里没有使用Preserve,所以重定义之后所以重定义之后1,2下下标里面被清零标里面被清零 数组数组A(3)=30 最后其实得到的是最后其实得到的是 数组数组A(1)=0 数组数组A(2)=0 数组数组A(3)=30 但是但是 dim 数组数组A() as long Redim 数组数组A(1 to 2) 数组数组A(1)=10 数组数组A(2)=20 而又想再添加一项而又想再添加一项 Redim Preserve数组数组A(1 to 3) 这里使用这里使用Preserve,所以重定义之后所以重定义之后1,2下标里面被保留下标里面被保留 数组数组A(3)
37、=30 得到的是得到的是 数组数组A(1)=10 数组数组A(2)=20 数组数组A(3)=30 留意留意,此函数只能修改下标此函数只能修改下标,而不能修改上标而不能修改上标,如果是多维的也是一如果是多维的也是一样样,只能改下标只能改下标统计输入的任意个数之和。统计输入的任意个数之和。Private Sub Command1_Click() Dim N As Integer, A() As Single, i As Integer, s As Single N = InputBox(输入几个数?输入几个数?) ReDim A(1 To N) For i = 1 To N A(i) = Inpu
38、tBox(输入第输入第 + Str(i) + 个数个数) Print 第第 & i & 个数个数= & A(i) s = s + A(i) Next i Print N & 个数之和为个数之和为 & sEnd Sub 数组是一个整体,但在具体操作时是针对数组元素进行数组是一个整体,但在具体操作时是针对数组元素进行的。的。 基本操作包含:(基本操作包含:(P26)数组元素赋值数组元素赋值 清理元素清理元素3. 数组输出数组输出 数组内容的输出使用一重循环实现。例如:数组内容的输出使用一重循环实现。例如: Private Sub Form_Click() D
39、im A(1 To 10) As Integer, i As Integer For i = 1 To 10 Print A(i) Next i End Sub 运算是对数据进行加工的过程,描述不同运算的符运算是对数据进行加工的过程,描述不同运算的符号称为运算符,参与运算的数据称为操作数。号称为运算符,参与运算的数据称为操作数。 在在VB中,运算符有算术运算符、字符串运算符、关中,运算符有算术运算符、字符串运算符、关系运算符、逻辑运算符。系运算符、逻辑运算符。 表达式用来表示某个求值规则,可以由关键字、运表达式用来表示某个求值规则,可以由关键字、运算符、常量、变量、函数、对象和配对的圆括号以合
40、算符、常量、变量、函数、对象和配对的圆括号以合适的形式组合而成。适的形式组合而成。 每个表达式都有一个惟一的值作为表达式的值。根每个表达式都有一个惟一的值作为表达式的值。根据运算符的不同,可以将表达式分为算术表达式、字据运算符的不同,可以将表达式分为算术表达式、字符串表达式、关系表达式、逻辑表达式符串表达式、关系表达式、逻辑表达式 。算术运算符是专用来进行数学计算的运算符。算术运算符是专用来进行数学计算的运算符。Visual Basic提供的算术运算符共有提供的算术运算符共有7个,除负号为单目运算符个,除负号为单目运算符外,其余的都为双目运算符,即需要两个操作数完成外,其余的都为双目运算符,即
41、需要两个操作数完成的运算。的运算。算术运算符算术运算符含义含义示例示例结果结果优先级优先级乘方乘方3291-负号负号-5-52*乘乘4*5203/除除3/100.33整除整除2504Mod取模取模/取余取余6 Mod 515+加加2+8106-减减5-146算术表达式是由算术运算符连接操作数构成的表达式,算术表达式是由算术运算符连接操作数构成的表达式,其运算结果是数值。由于一个表达式中可能出现多种其运算结果是数值。由于一个表达式中可能出现多种算术运算符,所以计算的时候要按照优先级来进行运算术运算符,所以计算的时候要按照优先级来进行运算,优先级越高的越先计算。圆括号可以改变优先级,算,优先级越高
42、的越先计算。圆括号可以改变优先级,括号内的优先级最高。括号内的优先级最高。 算术运算符的操作数可以是数值型、数字字符型或逻算术运算符的操作数可以是数值型、数字字符型或逻辑型。计算时数字字符型和逻辑型数据自动转换为数辑型。计算时数字字符型和逻辑型数据自动转换为数值型后再参与运算。值型后再参与运算。逻辑型逻辑型数字字符型数字字符型数值型数值型运算运算+、-、*、/的运算规则和数学里面的运算规则一样,计的运算规则和数学里面的运算规则一样,计算时按照算时按照“先乘除,后加减的规则计算。先乘除,后加减的规则计算。整除运算的运算规则是先计算两个整数的商,再丢弃整除运算的运算规则是先计算两个整数的商,再丢弃
43、商值的小数部分。若参加运算的除数或被除数不是整商值的小数部分。若参加运算的除数或被除数不是整数,则按照四舍五入的方法先进行取整,然后再按照数,则按照四舍五入的方法先进行取整,然后再按照整除运算的规则计算结果。例如整除运算的规则计算结果。例如83的结果是的结果是2,5.83的的结果是结果是2。a MOD b的值为的值为a整除整除b后的余数,如果参加计算的数后的余数,如果参加计算的数据是小数,先对它们进行四舍五入取整,然后再完成据是小数,先对它们进行四舍五入取整,然后再完成求模运算。如果参加运算的有负数,用绝对值参加取求模运算。如果参加运算的有负数,用绝对值参加取模运算,运算结果的符号和模运算,运
44、算结果的符号和a的符号一致。例如:的符号一致。例如:5.6 MOD 3的结果是的结果是0,-5 MOD 3的结果是的结果是-2。“+” 、“-”也可以对日期型数据进行计算,用来计算也可以对日期型数据进行计算,用来计算日期之间的关系,如日期之间的关系,如#12/19/2019# - #11/16/2019#的结果的结果为为33,表示,表示2019年年12月月19日到日到2019年年11月月16日之间有日之间有33天。天。#11/16/2019# + 33的结果为的结果为#12/19/2019#,表示,表示从从2019年年11月月16日后推日后推33天是天是2019年年12月月19日。日。例例1:
45、若有如下程序,分别声明变量:若有如下程序,分别声明变量a,b分别赋值为分别赋值为2和和3,在窗体的单击事件中测试各种算术运算的结果。,在窗体的单击事件中测试各种算术运算的结果。Private Sub Form_Click() a = 2: b = 3 Print a + b, a - b Print a * b, a Mod b Print a / b, a b Print a bEnd Sub两行语句一行书写两行语句一行书写编写的窗体单击事件过程代码如下:编写的窗体单击事件过程代码如下: Private Sub Form_Click() Dim x As Integer, a As Inte
46、ger Dim b As Integer, c As Integer x = 36 a = x 10 求十位数求十位数 b = x Mod 10 求个位数求个位数 c = b * 10 + a 生成新的数生成新的数 Print 处理后的数处理后的数: ; c End Sub 例例2: 给定一个两位正整数给定一个两位正整数(如如36),交换个位数和,交换个位数和十位数的位置,并将处理后的结果显示在窗体上。十位数的位置,并将处理后的结果显示在窗体上。运行程序后单击窗体,输出结果是:处理后的数:运行程序后单击窗体,输出结果是:处理后的数:63)2)(1(30sin321yxba程序中写为:程序中写为
47、:Sqr(a+b)*sin(30*3.14/180)/(x12+1)*(y3-2)字符串运算符的作用是实现字符串的连接,也称连接字符串运算符的作用是实现字符串的连接,也称连接运算符,字符串运算符有运算符,字符串运算符有&和和+。当参加运算的操作数都是字符型数据时,两运算符的当参加运算的操作数都是字符型数据时,两运算符的作用和结果相同,都是将两个字符串连接起来,组成作用和结果相同,都是将两个字符串连接起来,组成一个新的字符串。一个新的字符串。当连接运算的操作数并非都为字符串的时候,两个连当连接运算的操作数并非都为字符串的时候,两个连接运算符的结果有所差别。接运算符的结果有所差别。&
48、;连接符在任何时候都做字连接符在任何时候都做字符串连接操作,如果操作数有非字符串数据,先将其符串连接操作,如果操作数有非字符串数据,先将其转换为对应的字符串数据,再进行连接操作。转换为对应的字符串数据,再进行连接操作。 xyz + 123 结果为新字符串结果为新字符串xyz123xyz & 123 结果为新字符串结果为新字符串xyz123123 & xyz 结果为新字符串结果为新字符串123xyz123 & 456 结果为新字符串结果为新字符串123456123 & xyz 结果为新字符串结果为新字符串123xyz当当+连接符作为运算符时,若其中一个字符串为数字
49、字连接符作为运算符时,若其中一个字符串为数字字符型数据,另一个为数值型数据时,先将数字字符型符型数据,另一个为数值型数据时,先将数字字符型变为数值型,再实现算术加法运算;若两个都为数值变为数值型,再实现算术加法运算;若两个都为数值型数据,则直接按照算术运算符实现加法运算;若其型数据,则直接按照算术运算符实现加法运算;若其中一个为数值型数据,另外一个为非数字字符型数据,中一个为数值型数据,另外一个为非数字字符型数据,系统则会提示出错。系统则会提示出错。123+45 结果为数据结果为数据168123+45 结果为数据结果为数据168Visual Basic 编程编程+45 程序会提示出错程序会提示
50、出错 为了避免为了避免“+”做连接运算时与加法运算混淆,一般都使用做连接运算时与加法运算混淆,一般都使用&作为作为连接符号使用,但使用连接符号使用,但使用“&”连接符时必须在连接符时必须在“&”的前面和后面各增的前面和后面各增加一个空格避免出错。这是因为符号加一个空格避免出错。这是因为符号“&”的另一个含义是长整型的的另一个含义是长整型的类型符,如果变量与符号类型符,如果变量与符号&接在一起,接在一起,VB系统先把它作为类型定义系统先把它作为类型定义符处理,因而会出现语法错误。符处理,因而会出现语法错误。 例如:例如:100 + 123 100 + 12
51、3 结果为结果为 223223100 + 123 100 + 123 结果为结果为 100123100123Abc + 123 Abc + 123 出错出错100“ & 123 100“ & 123 结果为结果为 100123100123 100 & 123 100 & 123 结果为结果为 100123100123Abc & 123 Abc & 123 结果为结果为 Abc123Abc123Abc & 123 Abc & 123 结果为结果为 Abc123Abc123想一想想一想例例3 编写一个简单的加法程序,用两个文本框存放被
52、编写一个简单的加法程序,用两个文本框存放被加数和加数,另外一个文本框存放结果,单击加数和加数,另外一个文本框存放结果,单击“计算计算按钮将计算结果显示在结果框中,单击按钮将计算结果显示在结果框中,单击“算式按算式按钮将整个算式完整显示在算式的标签中。钮将整个算式完整显示在算式的标签中。 Private Sub Command1_Click()Dim s1 As Integer, s2 As Integer, s3 As Integers1 = Val(Text1.Text)s2 = Val(Text2.Text)s3 = s1 + s2Text3.Text = s3End SubPrivate
53、 Sub Command2_Click()Label3.Caption = Label3.Caption & Text1.Text & + & _ Text2.Text & = & Text3.TextEnd Sub Private sub form_click() a=“西安西安” : b=“工业大学工业大学” print a & b print a+b c=123 print c & 4,c & “4” print c+4, c+”4” d=“123” print d & 4 ,d & “4” print d+
54、4,d+”4” End sub想一想想一想关系运算符也称为比较运算符,用来比较两个操作数关系运算符也称为比较运算符,用来比较两个操作数之间的大小关系,操作数可以是数值型数据、字符之间的大小关系,操作数可以是数值型数据、字符串型数据、日期型数据等,但不能是逻辑型数据,串型数据、日期型数据等,但不能是逻辑型数据,若为逻辑型数据则需要根据逻辑型数据向数值型数据若为逻辑型数据则需要根据逻辑型数据向数值型数据转换的规则转换后再进行运算。关系运算的结果是逻转换的规则转换后再进行运算。关系运算的结果是逻辑值,即运算的结果只有辑值,即运算的结果只有True和和False两种。两种。 数值型数据数值型数据字符型
55、数据字符型数据日期型数据日期型数据逻辑型数据逻辑型数据数值型数据数值型数据运算运算算术运算符算术运算符含义含义示例示例结果结果优先级优先级=等于等于abc=abdFalse算术运算符算术运算符具有相同的具有相同的优先级优先级大于大于(3+5)2True=大于等于大于等于abc=abdFalse小于小于abcabcFalse=小于等于小于等于23=4True不等于不等于aATrue 数值型数据在进行比较的时候,直接比较其值大小。数值型数据在进行比较的时候,直接比较其值大小。 例如:例如:53的结果为的结果为True。 日期型数据比较大小时,日期型数据比较大小时,VB会把日期型数据看成一个会把日期
56、型数据看成一个yyyymmdd的的8位整数,按照数值比较其大小。位整数,按照数值比较其大小。 例如:例如:#2019-5-6#2019-6-13#的结果为的结果为False。 字符型数据比较大小时,若为单个字符,比较其字符型数据比较大小时,若为单个字符,比较其ASCII码值;若码值;若为字符串时,依次从左边第一个字符开始比较,直到发现一个不为字符串时,依次从左边第一个字符开始比较,直到发现一个不相同的为止,由第一个不相同的字符的大小的关系代表字符串的相同的为止,由第一个不相同的字符的大小的关系代表字符串的大小,若字符串长度不相等,短字符串尾部可以补空格比较。常大小,若字符串长度不相等,短字符串
57、尾部可以补空格比较。常见的字符值由对应的见的字符值由对应的ASCII码表中的顺序决定码表中的顺序决定 常见字符常见字符ASCII码大小关系如下:码大小关系如下: 例如:例如:sabaab的结果为的结果为True;abc=ABC的的结果为结果为False。空格空格019ABYZabyz ABRA 结果为结果为 False10 = 3 20逻辑值不能参加运算,如果比较中出现逻辑值,先将逻辑值不能参加运算,如果比较中出现逻辑值,先将逻辑值转换为对应的数值型数据再进行比较。例如:逻辑值转换为对应的数值型数据再进行比较。例如:10 = 3 20的结果先计算的结果先计算10189,按数值比较,结果为,按数
58、值比较,结果为False;数值型;数值型与不能转换成数值型的字符型比较,如:与不能转换成数值型的字符型比较,如:77sdcd,不能比较,系统将提示出错。不能比较,系统将提示出错。关系运算没有优先级,也可以认为具有相同的优先级,关系运算没有优先级,也可以认为具有相同的优先级,所以计算的时候按照从左到右的顺序进行计算。所以计算的时候按照从左到右的顺序进行计算。Private sub form_click() print 32 and 32 and 33 or 23 Print 10 = 3 = b * 3 Print Visual Basic Pascal Print qaz = QAZ Prin
59、t a bEnd sub 想一想想一想逻辑运算符亦称为布尔运算符,用来对逻辑型数据进逻辑运算符亦称为布尔运算符,用来对逻辑型数据进行各种逻辑运算,它的操作数经常是关系表达式或逻行各种逻辑运算,它的操作数经常是关系表达式或逻辑型数据,其结果也仍然是逻辑型数据,即辑型数据,其结果也仍然是逻辑型数据,即True或或False。 算术运算符算术运算符含义含义优先级优先级Not逻辑非逻辑非1And逻辑与逻辑与2Or逻辑或逻辑或3Xor逻辑异或逻辑异或4Eqv逻辑同或逻辑同或5Imp逻辑蕴涵逻辑蕴涵6逻辑运算的结果比较复杂,运算规则如表下:逻辑运算的结果比较复杂,运算规则如表下:ABNot AA And
60、BA Or BA Xor BA Eqv BA Imp BTrueTrueFalseTrueTrueFalseTrueTrueTrueFalseFalseFalseTrueTrueFalseFalseFalseTrueTrueFalseTrueTrueFalseTrueFalseFalseTrueFalseFalseFalseTrueTrue计算逻辑表达式时,如果存在关系表达式,关系表达计算逻辑表达式时,如果存在关系表达式,关系表达式的优先级高,先运算关系表达式,再运算逻辑表达式的优先级高,先运算关系表达式,再运算逻辑表达式,如,式,如,45 And 53的结果为的结果为False。数学上表示某个数在某个值域范围内时用表达式数学上表示某个数在某个值域范围内时用表达式10X= 10 And X2 and 32 and 33 or 23 Print 10 = 3 字符串运算符字符串运算符关系运算符关系运算符逻辑运算符逻辑运算符可以用括号改变优先顺序,使得括号内的运算优
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 担保合同条款确认协议书(2篇)
- 二零二五年度初级农产品电商平台内容合作合同3篇
- 2025年绿色建筑门面租赁及物业管理服务合同3篇
- 2025年度跨国企业外籍员工绩效考核合同
- 二零二五版模具开模与全球市场拓展合同3篇
- 2025年度文化创意产业园代建合同范本4篇
- 二零二五年度土地复垦项目风险评估与管理合同
- 2025年度智能电网项目施工与运维个人雇佣合同4篇
- 2025版存单质押生物科技产业贷款担保合同3篇
- 2025年度个人二手房买卖合同(限价版)4篇
- 国家中医药管理局发布的406种中医优势病种诊疗方案和临床路径目录
- 2024年全国甲卷高考化学试卷(真题+答案)
- 汽车修理厂管理方案
- 人教版小学数学一年级上册小学生口算天天练
- 三年级数学添括号去括号加减简便计算练习400道及答案
- 苏教版五年级上册数学简便计算300题及答案
- 澳洲牛肉行业分析
- 老客户的开发与技巧课件
- 计算机江苏对口单招文化综合理论试卷
- 成人学士学位英语单词(史上全面)
- KAPPA-实施方法课件
评论
0/150
提交评论