




已阅读5页,还剩80页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章数据类型 常量 变量及表达式 第2页 本章主要内容 VisualBasic程序的语句和编码规则数据类型变量与常量常用内部函数运算符和表达式 6学时 第3页 2 1VisualBasic程序的语句和编码规则 第4页 2 1 1语句 1 有效语句可执行语句 X 5Command1 Caption 退出 说明语句 DimxasInteger 说明变量x为整型数2 注释语句以单引号 开头的文字为注释内容 增加程序的可读性 第5页 2 1 2编码规则 1 每个语句最多可以包含255个字符 2 一行也可以书写多个语句 语句之间用冒号分隔 x 5 y 6 printx y x y x y x y 3 不区分大小写字母 4 数制系统十进制 系统默认 十六进制 H 八进制 O 例 x h8C y o70 x y 十六进制8C 十进制140 八进制70 十进制56 第6页 2 2数据类型 第7页 数据是程序的组成部分 也是程序处理的对象 数据类型体现了数据结构的特点 VB的数据类型比较丰富 主要可以分为两类 基本数据类型和用户自定义数据类型 2 2 1基本数据类型 VB6 0提供的基本数据类型主要有 字符型数据 数值型数据 货币类型 字节类型 布尔类型 日期类型 通用类型 无符号类型 对象类型等九种数据类型 第8页 VB提供的标准数据类型 第9页 1 数值型数据 VisualBasic支持几种数值数据类型Integer 整型 Single 单精度浮点型 Long 长整型 Double 双精度浮点型 Currency 货币型 Byte 字节型 也可用于数值计算 说明 1 所有数值变量都可相互赋值 2 在将浮点数赋予整数之前 VB将浮点数的小数部分四舍五入到整数 第10页 2 字符 String 数据类型 定义 双引号界定的一个字符序列 每个ASCII码字符占1个字节的存储单元 每个汉字占2个字节的存储单元 例 hello 空字符串 说明 双引号起界定作用 字符串输出时不显示双引号 串中的字符区分大小写 第11页 DimSAsStringS Database 默认String型变量的长度可变S howdoyouknow 声明固定长度String型变量 语法 Dim变量名asString size例如 DimSAsString 20 变量的值不得超过20个字符 第12页 3 布尔 Boolean 数据类型 第13页 4 日期 Date 数据类型 用于存储Date和Time值 每个数据占8个字节的存储单元 如 以 括起来的任何在字面上被认作日期和时间的字符 DimSomeDateAsDateSomeDate 1980 03 16 SomeDate 3 6 9313 20 SomeDate March2719931 20am 第14页 5 对象 Object 数据类型 Object数据可表示应用程序中的对象 每个数据占4个字节的存储单元 对象数据存储的实际内容为该对象的引用地址 如 DimobjDbAsObjectSetobjDb OpenDatabase c Vb5 Biblio mdb 第15页 6 变体 Variant 数据类型 Variant是缺省类型 是一种通用的 可变的数据类型 它可以表示上述任何一种数据类型 把数据赋予Variant变量 则不必在这些数据的类型间进行转换 VB会自动完成任何必要的转换 例如 Dimaasvarianta 17 变量值为字符串 17 a a 15 变量值为数值2a visualbasic6 0 变量值为字符串 第16页 测试数据类型函数 VB提供一种VarType函数 用来测定一个Varinat变量的实际数据类型 VarType函数的值是一个数值 其含义如下 函数值数值类型函数值数值类型0空1Null2整型3长整型4单精度浮点数5双精度浮点数6货币型7日期型8字符串 第17页 DimAAsVariant A为变体型 无赋值B 123456 B为长整型 因值超过32767C 9000 C为长整型D 89 5 D为单精度型E 3 14159 E未定义 则自动为双精度型F abcdefg F为字符型G 3000008 G为货币型H 08 15 2003 H为日期型PrintA B C DPrintVarType A VarType B VarType C VarType D PrintE F G HPrintVarType E VarType F VarType G VarType H 问题 变量B定义为整型 变量E定义为单精度 第18页 2 2 2用户自定义类型 有时我们会感到仅有以上基本数据类型是不够的 我们希望将不同类型的数据组合成一个有机的整体 以便于引用 这样一个整体是由若干不同类型的 互相有联系的数据项组成 它类似于C语言中的 结构体 类型的数据 这种结构我们称为 记录 VB提供Type语句 用户可以自己定义这种数据类型 第19页 在模块的声明部分可以建立自定义数据类型 语法格式 Private Public TypeAs As EndType 第20页 例 TypeStudentTypeNoasintegerNameasstring 30SexasbooleanAgeasintegerTelasstring 15EndType 与integer地位一样 调用 如 stu Name 李明 stu Age 18 定义数据类型 声明变量为自定义类型 DimstuasStudentType 变量的引用 第21页 说明 1 记录类型中的元素可以是字符串 但必须是定长字符串 2 记录类型的定义必须放在标准模块 BAS 和窗体模块的声明部分 当在标准模块中定义时 关键字Type前可以有Public 默认 而如果在窗体模块中定义 则必须在前面加上关键字Private 3 在记录类型中不能含有数组 4 在随机文件操作中 记录类型数据有着重要的作用 第22页 2 2 3枚举类型 枚举数据类型是用Enum语句定义的一种长整型数据的集合 语法格式 Private Public Enum EndEnum 第23页 例 EnumDarkColorcolor1 vbRed 0 8 深红色color2 vbGreen 0 8 深绿色color3 vbBlue 0 8 深蓝色EndEnum调用 如 Form1 BackColor DarkColor color2 窗体的背景颜色为深绿色 第24页 2 3变量与常量 第25页 在程序中 不同类型的数据既可以以常量的形式出现 也可以以变量的形式出现 常量在程序执行期间其值是不能发生变化的 而变量形式的值是可以变化的 它代表内存中指定的存储单元 第26页 2 3 1变量 变量是指在程序运行中 其值可以发生改变的数据 变量名的命名以英文字母开头 其后可以是字母 数字和下划线的组合 最后一个字符也可以是类型说明符 中间不能含空格 或标点符号 不得与VisualBasic的保留字相同 第27页 2 变量的声明 VB中变量都属于一定的数据类型 包括基本数据类型和用户定义数据类型 在VB中 可以用下面几种方式来规定变量的类型 1 用Dim语句DimAs数据类型可以是关键字 Integer Long Single Double String Byte 也可以是类型说明符 整型 长整型 单精度 双精度 字符 第28页 例 PrivateSubForm Click DimaAsStringDimb Dimc a 1234567 b 32767c a bPrinta VarType a Printb VarType b Printc VarType c EndSub 输出 1234567832767212673343 第29页 2 用Public语句PublicAs例如 PublicdispAsByte 定义全局范围的字节型变量PublicselcAsBoolean Valc 定义全局范围的布尔和双精度变量Public语句只能在全局模块中使用 用Public声明的变量在本工程的所有模块和过程中都可以引用 第30页 3 用Private语句PrivateAs例如 PrivateNewDateAsDate 定义日期变量PrivateOnOffAsBoolean money 声明布尔和货币型变量Private与Public语句的区别在于所声明变量的作用范围不同 还可以用Static语句声明静态变量 第31页 变量类型初始化值数值型0变长的字符型空字符串 定长的字符型0Variant 变体型 Empty 空值 3 变量的初始化 第32页 先用Type语句创建一个用户自定义数据类型 再用Dim语句声明变量 见前例 4 用户自定义变量的声明 5 隐式声明与显示声明 VisualBasic允许用户在编写应用程序时 不声明变量而直接使用 系统临时为新变量分配存储空间并使用 这就是隐式声明 所有隐式声明的变量都是Variant数据类型 VisualBasic根据程序中赋予变量的值来自动调整变量的类型 第33页 例 下面是一个很简单的程序 其使用的变量a b Sum都没有事先定义 PrivateSubForm Click Sum 0a 10 b 20Sum a bPrint Sum SumEndSub 第34页 良好的编程习惯都应该是 先声明变量 后使用变量 这样做可以提高程序的效率 同时也使程序易于调试 VisualBasic中可以强制显式声明 可以在窗体模块 标准模块和类模块的通用声明段中加入语句 OptionExplicit 强制显式声明 OptionExplicit语句 第35页 6 变量的作用域 变量的作用域 就是变量作用的有效范围 VB中变量有如下几种有效范围 局部变量 全局变量 窗体变量和模块变量 1 局部变量在过程或函数中使用的变量是局部变量 不同的过程或函数使用的局部变量名可以相同 但它们之间互不影响 第36页 2 全局变量全局变量是在应用程序中其值不被重新设置的变量 全局变量只能在全局模块中用Public进行说明 3 窗体变量和模块变量窗体变量是从属于同一窗体的不同过程使用的变量 定义在该窗体代码的前面 模块变量是模块中所有过程都可以使用的变量 它定义在模块代码的前面 第37页 变量作用域的关系 VB应用程序 窗体模块 通用过程 声明部分 事件过程 声明部分 通用过程 标准模块 VB应用程序构成 第38页 2 3 2常量 VB有两种常量 一种是文字常量 一种是符号常量 文字常量文字常量分为 数值常量 字符串常量 逻辑常量 日期常量 第39页 1 数值常量数值常量有 字节型数 整型数 长整型数 定点数及浮点数 字节型数 整型数 长整型数都是整型量 可以使用三种整型量 十进制整数 十六进制整数 八进制整数 只要是在该类型数合法范围之内 十进制数按常用的方法来表示 十六进制数前加 H 八进制数前加 O 第40页 如 1200 十进制数1200 H333 十六进制数333 O555 八进制数555 定点数是正数的或负数的带小数点的数 如 323 43 456 78 浮点数分为单精度和双精度数 浮点数由尾数 指数符号和指数三部分组成 尾数是实数 指数符号是E 单精度 或D 双精度 指数是整数 第41页 2 字符串常量字符串是双引号括起来的一串字符 也可以是汉字 其长度不超过32767个字符 一个汉字占两个字节 指数符号E和D的含义为 乘上10的幂次 例如 12 345E 6和78D3所表示的值分别为0 000012345和78000 定点数和浮点数可以是单精度的 也可以是双精度的 单精度数保留7位有效数字 双精度数保留15位或者16位有效数字 第42页 3 逻辑常量逻辑常量只有两个 逻辑真True和逻辑假False 4 日期常量格式 mm dd yy 例如 09 01 06 表示2006年9月1日 下面是合法的字符串及它的长度 abcdef 长度为6个字符 VB中文版 长度为5个字符 第43页 2 符号常量 符号常量是用一个符号名来代替数值和字符串 符号名规定是 40个字符以内 第一个必须是字母 其后可以由字母 数字和下划线组成 其中不区分大小写 符号常量要先定义 后使用 定义符号常量的一般格式为 格式 Global Const 符号常量名 表达式 符号常量名 表达式 功能 设置符号常量为表达式的值 第44页 说明 Global 全局的 项选择时 表示在整个程序中都可以使用常量 其中表达式由文字常量 算术运算符 除乘方运算符 以外 逻辑运算符组成 也可以使用字符串 表达式不能使用字符串连接运算和用户定义的函数或内部函数 例如 ConstI 2 J 3 定义一个整型 一个长整型符号常量Conststr srting 定义一个串常量Constpie 3 1415926 定义一个单精度常量Constdupie 2 pie 定义一个单精度常量 第45页 可以在任何用表达式的地方使用符号常量 有时使用符号常量比使用变量更方便 符号常量的特点如下 符号常量在整个模块中只需要定义一次 符号常量定义后其值能被改变 在独立的程序中 使用符号常量比使用变量能产生更有效的代码 使用常量便于程序的修改 第46页 2 4常用内部函数 第47页 函数是任何一种语言必不可少的部分 VB的函数十分丰富 本节分类介绍常用的内部函数 2 6 1函数的基本概念 函数的三要素 函数名 参数 返回值函数调用格式 参数表 函数分类 内部函数 用户自定义函数VB提供了大量的内部函数 在这些函数中 有些是通用的 有些与某些操作有关 大体上可分为 数学函数 字符操作函数 日期和时间函数 转换函数等 第48页 Abs x 返回x的绝对值 x Sgn x 返回x的符号Int x 返回不大于x的最大整数Fix x 返回x的整数部分Rount X n 根据n的值对x的指定位进行四舍五入Log x 返回x的自然对数lneExp x 返回以e为底 以x为指数的值exSqr x 返回x的平方根Sin x 返回x的正弦值Cos x 返回x的余弦值Tan x 返回x的正切值Atn x 返回x的反正切值Rnd x 产生一个0 1之间的单精度随机数 2 6 2数学运算函数 可以用下面的公式转换为弧度 1度 180 3 14159 180 弧度 第49页 2 6 3字符串函数 String n St 返回n个St中的第一个字符 重复 Space n 返回n个空格字符Str x 将x转换成字符串Left St n 取St左边的n个字符Right St n 取字符串右边的n个字符Mid St m n 从第m个字符开始取字符串的n个字符Instr St1 St2 返回St2在St1中的起始位置Replace St1 St2 St3 主串St1中的St2子串被St3子串替换Ltrim St 去掉St左边的空格字符Rtrim St 去掉St右边的空格字符Alltrim St 去掉St左 右两边的空格字符Len St 测试St的长度 第50页 2 6 4日期与时间函数 Now 返回系统的当前日期和时间Time 返回系统的当前时间Date 返回系统的当前日期DateSerial year month day 产生日期DateValue Now DateString 产生日期 C D Day Now DateString 计算日期值Month DateString 计算月份值MonthName N String 返回月份名Year Now DateString 返回年号Hour Now 返回小时 0 23 Minute Now 返回分钟 0 59 第51页 2 6 5格式输出函数 格式输出函数可以用于指定各种类型数据的输出格式 调用格式 Format 表达式 格式串 例 x 0 00567 y 56700Format x 0057Format x 0 00 0 57 Format x 0 0E 00 5 7E 3Format y 0 0E 00 5 7E 4 例 D1 now 假设当前日期为2006年9月1日 Format D1 yyyy mm dd 2006 09 01Format D1 yyyy m dhh mm 2006 9 109 20 例 A1 Good A2 GoodBye Format A1 Good 左对齐Format A1 Good 右对齐Format A2 GoodBye 按实际输出Format A2 GOODBYE 按大写输出 第52页 Hex x 把一个十进制数转换为十六进制数Oct x 把一个十进制数转换为八进制数Cint x 把x的小数部分四舍五入 转化为整数Ccur x 把x的值转换为货币类型值 小数部分保留4位且四舍五入CDbl x 把x的值转换为双精度数CLng x 把x的小数部分四舍五入转换为长整数型数CSng x 把x的值转换为单精度数CVar x 把x的值转换为变体类型值 2 6 6转换函数 第53页 第54页 例 String1 热爱大自然 Mid String1 Len String1 1 2 A 热爱B 爱大C 大自D 自然 例 表示空格 输出命令的结果是 Len Ltrim ABCD A 4B 6C 7D 9 例 ANS STUDENT DBF MYFILE Mid ANS 1 Instr ANS 1 MYFILEA STUDENT DBFB STUDENTC STUDENT ANSD 11 第55页 例 A is B Thisisabook Instr B A Instrrev B A 结果 36 例 A 湖南师范大学 B 师范 C 科技 D E Replace A B C E 结果 湖南科技大学 结果 湖南大学 F Replace E C D F 例 字符串长度函数Len Space 3 Space 2 的值是A B C D 例 表达式VAL 3 141PI 0 5 A 3 141PI0 5B 3 641C 3 1410 5D 出错 第56页 例 Val Mid P586 2 1 Right Str Year Date 2 3的计算结果是 假设系统日期为2006年9月10日 A 506B 5 2006C 509D 出错信息 例 下列选项中得不到字符型数据的是A Date Year Date B Chr 100 C Str 123 567 D Instr Str 3121 1 第57页 2 5运算符和表达式 第58页 2 5 1运算符 乘方 负号 乘 除 整除 操作数一般为整型Mod 求余 加 减 1 算术运算符 第59页 2 连接运算符 VisualBasic的连接运算符只有两个 和 其基本功能都是连接两个字符串 两者的区别是 1 用于作强制字符串连接 即两边的表达式无论是字符型还是数值型 进行连接操作前 先将两边的表达式都转换成字符型 然后再连接 2 可以作为数值连接 即如果被连接的表达式中有一个是数字字符串 例如 12 5 而另一个是数值型则执行数值的加法运算 第60页 关系运算符都是双目运算 是用来比较两个运算量之间的关系 关系表达式的运算结果为逻辑量 若关系成立 结果为True 若关系不成立 结果为False 3 比较运算符 第61页 4 逻辑运算符 两个操作数全为真 则与运算表达式为真 只要有一个为真 则或运算表达式为真 两个操作数 一个为真 另一个为假时 则异或运算表达式为真 两个操作数同为真或同为假时 则等价运算表达式为真 第一个操作数为假 或第二个操作数为真时 则等价运算表达式为真 真求反为假 假求反为真 第62页 逻辑运算 与 或 非的真值表 第63页 各种运算符之间的运算优先顺序是 逻辑运算 异或 等价 蕴含的真值表 第64页 2 5 2表达式 表达式是由常量 变量 函数和运算符按一定的规则连接成的运算式用圆括号可以改变运算的优先顺序 按照运算规则 每个表达式都能产生惟一的运算结果 运算结果的类型由参与运算的数据和运算符共同决定 1 算术表达式 参加运算的对象均为数值型数据 运算结果是数值型 第65页 1 运算符不能相邻 例a b是错误的 2 乘号不能省略 例x乘以y应写成 x y 3 括号必须成对出现 均使用圆括号 4 表达式从左到右在同一基准并排书写 不能出现上下标 5 要注意各种运算符的优先级别 为保持运算顺序 在写 表达式时需要适当添加括号 若用到库函数必须按库函要求书写 表达式的书写中需注意的问题 b sqr b b 4 a c 2 a a b a b 第66页 表达式4 5 6 6 7 8Mod4 4 2 6 最终表达式的值为 6 第67页 2 字符串表达式 例 100 123 结果为223 100 123 结果为100123 Abc 123 结果为Abc123 Abc 123 出错 100 123 结果为100123100 123 结果为100123 Abc 123 结果为Abc123 Abc 123 结果为Abc123 注意 使用运算符 时 变量与运算符 之间应加一个空格 这是因为符号 还是长整型的类型定义符 如果变量与符号 接在一起 VB系统先把它作为类型定义符处理 因而就会出现语法错误 第68页 3 比较表达式 1 数值比较对两个数值数据进行比较的惟一标准就是数值的大小 比较运算结果比较运算结果X YTrueX YTrueXYTrue 例2 3 数值比较示例 令X 25 Y 18 第69页 2 字符串比较字符串比较的规则由OptionCompare语句决定 在声明中使用OptionCompareBinary语句后 字符大小按其ASCII码的值进行比较 默认方式 在声明中使用OptionCompareText语句后 字符大小按文本方式比较 ASCII码字符不区分大小写 汉字大小按照拼音顺序排列 第70页 七位ASCII编码表 b7b6b5 b4b3b2b1 0000000100100011010001010110011110001001101010111100110111101111 NULSOHSTXETXEOTENQACKBELBSHTLFVTFFCRSOSI DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS 空格 0123456789 ABCDEFGHIJKLMNO PQRSTUVWXYZ abcdefghijklmno pqrstuvwxyz DEL 000 001 010 011 100 101 110 111 第71页 OptionCompareBinaryOptionCompareText比较运算结果比较运算结果 B A True B A True a A False a A True ABCD ABC True ABCD ABC True 一 啊 False 一 啊 True 北京 北方 False 北京 北方 True 例2 4 字符串比较运算示例 第72页 3 使用Like运算符比较 比较运算结果 Welcome Like e True B2B Like True 湖南省长沙市 Like 长沙 True H Like C E False 2Lines Like 0 3 True Like是一种特殊的比较运算符 在其右面的匹配字符串中可以使用通配符 单字符 多字符 和 数字 进行模糊比较 还可以使用 和 号进行字符集合 英文字母或数字 匹配比较 第73页 4 逻辑表达式 例 设a 3 b 5 则以下表达式值为真的是A a bAndb 10B a b Or b 0 C a0 D 3 5 a And b 0 例 X 5 y 5 第74页 表达式 0 150只能表示成 X 0ANDX 150 特别提示 例 表示基本工资在500及1000之间的表达式 JBGZ 500ANDJBGZ1000 第75页 例 表示40岁以上具有高级职称的女教师的逻辑表达式年龄 40AND性别 女 AND 职称 副教授 OR职称 教授 例 下面表达式是的含义是什么 年龄 40AND性别 女 AND职称 副教授 OR职称 教授 表示40岁以上的女副教授以及所有的正教授 第76页 日期型表达式日期型数据是一种特殊的数值型数据 只能有下面3种情况 1 DateB DateA例如 05 08 2002 05 01 2002 其结果为数值 72 DateA N例如 05 01 2002 7结果为日期型数据 05 08 2002 3 DateA N例如 05 08 2002 7结果为日期型数据 05 01 2002 第77页 运算符的优先级别 先 后 本章练习 第79页 1 在VisualBasic6 0中 数值1234 的类型是 A 整型B 长整型C 字符串型D 双精度型 2 下列可作为VisualBasic的变量名的是 A 3 DeltaB PrintCharC AbsD AB 3 下列可作为VisualBasic中所允许的形式的数是 A 25 74B 3 457E 100C 368D 1 87E 50 4 下列可作为VisualBasic中所允许的形式的数是 A 10 1 256 B D32C 2 5ED 12E3 5 下面的数写成普通的十进制数是8 6787E 8 A 86787000B 867870000C 8678700D 8678700000 第80页 6 在VisualBasic中 声明全局变量所使用的关键字是 A DimB PublicC Stati
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年戒毒康复培训招聘题库
- 校园消防安全问题台账(3篇)
- 2025年工程师地震安全面试高频题集
- 公共关系合作协议书格式
- 金融业务合作协议的示范
- 2025年大数据产品笔试模拟题及解析
- 2025年物业客服专员考试题集及答案解析
- 2025年美容美发师执业技能考核试题及答案解析
- 2025年教育心理咨询师资格考试试题及答案解析
- 课件中文字处理
- 污水处理工程施工工程组织设计
- 氨基酸作为药物靶点
- 经销商独家授权书
- 空气源热泵计算
- 第9课-秦统一中国【课件】1
- 园林绿化资料范例
- 万达入职性格在线测评题
- 车位无偿使用补充协议书范本
- 中华人民共和国标准设计施工总承包招标文件(2012年版)
- Magic Tree House 神奇树屋词汇大全
- 教师工作法律风险防范省公开课金奖全国赛课一等奖微课获奖课件
评论
0/150
提交评论