第三章数据类型、常量与变量_第1页
第三章数据类型、常量与变量_第2页
第三章数据类型、常量与变量_第3页
第三章数据类型、常量与变量_第4页
第三章数据类型、常量与变量_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、2第三章第三章 数据类型、常量与变量数据类型、常量与变量3.1 基本数据类型基本数据类型3.2 直接常量直接常量3.3 变量变量3.4 符号常量符号常量33.1 基本数据类型基本数据类型本节知识点:本节知识点: 数据类型数据类型。 数值型数值型、String型型、Boolean型型、Date型型。4运算部件运算部件控制部件控制部件存储部件存储部件输入部件输入部件输出部件输出部件连接部件连接部件问题问题:如何使这台机器:如何使这台机器 自动完成计算任务?自动完成计算任务?53.1 基本数据类型基本数据类型v什么是什么是数据类型数据类型? 在计算机内部,在计算机内部,所有的信息都以二进制数据所有的

2、信息都以二进制数据的形式表示的形式表示,如果所有数据都用同一种方式,如果所有数据都用同一种方式来表示会出现什么问题?来表示会出现什么问题? 存储存储和和运算运算。数据数据A:10101010数据数据B:11110000 00000111 1010101063.1 基本数据类型基本数据类型v内存内存 由半导体材料制成,速度快,体积小。由半导体材料制成,速度快,体积小。 用来存储程序和程序运行的结果。用来存储程序和程序运行的结果。 内存由许多存储单元构成,每个存储单内存由许多存储单元构成,每个存储单元可存储位二进制数据。元可存储位二进制数据。 每个存储单元都有一个唯一的地址。每个存储单元都有一个唯

3、一的地址。73.1 基本数据类型基本数据类型v为了为了快速地对数据进行运算快速地对数据进行运算,有效地利用存有效地利用存储空间储空间,VB将将不同的数据不同的数据分为多种分为多种数据类型数据类型。 每种数据类型的长度一定。每种数据类型的长度一定。(占用的内存存储占用的内存存储单元数量一定单元数量一定)。 每种数据类型表示的每种数据类型表示的值有一定的范围值有一定的范围。 为了区别这些不同的数据类型,每种数据类为了区别这些不同的数据类型,每种数据类型都有型都有一个特定的类型名一个特定的类型名。v在程序设计中,要随时注意所用数据的类型。在程序设计中,要随时注意所用数据的类型。83.1 基本数据类型

4、基本数据类型1、数值型、数值型类型名类型名中文名中文名字节字节表示范围表示范围精度精度Byte字节型字节型10255精确精确Integer整型整型2-3276832767精确精确Long长整型长整型4-2147483648 2147483647精确精确Single单精度单精度浮点型浮点型4-3.402823 1038 3.402823 10387位有效数位有效数字字Double双精度双精度浮点型浮点型8-1.79769313486232 10308 1.79769313486232 10308 15位有效位有效数字数字Currency货币型货币型8-922337203685477.5808 9

5、22337203685477.580715位整数位整数,4位小数位小数93.1 基本数据类型基本数据类型v这这6种数据类型种数据类型都是用来表示都是用来表示数值数值的。的。v在实际编程时,应根据在实际编程时,应根据具体用途决定选用那具体用途决定选用那种类型来表示数值种类型来表示数值。v表示范围越大、精度越高的数据类型表示范围越大、精度越高的数据类型占用的占用的存储空间也越大存储空间也越大,运算速度越慢运算速度越慢。103.1 基本数据类型基本数据类型2、String型型(字符串型字符串型)v字符串字符串是指连续的字符序列。是指连续的字符序列。vString类型专门用来存放类型专门用来存放文字信

6、息文字信息,字符串,字符串类型所占内存空间大小与字符串长度有关。类型所占内存空间大小与字符串长度有关。vString类型又分为:类型又分为:变长字符串型变长字符串型和和定长字定长字符串型符串型。 变长字符串变长字符串:指字符长度不固定,随赋值而:指字符长度不固定,随赋值而变。如未经说明,缺省为变长字符串。变。如未经说明,缺省为变长字符串。 定长字符串定长字符串:始终保持其长度不变。要人为:始终保持其长度不变。要人为规定,如长度超过规定值将被截去。规定,如长度超过规定值将被截去。113.1 基本数据类型基本数据类型3、Boolean型型(逻辑型、布尔型逻辑型、布尔型)v逻辑型数据只有两个可能的值

