




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第3章,VB程序设计代码基础,本章要点: 字符集 数据类型 常量、变量 常用内部函数 运算符与表达式,2,命令格式中的符号约定 必选参数表示符。如缺少必选参数,则语句发生语法错误。 可选参数表示符。如方括号中的内容省略,则VB会使用该参数的缺省值。 | 多个取一表示符。分隔多个选择项,必须选择其中之一。 括起多个选择项。 , 同类项目的重复出现。 省略了在当时叙述中不涉及的部分。,注意:这些专用符号和其中的提示,不是语句行或函数的组成部分,在输入具体命令或函数时,上述符号均不能作为语句的组成部分。,3,3.1 字符集,1. 字符集 使用Unicode字符集,其基本字符集包括: 数字: 09
2、 英文字母: az,AZ 特殊字符: 空格 ! # $ % ? _ | 等。 2. 关键字 关键字又称为保留字 VB自动将关键字的首字母转换为大写字母 例如: PRINT 5+6 转换成 Print 5+6,4,3标识符,用于标记用户自定义的类型、常量、变量、过程、控件等的名字。标识符的命名规则如下: 第一个字符必须是字母。 长度不超过255个字符。控件、窗体、模块的名字不能超过40个字符。 不可以包含小数点或者内嵌的类型声明字符。 不能使用关键字。 例如,Sum、Age、Average、stuName等都是合法的标识符。 习惯上,将组成标识符的每个单词的首字母大写,其余字母小写。Visual
3、 Basic不区分标识符的大小写。例如,标识符A1和标识符a1是等价的。,5,3.2 数据类型,基本数据类型: 数值型 字符串型 布尔型 日期型 对象型 可变类型,6,3.2.1 数值型数据,Integer(整型) Long(长整型) Single(单精度浮点型) Double(双精度浮点型) Currency(货币型) Byte(字节型),7,1. 整数类型,(1) 整型(Integer) 以2个字节存储 十进制表示: 由+ -号,09 组成 范围: -3276832767 八进制表示: 以&O开头,由 07组成 范围: &O0 &O177777 十六进制表示: 以&H开头,由 09,AF组
4、成 范围: &H0 &HFFFF 例: -325 0 56 +100 &O456 &O36 &H1AC &H38 &H2,8,(2) 长整型(Long) 以4个字节存储 十进制表示: 由+ -号,09 组成 范围: -2147483648+2147483647 八进制表示: 以&O开头,以&结束 范围: &O0& &O37777777777& 十六进制表示: 以&H开头,以&结束 范围: &H0& &HFFFFFFFF& 例: 453466 -34568 +1000000 &O456& &O36& &H1AC& &H38& &H2&,9,2. 实数类型 浮点数采用IEEE格式, 由尾数及指数组
5、成: +|-. E|D +|-,(1) 单精度浮点型(Single) 以4个字节存储,可以精确到7位十进制数 例: 3.234E+2 表示3.234102 -28E9 表示-28109 4.56E-17 表示4.5610-17 (2) 双精度浮点型(Double) 以8个字节存储,可以精确到16位十进制数 3.234D+2 表示3.234102 -28D9 表示-28109 4.56D-17 表示4.5610-17,e|d,10,(3) 货币型(Currency) 以8个字节存储 用于表示定点数,其小数点左边有15位数字,右边有4位数字。 3. 字节型(Byte) 用一个字节存储数据,其取值范
6、围为0255。,11,3.2.2 字符串型数据(String),由双引号括起来的一串符号 例: abc ABC 计算机 12.34 3+2 (空串) 如果字符串本身包括双引号,可用连续两个双引号表示。 例: 要打印以下字符串: You must study hard, he said. 在程序中需要将该字符串表示成: You must study hard , he said. ,12,3.2.3 布尔型数据(Boolean),用于表示某个条件的成立或不成立。 只有True和False两个值,13,3.2.4 日期型数据(Date),用于表示日期和时间 格式: # VB接受许多种日期时间格式
7、例: 下面的 Date/Time 值全部有效。 #3-6-93 13:20# #March 27,1993 1:20am# #Apr-2-93# #14 April 1993# #12/18/1999# 3.2.5 对象型数据(Object) 以4个字节存储,用于引用程序中的对象。 3.2.6 可变类型数据(Variant) 可以包含任何类型的数据。,14,3.2.7 枚举类型,用于建立名称与常量数值的关联。 枚举类型可以在窗体模块、标准模块或类模块的通用声明部分声明。 格式: Public | Private Enum = 常量表达式1 = 常量表达式2 End Enum,15,参数: 枚举
8、类型名和各成员名应符合标识符的命名规则。 成员名用于定义该枚举类型的组成元素的名称。 常量表达式:可选项,为各成员所对应的值(为Long类型),可以是其他的枚举类型。 Public:为可选项。表示该枚举类型在整个工程中都是有效的。当省略Public和Private时,默认为Public。 Private:为可选项。表示该枚举类型只在所声明的模块中是有效的。,16,说明: 1)在缺省常量表达式的情况下,枚举中的第一个常量被初始化为0,其后的常量则初始化为比其前面的常量大1的数值。 例:Public Enum Days Sunday 初始值为0 Monday 初始值为1 Tuesday Wedne
9、sday Thursday Friday Saturday End Enum,17,2)可以使用赋值语句显式地给枚举中的常量赋值。所赋的值可以是任何长整数,包括负数。 例: Public Enum WorkDays Saturday 初始化为0 Sunday = 0 被赋值0 Monday 初始化为1 Tuesday Wednesday Thursday Friday Invalid = -1 被显式赋值为-1 End Enum,18,3)VB将枚举中的常量数值看作为长整数。如果将一个浮点数值赋给一个枚举中的常量,Visual Basic将该数值取整为最接近的长整数。 4)当向一个枚举中的常量
10、赋值时,也可以使用另一个枚举中的常量数值。 Public Enum WorkDays Sunday = 0 Monday Tuesday Wednesday Thursday Friday Saturday = Days.Saturday 6 Invalid = -1 End Enum,19,5)声明枚举类型后,就可以声明该枚举类型的变量,然后使用该变量存储枚举常量的数值。例: 声明枚举类型的变量 Dim MyDay As WorkDays Saturday 的数值为0 MyDay = Saturday 6)当引用单个常量时,为了避免混淆,应在常量名称前冠以枚举名。 Debug.Print D
11、ays.Saturday = & Days.Saturday Debug.Print WorkDays.Saturday = & _ WorkDays.Saturday 7)VB提供了系统定义的枚举vbDayOfWeek,它包括了与星期的七天相对应的常量。,20,3.2.8 用户自定义类型,是用户自己定义的类型,这种类型可以包含多个基本类型。使用Type语句定义。 Type语句格式: Private|Public Type (下标) As End Type,21,说明: 1)、应遵循标识符的命名规则。可以是Visual Basic系统提供的基本数据类型或已声明的用户自定义类型。缺省Privat
12、e|Public选项时,默认是Public。 2)用户自定义类型必须在窗体模块或标准模块的通用声明段进行声明。在窗体模块中定义用户自定义类型时必须使用Private关键字。 3)如果用户自定义类型的元素为数组,则需要使用参数。 4)在使用用户自定义类型前,必须先声明用户自定义类型的变量。,22,引用用户自定义类型元素的格式: . 例:定义一个Students数据类型,该类型中的每一个数又包含了学生的系、班级、姓名、年龄信息。定义格式为: Private Type Students Dept As String * 20 系 ClassNo As String * 10 班级 Name As S
13、tring 姓名 Age As Integer 年龄 End Type,23, 声明一个用户自定义类型的变量Stud Dim Stud As Students 给变量的元素赋值 Stud.Dept = 计算机系 Stud.ClassNo = 软件2001-1 Stud.Name = 张三 Stud.Age = 18 输出各元素的值 Print Stud.Dept, Stud.ClassNo, Print Stud.Name, Stud.Age,24,5)如果两个变量都属于同一个用户自定义类型,也可以将其中一个变量赋给另一个变量。这种赋值是将一个变量的所有元素赋给另一个变量的对应元素。 例: D
14、im Stud1 As Students, Stud2 As Students Stud2 = Stud1,25,6)用户自定义类型可以包含其他的用户自定义类型。 例: Private Type Address Addr As String 地址 Zip As Integer 邮政编码 Phone As String 电话 End Type Private Type Student Name As String 姓名 Age As Byte 年龄 TosAddr As Address 声明为Address的变量 End Type,26,3.3 常量,指在程序运行期间其值不发生变化的量。 两种形
15、式: 直接常量;符号常量 3.3.1 直接常量 例: 欢迎使用Visual Basic 字符串常量 12345 数值型常量 True 布尔型常量 #11/10/2001# 日期型常量 3.3.2 用户自定义符号常量 格式: Const As = 类型: Integer Long Single Double String String*n Boolean Date Currency Byte Variant,27,例: Const Pi = 3.14159 Const Max As Integer = 9 Const BirthDate = #1/1/01# Const MyString = f
16、riend 用逗号分隔多个常量声明 Const Pi = 3.14, Max = 9, MyStr=Hello 用先前定义过的常量定义新常量 Const Pi2 = Pi * 2 表达式中不能使用内部函数 Const sinx = Sin(20 * 3.14 / 180) 使用: 在程序中引用 如: AREA=Pi*R2 在程序中不可修改 如: Pi=3.14,28,VB内部已定义,可以直接使用的常量 查看内部常量: 视图对象浏览器 选择库、类、 成员 如: 库 VBRUN 类 ColorConstants ShapeConstants 成员 Vbred vbShapeCircle 例: Pr
17、ivate Sub Form_Activate() Const A As String = 各种常量的使用 Form1.BackColor = vbGreen Form1.ForeColor = vbRed Form1.FontSize = 14 Print A End Sub,3.3.3 系统定义符号常量,29,3.4 变量,一个有名称的内存单元称为变量。,1. 什么是变量?,程序执行期间,用变量临时存储数值。 变量的值可以发生变化。 每个变量都有名称和数据类型。,30,2. 变量的命名遵循标识符的命名规则,即,第一个字符必须是字母 长度不超过255个字符 不可以包含小数点或者内嵌的类型声明
18、字符 不能使用关键字 不能与过程名或符号常量同名 例: Student1 MyName intMax strName 不区分大小写;变量名应便于识别、记忆,31,3. 变量的声明 (1) 显式声明 格式: Dim|Private|Public| Static As 说明: Dim: 在窗体模块、标准模块或过程中声明变量。 Private: 在窗体模块或标准模块中声明变量,使变量仅在该模块中有效。 Public: 在标准模块中声明全局变量,使变量在整个应用程序中有效。 Static: 在过程中定义静态变量,即使该过程结束,也仍然保留变量的值。,32,例: Dim Sum As Long Dim
19、Address As String Dim No As String * 8 Private b As Integer Dim Num, Total As Integer Num为可变类型 Public Average As Single Static A As Long (2) 隐式声明 可变类型。易出错、浪费空间 (3) 强制显式声明 在模块的声明段中使用语句: Option Explicit 如果设置: 工具选项编辑器要求变量声明 则在后续模块中自动插入Option Explicit,33,例: 窗体模块和过程中使用 Dim语句的区别。 设在窗体中放置按钮Command1和Command
20、2 Dim a As Integer Private Sub Command1_Click() a = a + 10 Print a End Sub Private Sub Command2_Click() a = a + 15 Print a End Sub 观察程序运行结果 将Dim a As Integer放到过程内,观察运行结果。,34,例: Static的作用。 设在窗体中放置按钮C1,Private Sub C1_Click() Static a As Integer a = a + 10 Print a End Sub,Private Sub C1_Click() Dim a A
21、s Integer a = a + 10 Print a End Sub,运行时,多次单击命令按钮C1, 比较以上两个事件过程的执行效果,35,3.5 常用内部函数,函数形式: 函数名() 参数:常量、变量或表达式。 若有多个参数,参数之间以逗号分隔。 函数值:也叫“返回值” 函数的使用: 函数在表达式中被调用。,36,例: Fix(45.67) 结果为45 Int(45.67) 结果为45 Fix(-2.89) 结果为-2 Int(-2.89) 结果为-3 Abs(-4) 结果为4 Log(10) 结果为2.30258509299405 Sgn(3) 结果为1 Sgn(-6) 结果为-1 S
22、gn(0) 结果为0 例: 求sin300 Sin(30 * 3.14 / 180) 参数以弧度为单位,3.5.1 数学函数,37,例: 判断一个整数Y能否被另一个整数X整除 如果 Int(Y/X)=Y/X 则整除 例: 常用对数log10X的求法 用换底公式:,即: Log(X)/Log(10) 例: 求e3 正确: Exp(3) 错误: e3(错),38,例: LTrim(ABC) 结果为ABC,表示空格,RTrim(ABC) 结果为ABC Trim(ABC) 结果为ABC Left(ABCDE,2) 结果为AB Right(ABCDE,2) 结果为DE Mid(ABCDE,2,3) 结果
23、为BCD Mid(ABCDE,2,6) 结果为BCDE Len(ABCDE) 结果为5 String(3,ABC) 结果为AAA String(3,65) 结果为AAA InStr(ABCDECDE,DE) 结果为4 InStr(5,ABCDECDE,DE) 结果为7 UCase(Abc) 结果为ABC LCase(ABc) 结果为abc,3.5.2 字符串函数,39,1. 随机函数 Rnd(x) 产生0,1)之间的单精度随机数。 x0: 以上一个随机数作种子,产生序列中的下一个随机数。 x=0: 产生与最近生成的随机数相同的数。 省略x: 同x0 2. Randomize语句 初始化随机数发
24、生器,格式: Randomizen n:种子,省略时以系统时间作为种子,3.5.3 随机函数,40,生成a,b 范围内的随机整数 Int( b-a+1) *Rnd +a) 例:生成1,99之间的随机整数的表达式为: Int(99*Rnd+1) 例:生成(1,99)之间的随机整数的表达式为: Int(97*Rnd+2),41,例: Asc(A) 结果为65 Asc(ABC) 结果为65 Chr(65) 结果为A Str(123) 结果为123 Str(-123) 结果为-123 Val(123) 结果为123 Val(123AB) 结果为123 Val(.123AB) 结果为.123 Val(a
25、123AB) 结果为0 Val(12E2ABC) 结果为1200,3.5.4 转换函数,42,Hex(27) 结果为1B Hex(45.7) 结果为2E Oct(27) 结果为33 Oct(45.7) 结果为56 CInt(5.3) 结果为5 CInt(-5.7) 结果为-6 CInt(32766.6) 结果为32767 CInt(32767.8) 溢出错误 CInt(0.5) 结果为0 CLng(10.5) 结果为10 CSng(123.56789) 结果为123.5679 CDbl(123.56789) 结果为123.56789,43,CCur(123.56789) 结果为123.5679
26、 CBool(5.8 * 4) 结果为True CBool(-5.8) 结果为True CBool(0) 结果为False CBool(12) 结果为True CBool(0) 结果为False CBool(abc) 出错,44,3.5.5 日期和时间函数,Now:返回系统日期和时间。 Date:返回系统日期。 Time:返回系统时间。 Day(d):返回参数d中指定的日期是月份中的第几天。 WeekDay(d):返回参数d中指定的日期是星期几。 Month(d):返回参数d中指定日期的月份。 Year(d):返回年份。,返回系统的日期和时间、或返回指定日期和时间的一部分。,45,Hour(d
27、):返回小时(023)。 Minute(d):返回分钟(059)。 Second(d):返回秒(059)。 Timer:返回从午夜开始到现在经过的秒数。,46,例: Format(123.45, 0000.000) 结果为0123.450 Format(123.45, 0.0) 结果为123.5 Format(123.45, #.#) 结果为123.45 Format(123.45, #.#) 结果为123.5 Format(0.123, .#) 结果为.12 Format(0.123, 0.#) 结果为0.12 Format(HELLO, ) 结果为THIS IS IT 注: 经Format
28、函数格式化后的结果为字符串类型 例: Format(123) + Format(456) 结果为123456 区别: Str(123) + Str(456) 结果为123456,3.5.6 格式输出函数,47,Shell函数用于调用Windows下的应用程序。 格式:Shell(,) 参数: : 要执行的可执行文件名,包含路径。 : 决定程序运行时窗口的样式。如果省略,则程序以具有焦点的最小化窗口执行。取值见P54表3-1。,3.5.7 Shell函数,例:运行时单击窗体,打开计算器: Private Sub Form_Click() Shell c:winntsystem32calc.exe
29、, vbNormalFocus End Sub 这里Shell函数以语句形式出现,没有返回值。,48,3.6 运算符与表达式,操作数: 常量、变量、函数、对象 运算符: 圆括号 算术运算符(算术表达式) 字符串运算符(字符串表达式) 关系运算符(关系表达式) 布尔运算符(布尔表达式),49,3.6.1 算术运算符与算术表达式,书 写: 一条线、无 、无 ,50,例: 将以下表达式写成VB合法的表达式,(xy)z,a1+a2,a-b+a(-b),a1+a2,a(-b)+a*(-b),(xy)z,a(1/n),y/(-x)+x/(-y),A/(4+(8/(3+B),51,1. 乘方运算 例: 10
30、2 10的平方,结果为100 10(-2) 10的平方的倒数,结果为0.01 223 运算顺序从左到右,结果为64 (-8)(-1/3) 错误,当底数为负时,指数应为整数 2. 整数除法 例: 104 结果为2 25.686.99 先四舍五入再整除,结果为3 3. 取模运算 例: 10 Mod 4 结果为2 25.68 Mod 6.99 先四舍五入再求余数,结果为5 11 Mod 4 结果为3 -11 Mod 5 结果为-1 -11 Mod -3 结果为-2,结果符号同第一个操作数,52,字符串运算符有两个: & + &:自动将两侧的操作数作为字符进行连接 例: Hello & World 结
31、果为Hello World Check & 123 结果为Check123 123 & 456 结果为123456 123 & 456 结果为123456 :仅当两侧操作数都为字符串时才做字符串连接 123 + 456 结果为579 123 + 456 结果为579 123 + 456 结果为123456 Check + 123 错误,3.6.2 字符串运算符与字符串表达式,53,1. 关系运算符(比较运算符) (大于) =(大于或等于) =(等于) (不等于) 2. 关系表达式: 例:X Y+Z A = 5 StudName Shelly,3.6.3 关系运算符与关系表达式,54,3. 如何
32、比较 数值比较 按数值大小 单字符比较 在模块的通用声明部分使用语句 Option Compare Binary 缺省状态下,则按字符的内部二进制表示比较,典型的二进制排序顺序如下: 019 AB Z abz 字符串比较:根据当前的比较方式从左开始逐个比较,55,4. 比较结果: True False 例: 45 3 结果为True abc cdf 结果为False for fortran 结果为True 例: 要判断两个单精度型变量A和B的值是否相等,可以用下式判断: Abs(A-B) 例如: 要判断1除以3是否等于0.3333,可写成: Abs(1/3-0.3333)1E-5,56,1. 布尔运算符: Not And Or 2. 布尔表达式: 3. 优先级: NotAndOr 例: A = 10: B = 8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南省怀化三中2025届物理高一下期末学业水平测试试题含解析
- 2025届黑龙江省牡丹江市五县市物理高一第二学期期末综合测试模拟试题含解析
- 2025届陕西延安市实验中学大学区校际联盟高一物理第二学期期末复习检测模拟试题含解析
- 辽宁省阜新市海州高级中学2025年物理高二下期末复习检测试题含解析
- 宠物饲养与管理课件
- 2025届海南省临高县新盈中学高二物理第二学期期末经典模拟试题含解析
- 二零二五年财务顾问与财务软件公司合作协议
- 二零二五年度自建房竣工验收与交付使用合同
- 二零二五年财税代理服务合同-税务信息化解决方案
- 二零二五年酒吧餐厅综合承包运营管理协议
- 《PLC应用技术(S7-1200)微课版》全套教学课件
- 2025年入党培训测试题库及答案
- 小学二年级升三年级语文暑假衔接作业(共32天附答案)
- 工地用电节约管理办法
- 2025年市场监管知识测试题及答案解析
- 基本药物知识培训
- 2024年温州市交通发展集团招聘考试真题
- 学前教育游戏教育论文
- 2025年安徽省中考历史真题(解析版)
- 高中数学公式定理定律概念大全
- TC260-PG-2025NA《网络安全标准实践指南 -人工智能生成合成内容标识服务提供者编码规则》
评论
0/150
提交评论