




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VisualBasic编码规则 4 1数据类型 4 2变量与常量 4 5运算符和表达式 第4章VisualBasic程序设计语言基础 4 4常用内部函数 含字符串函数 4 3变量的作用域 编码规则 1 VB代码不区分字符的大小写 但关键字将会自动转换为大写字母开头 后续字母为小写字母 2 一行可以书写多条语句 各语句之间用冒号 分隔 3 一行书写不完的语句 可以在该行后加上续行符 由空格 下划线 组成 然后换行书写 4 一行最多为255个字符 一条语句最多含1023个字符 5 用户自定义的变量 过程名等 VB以第一次定义为准 其后的输入自动转换 6 程序中可以使用标号用于程序的转向 标号为以字母开头 冒号结尾的字符串 7 注释行以Rem或撇号 开头 但是只有用撇号引导的注释可以出现在语句之后 可以使用 编辑 工具栏中的 设置注释块 命令将选定的若干行语句或文字设置为注释项 也可以使用 解除注释块 命令将选定的若干行解除注释 8 对象名命名约定 每个对象名由三个小写字母组成前缀和表示该对象作用的缩写字母组成 前缀表明对象的类型 如cmdExit为一个退出按钮 cmdEnter为一个确认命令按钮 4 1数据类型 表4 1VisualBasic的标准数据类型 1 数值型数据 Numeric 数值型数据一般分为整型数和浮点数两类 整型数分为整数 Integer 和长整数 Long 浮点数分为单精度浮点数 Single 和双精度浮点数 Double 有时也把货币型数据 Currency 和字节型数据 Byte 划归数值型数据 1 整数 Integer 整数是不带小数点和指数符号的数 在机器内部以2字节 双八位 二进制码形式表示 VB中用 n 来表示整数 其中 为整数的类型符 可以省略 如 123 123 都表示整数 2 长整数 Long 整数的最大值为32767 大于此数 程序运行时就会因为溢出产生中断 此时可使用长整数 长整数用4字节 四个八位 二进制数存储 可以表示更大的整数 其取值范围为 2147483648 2147483647 VB中用 n 来表示长整数 其中 为长整数的类型符 如 1234 987654 都表示长整数 3 浮点数浮点数也称为实型数或实数 由符号 指数和尾数组成 分单精度浮点数 Single 和双精度浮点数 Double 其指数部分分别用 E 或 e 和 D 或 d 表示 4 货币型 Currency 货币型属于定点实数或整数 用8个字节 八个八位 存储小数点前有15位 小数点后有4位 其余的数字被舍去 其表示形式为在数字后加上 5 字节型 Byte 字节型数据用1个字节的无符号二进制数存储 取值范围为0 255 2 日期型数据 Date 日期型数据按IEEE64位浮点数值存储 表示的日期从公元100年1月1日 9999年12月31日 时间范围为0 00 00 23 59 59 任何在字面上可以被认作日期的文本 都可以赋值给日期变量 且日期文字必须用符号 括起来 如 January15 2002 1985 10 19 45 00PM 都是合法的日期型数据 3 逻辑型数据 Boolean 逻辑型数据只有两个值 真 True 和假 False 用2字节二进制数存储 经常用来表示逻辑判断的结果 当把数值型数据转换为逻辑型数据时 0会转换为Flase 其它非0值转换为True 反之 当把逻辑型数据转换为数值型时 Flase转换为0 True转换为 1 4 字符型数据 string 字符型数据是指一切可打印的字符和字符串 它是用双引号括起来的一串字符 一个西文字符占一个字节 一个汉字或全角字符占两个字节 在VB中有两种类型字符串 变长字符串和定长字符串 变长字符串的长度不确定 可以是0 231个范围内的字符 而定长字符串长度一定 可以是0 231个范围内的字符 注意 空字符串用 表示 而 则表示有一个空格的字符串 另外在字符串中必须用两个连续的双引号来表示字符串有一个双引号 如字符串 abc 计算机 abc 在VB中表示为 abc 计算机 abc 5 对象 Object 类型的数据对象类型的数据主要用来表示图形 OLE对象 或其它对象 它是以变量形式存在的 Object变量通过32位 4字节 来存储 该地址可以引用应用程序中的对象 利用Set语句 声明为Object的变量可以被赋值并被任何对象所引用 6 变体 Variant 数据类型Variant数据类型又称为万用数据类型 它是一种特殊的 可以表示所有系统定义类型的数据类型 变体数据类型对数据的处理可以根据上下文的变化而变化 除了定长的string数据及用户自定义的数据类型之外 可以处理任何类型的数据而不必进行数据类型的转换 如上所述的数值型 日期型 对象型 字符型的数据类型 Variant数据类型是VB对所有未定义的变量的缺省数据类型的定义 通过VarType函数可以检测Variant型变量中保存的具体的数据类型 4 1 1用户自定义数据类型 除了上述数据类型外 在VB中 用户可以根据需要利用Type语句定义自己的数据类型 其格式如下 Type数据类型名数据类型元素名As类型名数据类型元素名As类型名 EndType 其中 数据类型名的命名规则同变量名的命名规则 数据类型元素名也遵守同样的规则 类型名可以为任何基本类型名或为用户定义数据类型名 例题 定义一个有关职工信息的自定义类型 TypeDate RecordryearasIntegerrmonthasString 3rdayasIntegerEndType我们将该类型称为 记录类型 注意 1 记录类型 的定义必须在标准模块或窗体模块的声明部分定义 在标准模块中定义时默认为全局变量 Public 在窗体模块定义时在关键字Type前必须加上关键字Private 2 记录类型 中的元素如果有字符串 可以是定长字符串也可以是变长字符串 但在随机文件中使用时 则必须是定长字符串 即应该使用形式为 strNameAsString 常数其中 常数 指明定长字符串的长度 3 在记录类型中 不能使用动态数组 4 在随机文件操作中记录类型数据有着重要的作用 4 1 2枚举类型 当一个变量的取值有几种可能性时 可以使用枚举的方法将变量的值一一列举出来 变量的值就仅限制在列出的几种值中 采用这样的方法定义的变量类型称为枚举类型 枚举可以通过窗体模块 标准模块或公用类模块中的声明部分用Enum语句声明一个枚举类型来创建 其格式为 Private Public Enum类型名称 成员名 常数表达式 EndEnum 4 2变量与常量 4 2 1常量VisualBasic中的常量分为两种 一种是文字常量 一种是符号常量 我们还可以将字符串常量 数值常量 布尔常量 日期常量称为直接常量 1 直接常量直接常量 在程序代码中 以直接明显的形式给出的数据 1 字符串常量由字符串组成 2 数值常量共有四种表示方式 即 整型数 长整型数 货币型数和浮点数 3 布尔常量由True False组成 4 日期常量由日期信息组成 2 符号常量 1 系统内部定义的常量内部或系统定义的常量是VB和控件提供的 这些常量可与应用程序的对象 方法和属性一起使用 在代码中可以直接使用它们 2 用户定义的符号常量用户可以使用Const语句来定义常量 用来代替数值和字符串 一般格式为 Public Private Const As 其中 符号常量名按变量的命名规则命名 还可添加类型说明符 表达式由文字常量 算术运算符 指数运算符 除外 逻辑运算符组成 注意 1 可以在变量名后面加上类型说明符 例 Constone 1 2 在程序中引用符号常量时 通常省略类型说明符 例 Constone 1 常量的类型取决于Const语句中表达式的类型 3 类型说明符不是符号常量的一部分 例 声明了Constone 1 则one one one one one 不能再用作变量名或常量名了 4 2 2变量变量 程序运行过程中其值可以改变的量称为变量 在VisualBasic中 一个有名称的内存位置称为变量 每个对象都有一个名字和相应的数据类型 通过名字来引用一个变量 而数据类型则决定了该变量的存贮类型 变量的形式分为 属性变量和内存变量 1 变量的命名规则 1 VB变量名只能用字母 数字和下划线组成 变量名中不能包含小数点 2 VB变量名的第一个字符必须是字母或汉字 最后一个字符可以是类型说明符 且组成变量名的字符数不得超过255个字符 3 不得使用VB的保留名或保留名后加上类型说明符来作为变量名 4 变量名在同一个范围内必须是唯一的 且不区分大小写 5 为了增加程序的可读性 一般在变量名前加上一个表示该变量数据类型的前缀 例 DimabasInteger 2 变量声明 1 用类型说明符来标识将类型说明符放在变量名的尾部 可以表示不同的变量 如 表示整型 表示长整型 表示单精度型 表示双精度型 表示货币型 表示字符串型 例如 strName dblNum curWage 2 用声明语句定义变量的类型用声明语句定义变量类型的语法为 Dim Private Static Public Redim As 其中 Dim用来在标准模块 窗体模块或过程中定义变量或数组 Private主要用来定义模块级变量 Static用来在过程中定义静态变量和数组变量 Public用来在标准模块中定义全局变量或数组 Redim主要用来重新定义数组 3 用DefType语句定义用DefType语句可以在标准模块 窗体模块的声明部分定义变量 格式 DefType字母范围其中 Def是保留字 Type是类型标志 可以是Int Lng Sng Dbl Cur Str Byte Bool Date Obj Var 分别表示整型 长整型 单精度实型 双精度实型 货币型 字符串型 字节型 布尔型 日期型 对象型 变体型 且在Def和Type之间不留空格 DefType语句通常放在模块的开头 当模块中的变量全部使用整型数时 可以写成DefIntA D再如 DefDblA D表示A D中的任一字母组成的变量名 无论大小写 或以该母开头的的变量名都表示双精度实型变量 如果一个变量未被显式定义 末尾也没有类型说明符 则被隐含地说明为变体类型 Variant 变量 用DefType语句定义的变量只对它所在的模块起作用 类型说明符 如果所要求的精度不高 则应使用单精度变量 这样不仅节省内存空间 而且可以提高处理速度 用类型说明符定义的变量 在使用时可以省略类型说明符 例如 用DimaStr 定义了一个字符串变量aStr 则即可以用aStr 也可以用aStr 来引用这个变量 部分类型变量的类型说明符 As子句中的类型名及存储要求见表4 2 3 记录类型变量记录类型变量的定义与基本数据类型变量的定义没有什么区别 但在引用时有所不同 例如 假定有如下的记录类型 TypeTypeDemoNum1AsDoubleNum2AsIntegerVar1AsString 8EndType则可用下面的语句定义TypeDemo的变量 StaticGenvarAsTypeDemo以后就可以用 变量 元素 的格式引用记录中的各个成员 例如 Genvar Num1Genvar Num2Genvar Var1这种格式与前一章讲过的 对象 属性 格式类似 要注意区分 注意 在一般情况下 记录类型应在标准模块中定义 如果在窗体模块中定义 则必须在 Type 关键字前面加上 Private 例如 当在窗体模块中定义上面的记录类型时 应改为 PrivateTypeTypeDemoGenvar Num1Genvar Num2Genvar VarEndType4 3变量的作用域变量的作用域指的是变量的有效范围 即变量的 可见性 定义了一个变量后 为了能正确地使用变量值 应当明确可以在程序的什么地方访问该变量 4 3 1局部变量与全局变量如前所述 VisualBasic应用程序由3种模块组成 即窗体模块 Form 标准模块 Module 和类模块 Class 本书不介绍类模块 因此应用程序通常由窗体模块和标准模块组成 窗体模块包括事件过程 EventProcedure 通用过程 GeneralProcedure 和声明部分 而标准模块由通用过程和声明部分组成 如同4 3所示 图4 3VisualBasic应用程序的构成根据变量的定义位置和所使用的变量定义语句的不同 VisualBasic中的变量可以分为3类 即局部 Local 变量 模块 Module 变量及全局 Public 变量 其中模块变量包括窗体模块变量和标准模块变量 各种变量位于不同的层次 声明部分 Declaration 窗体模块通用过程 GeneralProcedure Form 事件过程 EventProcedure 应用程序 Applicayion 声明部分标准模块 Module 通用过程 1 局部变量在过程 事件过程或通用过程 内定义的变量叫做局部变量 其作用域是它所在的过程 局部变量通常用来存放中间结果或用作临时变量 某一过程的执行只对该过程内的变量产生作用 对其他过程中相同名字的局部变量没有任何影响 因此 在不同的过程中可以定义相同名字的局部变量 它们之间没有任何关系 如果需要 则可以通过 过程名 变量名 的形式分别引用不同过程中相同名字的变量 局部变量在过程内用Dim Static定义 例如 SubCommandl Click DimTempnumAsIntegerStaticTotalAsDouble EndSub在上面过程中 定义了两个局部变量 即整型变量Tempnum和双精度静态变量Total 2 模块变量 窗体变量和标准模块变量 窗体变量可用于该窗体内的所有过程 一个窗体可以含有若干个过程 事件过程或通用过程 这些过程连同窗体一起存入窗体文件 frm 中 当同一窗体内的不同过程使用相同的变量时 必须定义窗体层变量 在使用窗体层变量前 必须先声明 也就是说 窗体层变量不能默认声明 其方法是 在程序代码窗口 对象 框中选择 通用 并在 过程 框中选择 声明 然后就可以在程序代码窗口中声明窗体层变量 标准模块中模块层变量的声明和使用与窗体模块中窗体层变量类似 标准模块是只含有程序代码的应用程序文件 其扩展名为 bas 在默认情况下 模块级变量对该模块中的所有过程都是可见的 但对其他模块中的代码不可见 模块级变量在模块的声明部分用Private或Dim声明 例如 PrivateintTempAsIntege或DimintTempAsIntege 在声明模块级变量时 Private和Dim没有什么区别 但Private更好些 因为可以把它和声明全局变量的Public区别开来 使代码更容易理解 3 全局变量全局变量也称全程变量 其作用域最大 可以在工程的每个模块 每个过程中使用 和模块级变量类似 全局变量也在标准模块的声明部分中声明 所不同的是 全局变量必须用Public语句声明 不能用Dim语句声明 更不能用Private语句声明 同时 全局变量只能在标准模块中声明 不能在过程或窗体模块中声明 4 3 2默认声明用Dim和Public语句可以定义局部变量 模块级变量和全局变量 对于局部变量来说 也可以在需要时直接给出变量名 变量的类型可以用类型说明符 来标识 如果没有类型说明符 VisualBasic把该变量指定为变体数据类型 例如 假定在窗体上建立了一个命令按钮 定义单击 Click 的事件过程如下 SubCommandl Click Answer InputBox Areyoustudent IfAnswer Yes thenMsgBox Heisastudent ElseMsgBox Heisnotastudent EndifEndSub这里的InputBox 和MsgBox是VisualBasic中的函数和语句 将在下一章介绍它们的用法 在上面的事件过程中 变量Answer没有用Dim语句定义 而是默认定义为局部变量 默认定义的变量不需要使用Dim语句 因而比较方便 并能节省代码 但有可能带来麻烦 使程序出现无法预料的结果 而且较难查出错误 为了安全起见 最好能显式地声明程序中使用的所有变量 默认声明一般只适用于局部变量 模块级变量和全局变量必须在代码窗口中用Dim或Public语句显式声明 VisualBasic不是强制类型语言 但提供了强制用户对变量进行显式声明的措施 这可以通过 选项 对话框来实现 其操作是 执行 工具 菜单中的 选项 命令 打开 选项 对话框 选择该对话框中的 编辑器 选项卡 在该对话框中选择 要求变量声明 项 如图4 4所示 然后单击 确定 按钮 4 4 1数学运算函数 表数学函数 2 求ASC 码值Asc函数用来求一个字符串中首字符的ASC 码值 语法格式为 Asc string 参数string可以是任何有效的字符串表达式 如果string没有包含任何字符 则在运行时会产生错误 3 求ASC 码字符Chr 函数求一个ASC 码值所对应的ASC 码字符 其语法格式为 Chr charcode 参数charcode是一个用来识别某字符的Long型数 charcode的正常范围为0 255 0到31之间的数字与标准的非打印ASCII代码相同 例如 Chr 10 可以返回换行字符 4 字符串转换为数值Val函数的作用是返回包含于字符串内的数字 字符串中是一个适当类型的数值 语法格式为 Val string 5 数值转换为字符串Str 函数的作用是将一个数值表达式转换为一个字符串 且表达式的类型不变 其语法格式为 Str number 参数number为一Long型数值表达式 其中可包含任何有效的数值表达式 当一数字转成字符串时 总会在前头保留一空位来表示正负 如果number为正 返回的字符串包含一前导空格暗示有一正号 使用Format函数可将数值转成必要的格式 如日期 时间 货币或其他用户自定义格式 与Str 不同的是 Format函数不包含前导空格来放置number的正负号 2 取整函数Int和Fix Int和Fix函数的作用都是返回参数的整数部分 其语法格式为 Int number Fix number 参数number是Double或任何有效的数值表达式 如果number包含Null 则返回Null 二者的区别在于 Fix函数去掉一个浮点数的小数部分 保留其整数部分 而Int函数求不大于自变量的最大整数 3 数制转换函数 Hex 函数的作用是将一个十进制数转换成一个十六进制数 Oct 函数的作用是将一个十进制数转换成一个八进制数 语法格式为 Hex number Oct number 说明 参数number为任何有效的数值表达式或字符串表达式 如果number不是一个整数 那么在执行前会先被四舍五入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园防火安全培训记录课件
- 2025中国联合网络通信有限公司河南省分公司校园招聘(79个岗位)笔试题库历年考点版附带答案详解
- 2025中国电信北京公司春季校园招聘笔试题库历年考点版附带答案详解版
- 2025年教育科技行业AI教育技术应用前景报告
- 2025年儿科常见疾病诊疗实战模拟试卷答案及解析
- 2025年物联网行业智能硬件与智慧城市发展研究报告
- 2025年金融科技行业跨境支付安全风险评估报告
- 2025年健康产业行业健康管理服务数字化发展报告
- 2025年旅游行业智慧旅游平台发展方向研究报告
- 谁摘的红果多课件
- 劳动课冰箱清洁课件
- 2025年公共基础知识考试试题及参考答案详解
- 建筑设计数字化协同工作方案
- 新入行员工安全教育培训课件
- 原生家庭探索课件
- 人教版音乐八年级上册-《学习项目二探索旋律结构的规律》-课堂教学设计
- 《中国人民站起来了》课件 (共50张)2025-2026学年统编版高中语文选择性必修上册
- 中国企业供应链金融白皮书(2025)-清华五道口
- 医院常用消毒液的使用及配置方法
- 2022英威腾MH600交流伺服驱动说明书手册
- 分期支付欠薪协议书范本
评论
0/150
提交评论