




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 数据类型、常量、变量及表达式,本章内容及要求: 1 熟悉VB程序中代码和语句书写规则; 2 掌握VB的数据类型; 3 掌握VB的 运算符和表达式的使用; 4 掌握常用内部函数的使用;,本章重点: 变量和常量的定义及使用、运算符和表达式的使用及常用内部函数的使用。,本章难点: 数据类型、内部函数。,3.1 VB语言字符集及编码规则,一、VB的字符集,l字母:大写英文字母AZ;小写英文字母az。 l 数字:0-9; l 专用字符:共27个,,二、编码规则与约定,(一)、编码规则 1VB代码中不区分字母的大小写。 2在同一行上可以书写多条语句,但语句间要用冒号“:”分隔。 3若一个语句行不能
2、写下全部语句,或在特别需要时,可以换行。换行时需在本行后加入续行符,1个空格加下划线“_”。,4一行最多允许255个字符。 5注释以Rem开头,也可以使用单引号“”,注释内容可直接出现在语句的后面。 6在程序转向时需用到标号,标号是以字母开始而以冒号结束的字符串。,(二)、 约定,1为了提高程序的可读性,对于VB中的关键字其首字母大写,其余字母小写 2. 注释有利于程序的维护和调试 Rem开始 或 单撇 。 例如: This is a VB REM This is a VB 在6.0中新增了“块注释/取消块注释”,3通常不使用行号 4对象名命名约定:每个对象的名字由3个小写字母组成的前缀(指明
3、对象的类型)和表示该对象作用的缩写字母组成 。,3.2 数据类型,一.标准数据类型,表3.2,二、自定义类型,在模块级别中使用,用于定义包含一个或多个元素的用户自定义的数据类型。 使用形式: Type 自定义类型名 元素名 (下标) As 类型名 元素名 (下标) As 类型名 . . . End Type 说明,Type Student Xh As Sting Xm As String Xb As String Nl As Integer Score As Single End Type,例如: 对于一个学生的“学号”、“姓名”、“性别”、“年龄”、“入学成绩”等数据,为了处理数据的方便,常
4、常需要把这些数据定义成一个新的数据类型(如Student类型)。,3.3 常量和变量,3.3.1 常 量 在程序运行过程中,其值不能被改变的量称为常量。在VB中有三类常量: 普通常量 符号常量 系统常量。 一、普通常量 1 整型常量 (1)整型(Integer):表示-32768至32767之间的整数 例如:10 110 20 (2)长整型(Long): 表示-2,147,483,648至2,147,483,647之间的整数 例如:长整型常数的书写: 23 Sum End Sub,3强制显式声明Option Explicit语句,良好的编程习惯都应该是“先声明变量,后使用变量”,这样做可以提高
5、程序的效率,同时也使程序易于调试。Visual Basic 中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:Option Explicit,如果设置: 工具选项编辑器要求变量声明,则在后续模块中自动插入 Option Explicit,例: Dim Sum As Long Dim Address As String 不定长度 Dim No As String * 8 固定长度8 Dim Num, Total As Integer Num为可变类型 Dim Average As Single,也可以用常用的类型说明符来定义: 整型 : % 长整型 : & 单精度: !
6、 双精度: # 货币型: 字符型: $,例: Dim a as integer Dim a% Dim B as integer,stname as string Dim B%,stname$,3.4 运算符和表达式,一. 运算符 1. 算术运算符(均是双目运算,ia=3) 例:5+10 mod 10 9 / 3 +2 2 结果是:,10,注:乘方运算优于取负运算 -62=-36 (-6)2=36 表示整除,低于乘除 52=2 5/2=2.5,Mod运算低于乘除和整除: 1.函数值符号规律(余数的符号) : mod(负,正)=正 mod(正,负)=负 结论:两个整数求余时,其值的符号为除数的符号
7、。 6 mod 4=2 6 mod (-4)=2 -6 mod (-4)=-2 -6 mod 4=-2 2.两个小数求余 将浮点数字四舍五入成整数 19 Mod 6.7 = 5,2. 字符串运算符与字符串表达式 字符串运算符有: 、+ 。 功能是字符串连接 例如: ABCD + EFGHI 结果为:ABCDEFGHI “ VB ” & “程序设计教程” 结果为:VB程序设计教程 说明:当连接符两旁的操作量都为字符串时,上述两个连接符等价。它们区别是: & 运算符 强制进行字符串连接,即总是先将运算符两边的数据转换成字符串,然后进行连接 例如: abcdef & 12345 结果为 abcdef
8、12345 123 & 456 结果为 123456,+ 运算符 根据两边的数据类型确定是字符串连接还是数字相加 当+连接两个字符串时,进行连接运算; 当+连接两个数值量或一个数字字符串和一个数值量时,进行加法运算; 当+连接一个非数字字符串和一个数值量时,出错。 例: 100 + 123 结果为 100123 100 + 123 结果为 223 Abc + 123 出错,例 100 & 123 结果为 100123 100 & 123 结果为 100123 Abc & 123 结果为 Abc123 Abc & 123 结果为 Abc123,注意:使用运算符“&”时,变量与运算符“&”之间应加
9、一个空格。这是因为符号“&”还是长整型的类型定义符,如果变量与符号“&”接在一起,VB系统先把它作为类型定义符处理,因而就会出现语法错误。,3.4.3 关系运算符与关系表达式,关系运算符都是双目运算,是用来比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若关系成立,结果为True,若关系不成立,结果为False。 VB中的关系运算符如下表所示。,Ob1 Is Ob2,当Ob1和ob2引用同一对象时为True,关系运算的规则如下: (1)当两个操作式均为数值型,按数值大小比较。 (2)字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。 例: ABCDE AB
10、RA 结果为 False,(3)数值型与可转换为数值型的数据比较, 如:29189 ,按数值比较,结果为False。 (4)数值型与不能转换成数值型的字符型比较, 如:77 sdcd ,不能比较,系统出错。 (5)“Like”运算符是VB6.0新增加的。 其使用格式为:str1 Like str2,3.4.4 逻辑运算符与逻辑表达式 将操作数进行逻辑运算,结果为逻辑值或数值,说明: (1)逻辑运算符的优先级不相同,Not(逻辑非)最高,但它低于关系运算,Imp(逻辑蕴含)最低。 (2)VB中常用的逻辑运算符是Not、And和Or。它们用于将多个关系表达式进行逻辑判断。 例如,数学上表示某个数在
11、某个区域时用表达式: 10X=10 And X20 (3)参与逻辑运算的量一般都应是逻辑型数据,如果参与逻辑运算的两操作数是数值量,则以数值的二进制值逐位进行逻辑运算(0当False,1当True)。 关系表达式与逻辑表达式常常用在条件语句与循环语句中,作为条件控制程序的流程走向。,例:用人单位招聘秘书:年龄小于40岁,女性,学历专科或本科: 写成条件VB的表达式: 年龄=39 and 性别=“女” and(学历=“专科” or 学历=“本科”),4.4.5 日期型表达式 日期型数据是一种特殊的数值型数据,只能有下面3种情况: 1一个日期型数据可以相减: DateB-DateA 结果是一个数值
12、型整数(两个日期相差的天数)。 例如:#05/08/2002# - #05/01/2002# 其结果为数值:7 2一个日期型数据(DateA)与一数值数据(N)可作加法运算:DateA+N 其结果仍是一个日期型数据。 例如:#05/01/2002# +7 其结果为日期型数据:#05/08/2002# 3一个日期型数据(DateA)与一数值数据(N)可作减法运算: DateA-N 其结果仍是一个日期型数据。 例如:#05/08/2002# - 7 其结果为日期型数据:#05/01/2002#,3.4.6 运算符的执行顺序,表达式中出现了多种不同类型的运算符时,其运算符优先级如下: 算术运算符=字
13、符运算符关系运算符逻辑运算,说明: 1当一个表达式中出现多种运算符时,首先进行算术运算符,接着处理字符串连接运算符,然后处理比较运算符,最后处理逻辑运算符,在各类运算中再按照相应的优先次序进行。 2可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。,. 表达式的书写中需注意的问题 (1)运算符不能相邻。例a+-b是错误的。 (2)乘号不能省略。例x 乘以y 应写成:x*y (3)括号必须成对出现,均使用圆括号。 (4)表达式从左到右在同一基准并排书写,不能出现上下标 (5)要注意各种运算符的优先级别,为保持运算顺序,在写表达式
14、时需要适当添加括号(),若用到库函数必须按库函要求书写。 如: (b-sqr(b*b-4*a*c)/(2*a) (a+b)/(a-b),VB提供了上百种内部函数(库函数),要求掌握这些常用函数的功能及使用。 调用方法: 函数名(参数列表) 有参函数 函数名 无参函数 说明: (1) 使用库函数要注意参数的个数及其参数的数据类型 (2) 要注意函数的定义域(自变量或参数的取值范围) 例如: sqr(x) 要求: x=0 (3) 要注意函数的值域。 如:exp(23773) 的值就超出实数在计算机中的表示 范围。,3.5 常用内部函数,1. 数学函数,说明: (1) 在三角函数中的自变量是以弧度为
15、单位。 如:sin300 sin(3.14159/180*30) (2) Rnd函数返回0 1(包括0和不包括1)之间的双精度随机数。 提问:怎样产生N,M区间的随机数? 若要产生1-100的随机整数: Int(Rnd *100)+1,Int(upperbound - lowerbound + 1) * Rnd + lowerbound),2. 转换函数,2. 转换函数 说明: (1)要区别两个取整函数int()和fix() Fix(N)为截断取整,即去掉小数后的数。 Int(N)不大于N的最大整数。 N0与int(N) 相同,当N0时, int(N) 与fix(N) -1相等。 例如: Fi
16、x(9.59) =9, Int(9.59) =9 Fix(-9.59) =-9, Int(-9.59) =-10 思考:如何实现四舍五入取整? (2)Asc(Abcd) 值为: 65 (只取首字母的Ascii值) (3)Val(abc123) 值为:0, Val(1.2sa10) 值为1.2 注意: Val( )函数只将最前面的数字字符转换为数值。,对Round(N,N1)的说明: 若N1=0或省略N1,表示舍入为整数 ?Round(25.536,0) 结果为26 ?Round(25.496) 结果为25 ?Round(24.536,0) 结果为25 通常采用四舍五入的原则 ?Round(4.
17、51) 结果为5 (四舍五入) ?Round(3.51) 结果为4 (四舍五入) 但当舍去的部分正好是5时,则根据它前面的数是偶数或奇数,采用“偶舍奇入”的原则。这样作的优点是减少舍入误差。 ?Round(12.125,2) 结果为12.12 (偶舍) ?Round(12.135,2) 结果为12.14 (奇入) ?Round(4.5) 结果为4 (偶舍) ?Round(3.5) 结果为4 (奇入),DBCS码(双字节字符集):西文用ASCII码,占1字节,在计算字符个数时按1个字符计数;中文用2字节编码,在计算字符个数时按2个字符计数(Windows系统采用的编码) Unicode码(ISO
18、字符标准):所有字符均占2字节,在计算字符个数时均按1个字符计数。为了保持与ASCII码兼容,西文字符的首字节为0(VB系统采用的编码) (1) 字符串编码转换函数 StrConv(C1,VbFromUnicode)将字符串C1中的字符由Unicode码转换成DBCS码 StrConv(C1,VbUnicode)-将字符串C1中的字符由DBCS码转换成Unicode码 s1$=“VB教程”: ? s1 VB教程 s2$=strconv(s1,vbfromunicode): ? S2: ? (乱码) s3$=strconv(s2,vbunicode): ? S3 VB教程,3.字符串编码及操作函
19、数,(2) 字符串操作函数,4.日期函数,增减日期:DateAdd(日期形式,增减量,日期变量) 间隔日期:DateDiff(日期形式,日期1,日期2) 日期形式 yyyy q m y|d|w ww h n s 含义 年 季 月 日 周 时 分 秒,Print Now 2011-3-23 Print DateAdd(“ww”,2,Date) 2011-4-5 Print DateAdd(“m”,2,Date) 2011-5-23 Print DateAdd(“q”,1,Date) 2011-6-23 Print DateAdd(“yyyy”,2,Date) 2013-3-23 Print Da
20、teDiff(“d”,Date,#2011/6/23#) 93,形式:Format$(表达式,格式字符串) 作用:用在print语句中,将数值、日期、字符串、货币等数据按指定的格式输出。 (1) 数值格式输出 符号 作用 数值表达式 格式字符串 显示结果 0 实际数字小于符号位数, “1234.567” “00000.0000” 01234.5670 数字前后加0 “1234.567” “000.00” 1234.57 # 实际数字小于符号位数, “1234.567 “ “#.#” 1234.567 四舍五入 “1234.567” “#.#” 1234.57 . 加小数点 “1234 “ “0
21、000.00” 1234.00 , 千分位 “1234.567 “ “#,#0.0000” 1,234.5670 % 数值乘以100,加“%” “1234.567 “ “#.#%” 123456.7% $ 在数字前强加“$” “ 1234.567 “ “$#.#” $1234.57 + 在数字前强加“+” “ -1234.567 “ “+#.#” +-1234.57 - 在数字前强加“-” “ 1234.567 “ “-#.#” -1234.57 E+ 用指数表示 “ 0.1234 “ “0.00E+00” 1.23E-01 E- 用指数表示 “ 1234.567 “ “.00E-00” .1
22、2E04,5.格式输出函数,(2) 日期和时间格式输出 符号 作用 符号 作用 d 显示日期(131,个位前不加0) w 显示星期(数字17) dd 显示日期(0131,个位前加0) ww 显示一年中的第几星期(153) ddd 显示星期缩写(SunSat) q 显示第几季度(14) dddd 显示星期全名(SundaySaturday) h 显示小时(023,个位前不加0) ddddd 显示完整日期(年-月-日) hh 显示小时(0123,个位前加0) 相当于格式yyyy/m/d m 显示分(059,个位前不加0) m 显示月份(112,个位前不加0) mm 显示分(0059,个位前加0)
23、mm 显示月份(0112,个位前加0) s 显示秒(059,个位前不加0) mmm 显示月份缩写(JanDec) ss 显示秒(0059,个位前加0) mmmm显示月份全名(JanuaryDecember) y 显示处于一年中的第几天(1365) AM/PM(am/pm) 显示12小时时钟 yy 显示年份(二位数) A/P(a/p) 显示12小时时钟 yyyy 显示年份(四位数) ttttt 显示完整时间(时、分、秒)相当于格式hh:mm:ss 说明:格式说明符中表示年月日的分隔符可以是-或/,但显示时,年月日固定用-分隔,表示时间的分隔符是:。若用其他符号分隔,则照原样显示。,(3)字符串格式输出 符号 作用 字符串表达式 格式字符串 显示结果 强迫以大写显示 “Hello” “” HELLO 实际字符位数小于符号位 数时,字符前加空格 “ABCDEF” “” ABCDEF & 实际字符位数小于符号位 数时,字符前不加空格 “ABCDEF” “&” ABCDEF,【例3.1】利用Format函数显示有关的日期和时间 Private Sub Form_CLICK() FontSize=12 MyTime = #9:21:30 PM# MyDate = #7/21/97# Print Format(MyDate, m/d/yy) Print Format(MyDate,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂房装饰装修合同范本
- 加油站收费合同范本
- 净化灯采购合同范本
- app推广合作合同范本
- 品牌冠名协议合同范本
- 南京购房合同范本
- 单日培训劳务合同范本
- 合同范例定稿流程
- 医院咨询管理合同范本
- 合作代签合同范本
- 安全生产承包的合同
- 2025届高考作文素材积累专题(春晚、哪吒2、deepseek)课件
- 2025年部编版语文三年级下册全册单元测试题附答案(共8个单元)
- 2025年河北省职业院校技能大赛高职组(商务数据分析赛项)参考试题库(含答案)
- 色卡-CBCC中国建筑标准色卡(千色卡1026色)
- 《魏书生班主任工作漫谈》读书心得体会课件
- 破产管理人考试题库及答案
- 三菱PLC模拟量模块fx2n4da中文手册
- 金属材料工程课程设计
- 学校突发公共卫生事件应急处置.ppt
- 学生课堂表现评价量表(20211208204532)
评论
0/150
提交评论