7、:逻辑真逻辑型数据只有两个可能的值:逻辑真True和逻辑假和逻辑假False,用,用2个字节个字节存储。存储。4、Date型型(日期时间型日期时间型)v日期型数据可存放日期型数据可存放日期信息日期信息、时间信息时间信息或或同同时存放日期和时间信息时存放日期和时间信息。v日期型数据用日期型数据用8个字节个字节来存储。来存储。v日期范围从日期范围从100年年1月月1日到日到9999年年12月月31日日123.2 直接常量直接常量本节知识点:本节知识点: 常量常量。 基本数据类型的常量基本数据类型的常量。133.2 直接常量直接常量v常量常量:是指在程序运行过程中始终保持不变:是指在程序运行过程中始

8、终保持不变的常数、字符串等。在的常数、字符串等。在VB中,有两种形式的中,有两种形式的常量:常量:直接常量直接常量和和符号常量符号常量。v直接常量直接常量:在程序代码中,以:在程序代码中,以显式给出的数显式给出的数据据。如在程序中多次出现很大的数字或很长。如在程序中多次出现很大的数字或很长的字符串,为了方便阅读和维护,应该使用的字符串,为了方便阅读和维护,应该使用符号常量符号常量。143.2 直接常量直接常量1、整型常量、整型常量v整型常量包括:整型常量包括:字节型字节型、整型整型、长整型长整型。 十进制十进制:1、20、500、-101 、230594& 八进制八进制:&O1

9、1、&O127 错误:错误:&O81 十六进制十六进制:&H11、&HFF 错误:错误:&HFRv例子例子:分别求:分别求&O176340、 &O176340&的的十进制值十进制值1111110011100000 1000001100100000 = -800153.2 直接常量直接常量2、浮点型常量、浮点型常量v浮点型常量包括:浮点型常量包括:单精度单精度和和双精度双精度( !、# )。 3.14159、0.23、24.、-.45、-0.05v浮点型常量的浮点型常量的指数表示法指数表示法:mEn 表示表示 m10n,其中的,其中

10、的m为整数常量或实数常量为整数常量或实数常量,n必须是整数常量必须是整数常量,m和和n均不能省略均不能省略。 1.2E10、-1.23E-3错误:错误:1.2E1.4、E4v浮点常量中的浮点常量中的E也可以是也可以是e、D、d。163.2 直接常量直接常量3、字符串型常量、字符串型常量v字符串型常量必须使用字符串型常量必须使用英文的双引号英文的双引号将字符将字符文本括起来,文本括起来, “ ” 称为字符串的定界符。称为字符串的定界符。 “你好!你好!”、“dhsj 123”、“”“”v字符串常量可以是字符串常量可以是任何可输入的字符任何可输入的字符。v空字符串的作用:空字符串的作用:v如何将双

11、引号作为字符串的内容?如何将双引号作为字符串的内容?173.2 直接常量直接常量4、逻辑型常量、逻辑型常量v逻辑型常量只有两个:逻辑型常量只有两个:true、falsev注意:注意:“true”、“false” 是字符串常量。是字符串常量。5、日期时间型常量、日期时间型常量v使用使用 # 号作为定界符。号作为定界符。 #3/1/2009#、#April 1, 2009#、#1:00:00PM#183.3 变量变量本节知识点:本节知识点: 变量的概念变量的概念。 变量命名规则变量命名规则与与变量定义变量定义。 变量的使用变量的使用与与变量的类型转换变量的类型转换。 对象型变量对象型变量和和变体数

12、据类型变体数据类型。193.3 变量变量v程序运行过程中有许多数据需要程序运行过程中有许多数据需要暂存暂存,如:,如:控件的属性控件的属性,计算的中间结果计算的中间结果等。等。放在哪里呢?放在哪里呢?v放在计算机放在计算机内存内存中,什么是内存?怎么放?中,什么是内存?怎么放?v放在放在内存单元内存单元中,一个内存单元包含多少中,一个内存单元包含多少bit?地址地址1 地址地址2203.3 变量变量v内存单元的内存单元的地址地址为为二进制二进制,不方便使用和记,不方便使用和记忆,可使用不同的符号表示这些地址。如:忆,可使用不同的符号表示这些地址。如:aa表示表示地址地址1,bb表示表示地址地址

13、2v这些符号就是变量这些符号就是变量!v谁来完成这些谁来完成这些符号符号和和内存地址内存地址间的相互转换?间的相互转换?由计算机自动完成。由计算机自动完成。213.3 变量变量v变量的生存期:变量的生存期:为变量开辟内存空间为变量开辟内存空间为变量赋值为变量赋值读取变量的值读取变量的值清除内存变量清除内存变量223.3 变量变量v如何使用变量如何使用变量: 变量的定义:变量的定义: 变量的使用变量的使用。 变量类型的转换变量类型的转换。 变量的释放。变量的释放。变量的命名变量的命名变量的类型变量的类型变量的作用范围变量的作用范围变量的初始值变量的初始值233.3 变量变量1、变量命名规则、变量

14、命名规则v变量命名注意变量命名注意:见名知意,最好不用中文。:见名知意,最好不用中文。vVB对变量命名有如下要求:对变量命名有如下要求: 以字母开始以字母开始,可以包括,可以包括字母字母、数字数字和和下划线下划线。 不能包括标点符号。不能包括标点符号。 不能多于不能多于255个字符。个字符。 不能与不能与关键字关键字重复。重复。(如:如:End、Private) 在同一在同一作用域作用域中,变量不能中,变量不能重名重名。243.3 变量变量v变量命名举例:变量命名举例: 合法变量名合法变量名:Abc、Name、intAge、x12、My_var1、PI 非法变量名非法变量名:12ab、_x、a

15、b.cd、$MyVar、Call、x1、a+bv当在代码窗口中编程时,如果使用不合规则当在代码窗口中编程时,如果使用不合规则的变量名,系统会显示的变量名,系统会显示错误提示错误提示。253.3 变量变量2、定义变量、定义变量v定义变量定义变量(声明变量声明变量)就是为变量分配内存空就是为变量分配内存空间。使用间。使用变量声明语句变量声明语句来定义变量,语法格来定义变量,语法格式:式:v声明变量的语句作用是:告知程序该变量的声明变量的语句作用是:告知程序该变量的变量名变量名,变量的数据类型变量的数据类型,变量的作用范围变量的作用范围,最后最后为变量赋予相应的初值为变量赋予相应的初值。 Publi

16、c|Private|Dim|Static 变量名变量名 As 数据类型名数据类型名263.3 变量变量v例子例子:dim inta as integerdim stra as stringdim blna as booleandim datb as datev变量名变量名、变量的数据类型变量的数据类型、变量的初始值变量的初始值。v变量的作用范围比较复杂,后面专门讨论。变量的作用范围比较复杂,后面专门讨论。273.3 变量变量v变量的作用范围变量的作用范围(变量的作用域变量的作用域):指变量的:指变量的有效范围有效范围,即声明某个变量后,能够对该变,即声明某个变量后,能够对该变量量赋值赋值或或读

17、取其值读取其值的的代码范围代码范围。v在在VB中,变量有三种作用域:中,变量有三种作用域:过程级过程级、模块模块级级和和全局级全局级。 什么是过程、模块和全局?什么是过程、模块和全局?283.3 变量变量v过程级变量过程级变量:也称:也称局部变量局部变量,作用域为定义,作用域为定义它的它的过程过程,在哪个过程中定义,就只能在该,在哪个过程中定义,就只能在该过程中使用。过程中使用。 可在过程的可在过程的任意位置任意位置定义过程级变量,语句:定义过程级变量,语句:Dim|Static 变量名变量名 As 数据类型名数据类型名293.3 变量变量 使用使用Dim关键字关键字定义定义的过程级变量的过程

18、级变量与所在的与所在的过程共存亡过程共存亡。 使用使用Static关键字关键字定义定义过程级变量也过程级变量也称称“静静态变量态变量”,只要所在过程被执行一次,只要所在过程被执行一次,变量变量的值将一直存在的值将一直存在,变量所在过程被再次执行,变量所在过程被再次执行时,变量值不被初始化。时,变量值不被初始化。(前提:程序没有退前提:程序没有退出出)303.3 变量变量v模块级变量模块级变量:指定义的变量可以:指定义的变量可以被所在模块被所在模块的所有过程使用的所有过程使用。定义模块级变量的语句必。定义模块级变量的语句必须放在所在模块的须放在所在模块的通用声明段通用声明段中中(所有过程的所有过

19、程的前面前面)。语句:。语句:Dim|Private 变量名变量名 As 数据类型名数据类型名 两个关键字的两个关键字的作用相同作用相同。 模块级变量在模块启动时创建,模块退出时模块级变量在模块启动时创建,模块退出时清除。清除。313.3 变量变量v程序级变量程序级变量:指定义的变量可以被程序中所:指定义的变量可以被程序中所有模块使用,也称有模块使用,也称“全局变量全局变量”。声明程序。声明程序级变量的语句必须放在级变量的语句必须放在模块模块开始的通用声明开始的通用声明段中。语句:段中。语句:Public 变量名变量名 As 数据类型名数据类型名 程序级变量在模块启动时创建,程序退出时程序级变

20、量在模块启动时创建,程序退出时清除。清除。323.3 变量变量v变量的作用域取决于变量的作用域取决于:定义变量时使用的:定义变量时使用的关关键词键词和定义变量语句的和定义变量语句的位置位置。v程序中某个过程中的语句:程序中某个过程中的语句: 可以存取可以存取本过程中定义的过程级变量、所在本过程中定义的过程级变量、所在模块定义的模块级变量、任意模块定义的全模块定义的模块级变量、任意模块定义的全局变量。局变量。 不能存取不能存取其他过程中定义的过程级变量、其其他过程中定义的过程级变量、其他模块中定义的模块级变量。他模块中定义的模块级变量。333.3 变量变量v一条语句定义多个变量一条语句定义多个变

21、量: v强制变量定义:强制变量定义: 与其他语言不同,与其他语言不同,VB允许不定义就使用变量,允许不定义就使用变量,对没有定义而直接使用的变量,对没有定义而直接使用的变量,VB把它作为把它作为变体数据类型变体数据类型(Variant)。 使用强制变量定义功能:使用强制变量定义功能:Option ExplicitDim a as integer,b as string,c as boolean,d as date343.3 变量变量3、变量的赋值与取值、变量的赋值与取值v给变量赋值使用赋值语句:给变量赋值使用赋值语句:Let 变量名变量名=表达式表达式v“=”为赋值号,不是等号。为赋值号,不是

22、等号。赋值语句的执行赋值语句的执行结果结果是将表达式的值是将表达式的值写入写入变量名代表的变量名代表的内存内存中中,原来的值被,原来的值被覆盖覆盖。v如果表达式值的数据类型与变量的数据类型如果表达式值的数据类型与变量的数据类型不一致不一致,在赋值时会进行,在赋值时会进行类型转换类型转换。353.3 变量变量v变量的值变量的值除非被赋新值,否则不会自动变化。除非被赋新值,否则不会自动变化。v对于对于数值类型变量数值类型变量,如果被赋的新值超出其,如果被赋的新值超出其可表示的范围,会出现可表示的范围,会出现“溢出溢出”错误。错误。v例子例子:a=10000: b=20000: c=30000a=a

23、+b+cv赋值语句的赋值语句的错误错误写法:写法:a=b=10000dim a as integer,b as integer,c as integer36上机作业二上机作业二v习题习题1 1:作业二增加一个按钮,界面如图所作业二增加一个按钮,界面如图所示。使用变量保存窗体位置和大小信息。示。使用变量保存窗体位置和大小信息。37上机作业二上机作业二v习题习题2 2:窗体上有两个命令按钮,其中一个:窗体上有两个命令按钮,其中一个按钮上有图标,另一个按钮有按钮上有图标,另一个按钮有“移动移动”字样,字样,要求:每单击一下要求:每单击一下“移动移动”按钮,有图标按按钮,有图标按钮就会向右移动一点。钮

24、就会向右移动一点。 38上机作业二上机作业二v习题习题3:程序运行后,显示空白窗体,单击程序运行后,显示空白窗体,单击窗体则显示一幅背景图片,再单击图片消失,窗体则显示一幅背景图片,再单击图片消失,如此循环。如此循环。(提示:要用到提示:要用到LoadPicture()函数函数)393.3 变量变量4、变量的同名问题、变量的同名问题v不允许同名的情况不允许同名的情况 在同一作用域内不能定义重名的变量在同一作用域内不能定义重名的变量。 同一过程中不能定义同名过程级变量。同一过程中不能定义同名过程级变量。 同一模块中不能定义同名的模块级变量。同一模块中不能定义同名的模块级变量。 同一模块中不能定义

25、同名的全局变量。同一模块中不能定义同名的全局变量。 同一模块中的模块级变量和全局变量不能同同一模块中的模块级变量和全局变量不能同名。名。403.3 变量变量v允许同名的情况允许同名的情况 不同过程中可以定义同名的过程级变量。不同过程中可以定义同名的过程级变量。 不同的模块中可以定义同名的模块级变量。不同的模块中可以定义同名的模块级变量。 过程中可以定义过程中可以定义与模块级变量同名的过程级与模块级变量同名的过程级变量变量。 过程中可定义过程中可定义与全局变量同名的过程级变量与全局变量同名的过程级变量。 模块中可以定义模块中可以定义与其他模块定义的全局变量与其他模块定义的全局变量同名的模块级变量

26、同名的模块级变量。 不同的模块中可以定义同名的全局变量。不同的模块中可以定义同名的全局变量。413.3 变量变量v变量同名时的情况变量同名时的情况 不同作用域的变量同名时,不同作用域的变量同名时,作用域小的变量作用域小的变量会屏蔽作用域大的变量会屏蔽作用域大的变量。 如果不同模块中全局变量同名,访问其他模如果不同模块中全局变量同名,访问其他模块中定义的全局变量时应添加模块名进行限块中定义的全局变量时应添加模块名进行限定(形式为定(形式为“模块名模块名.变量名变量名”) 当全局变量与当全局变量与过程级变量或模块级变量同名过程级变量或模块级变量同名时,可在全局变量名前加模块名加以区别。时,可在全局

27、变量名前加模块名加以区别。423.3 变量变量5、变量的类型转换、变量的类型转换v类型转换类型转换:把数据从一种类型转换为另一种:把数据从一种类型转换为另一种类型。可能出现类型转换的场合:类型。可能出现类型转换的场合: 为变量或对象属性赋值时为变量或对象属性赋值时,赋值号两边的类,赋值号两边的类型不一致。型不一致。 计算表达式时计算表达式时,表达式中运算数类型与运算,表达式中运算数类型与运算符要求不符。符要求不符。 在调用对象的方法或通用过程时在调用对象的方法或通用过程时,提供的参,提供的参数与要求的类型不符。数与要求的类型不符。433.3 变量变量v隐式转换隐式转换:当出现需要进行类型转换的

28、情况,:当出现需要进行类型转换的情况,VB会会根据规则自动进行转换根据规则自动进行转换。对无法完成的。对无法完成的转换会转换会报告错误报告错误。 数值型间的转换数值型间的转换:整数到浮点整数到浮点:大小一般不变。:大小一般不变。浮点到整数浮点到整数:小数部分四舍五入,如果小数:小数部分四舍五入,如果小数部分正好是部分正好是0.5,则,则向最近的偶数靠拢向最近的偶数靠拢。如:如:intN1=4.5 : intN2=3.5 注意变量表示范围,防止出现注意变量表示范围,防止出现“溢出溢出”错误。错误。443.3 变量变量 字符串与数值型之间的转换字符串与数值型之间的转换:如果字符串表示的内容如果字符

29、串表示的内容全部是数值信息全部是数值信息,则,则可以将其赋值给数值型变量。可以将其赋值给数值型变量。如:如:strA=“1234”:intA=strA对无法转换的会出现对无法转换的会出现“类型不匹配类型不匹配”错误。错误。注意注意空格空格453.3 变量变量 逻辑型的转换逻辑型的转换:逻辑型逻辑型数值型数值型:False转换为转换为0;True转换为转换为-1数值型数值型逻辑型逻辑型:0转换为转换为False;其他为;其他为True字符串型字符串型逻辑型逻辑型:只有:只有“False”和和“True”可可转转 日期时间型的转换日期时间型的转换:日期时间型转换为数值型:日期部分转换为数值日期时间

30、型转换为数值型:日期部分转换为数值的整数部分,时间部分转换为小数部分。的整数部分,时间部分转换为小数部分。 所有的类型值均可以转换为字符串值所有的类型值均可以转换为字符串值。463.3 变量变量v显式转换显式转换:使用:使用VB提供的提供的内部函数内部函数进行类型进行类型转换,实际编程时最好使用显示转换,这样转换,实际编程时最好使用显示转换,这样不易出错。不易出错。 常用转换函数见教材常用转换函数见教材67页表页表3.2 例子例子:i3 = CInt(123.5) fl = CDbl(“x1.2”)473.3 变量变量v不能进行转换的情况不能进行转换的情况: 包含包含非数值字符非数值字符的字符串向数值型转换。的字符串向数值型转换。 非非“False”或或“True”的字符串的字符串向逻辑型转向逻辑型转换。换。 非日期内容的字符串非日期内容的字符串向日期型转换。向日期型转换。 转换转换超出目标类型的表示范围超出目标类型的表示范围。483.3 变量变量6、变体数据类型、变体数据类型(Variant)v变体类型变量可以存贮几乎所有系统定义类变体类型变量可以存贮几乎所有系统定义类型的数据型的数据(除用户自定义类型除用户自定义类型)。把其它类型。把其它类型的数据赋给变体变量,变体变量的类型会随的数据赋给变体变

温馨提示

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

最新文档

评论

0/150

提交评论