第3章-数据类型-运算符-表达式课件_第1页
第3章-数据类型-运算符-表达式课件_第2页
第3章-数据类型-运算符-表达式课件_第3页
第3章-数据类型-运算符-表达式课件_第4页
第3章-数据类型-运算符-表达式课件_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

第三章数据类型、常量、变量及表达式本章内容及要求:1.熟悉VB程序中代码和语句书写规则;2.掌握VB的数据类型;3.掌握VB的运算符和表达式的使用;4.掌握常用内部函数的使用;本章重点:变量和常量的定义及使用、运算符和表达式的使用及常用内部函数的使用。本章难点:数据类型、内部函数。第三章数据类型、常量、变量及表达式本章内容及要求:本章13.1VB语言字符集及编码规则3.1.1VB的字符集l

字母:大写英文字母A—Z;小写英文字母a—z。l

数字:0一9;l专用字符:共27个,P48表。3.1.2编码规则与约定

(一)编码规则1.VB代码中不区分字母的大小写。2.同一行上可以书写多条语句,但语句间要用冒号“:”分隔。3.若一个语句行不能写下全部语句,或在特别需要时,可以换行。换行时需在本行后加入续行符,1个空格加下划线“_”。3.1VB语言字符集及编码规则3.1.1VB的字符集24.一行最多允许255个字符。5.注释以Rem开头,也可以使用单引号“'”,注释内容可直接出现在语句的后面。6.在程序转向时需用到标号,标号是以字母开始而以冒号结束的字符串。(二)约定1.为了提高程序的可读性,对于VB中的关键字其首字母大写,其余字母小写2.注释有利于程序的维护和调试Rem开始或单撇‘。例如:‘ThisisaVBREMThisisaVB

在6.0中新增了“块注释/取消块注释”(视图/工具栏/编辑)4.一行最多允许255个字符。(二)约定1.为了提高程33.通常不使用行号4.对象名命名约定:每个对象的名字由3个小写字母组成的前缀(指明对象的类型)和表示该对象作用的缩写字母组成。如命令按钮前缀:cmd3.通常不使用行号43.2

数据类型3.2.1标准数据类型3.2数据类型3.2.1标准数据类型53.2.2自定义类型在模块级别中使用,用于定义包含一个或多个元素的用户自定义的数据类型。使用形式:

Type自定义类型名 元素名[([下标])]As类型名 元素名[([下标])]As类型名...EndType

见下例3.2.2自定义类型在模块级别中使用,用6TypeStudent XhAsSting XmAsString XbAsString NlAsInteger ScoreAsSingleEndType例如:对于一个学生的“学号”、“姓名”、“性别”、“年龄”、“入学成绩”等数据,为了处理数据的方便,常常需要把这些数据定义成一个新的数据类型(如Student类型)。TypeStudent例如:对73.3常量和变量3.3.1常量在程序运行过程中,其值不能被改变的量称为常量。在VB中有三类常量:普通常量符号常量系统常量一、普通常量1.

整型常量

(1)整型(Integer):表示-32768至32767之间的整数例如:1011020(2)长整型(Long):表示-2,147,483,648至2,147,483,647之间的整数例如:长整型常数的书写:23&3.3常量和变量3.3.1常量8通常我们说的整型常量指的是十进制整数,但VB中可以使用八进制和十六进制形式的整型常数,因此整型常数有如下三种形式:

1)十进制整数。如125,0,-89。202)八进制整数。以&或&O(字母O)开头的整数是八进制整数,如&O25表示八进制整数25,即(25)8

,等于十进制数21。3)十六进制。以&H开头的整数是十六进制整数,如&H25表示十六进制整数25,即(25)16,等于十进制数37。VB中的颜色数据常常用十六进制整数表示。通常我们说的整型常量指的是十进制整数,但VB92、实型常量1)单精度实型(Single):有效数为7位表示-3.37E+38至3.37E+38之间的实数2)双精度实型(Double):有效数为15位实型常量的表示:1)十进制小数形式。它是由正负号(+,-)、数字(0~9)和小数点(.)或类型符号(!、#)组成,即±n.n,±n!或±n#,其中n是0~9的数字。例如0.123、.123、123.0、123!、123#等都是十进制小数形式。2)指数形式。±nE±m或

±n.nE±m,±nD±m或

±n.nD±m

例:1.25E+3和1.25D+3相当于1250.0或者1.25×103。2、实型常量103、字符串常量在VB中字符串常量是用双引号“"”括起的一串字符,例如"ABC","abcdefg","123","0","VB程序设计"等。说明:(1)字符串中的字符可以是所有西文字符和汉字、标点符号等;(2)""表示空字符串,而""表示有一个空格的字符串;(3)若字符串中有双引号,例如ABD"XYZ,则用连续两个双引号表示,即:"ABD""XYZ“4、逻辑(Boolean)数据类型只有两个值True,或False。将逻辑数据转换成整型时:True为-1,False为0;其它数据转换成逻辑数据时:非0为True,0为False。3、字符串常量115、日期常量日期(Date)型数据按8字节的浮点数来存储,表示日期范围从公元100年1月1日~9999年12月31日,而时间范围从0:00:00~23:59:59。一种在字面上可被认作日期和时间的字符,只要用号码符“#”括起来,都可以作为日期型数值常量。例:#09/02/99#、#January4,1989#,#2002-5-414:30:00PM#都是合法的日期型常量。

说明:当以数值表示日期数据时,整数部分代表日期,而小数部分代表时间;例如1表示1899年12月31日。大于1的整数表示该日期以后的日期,0和小于0的整数表示该日期以前的日期。5、日期常量12二、符号常量在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。VB中使用关键字Const声明符号常量。其格式如下:Const常量名[As类型|类型符号]=常数表达式例如:ConstPI#=3.1415926535等价于:ConstPIAsDouble=3.1415926535三、系统常量VB系统提供了应用程序和控件的系统定义常数。它们存放于系统的对象库中,在“对象浏览器”中的VisualBasic(VB)和VisualBasicforapplications(VBA)对象库中列举了VisualBasic的常数二、符号常量三、系统常量13例如,要将文本框Text1的前景颜色设置为红色,可以使用下面的语句:Text1.ForeColor=vbRed这里的vbRed就是系统常量。这比直接使用16进制数来设置要直观得多。

又如,窗口状态属性WindowsState可取0,1,2三个值,对应三种不同状态(参见第二章表2-2所示)。在程序中使用语句Myform.WindowsState=vbMaxmized,将窗口极大化,显然要比使用语句Myform.WindowsState=2易于阅读和理解。例如,要将文本框Text1的前景颜色设置为红14一.变量和常量的命名规则1.以字母或汉字开头,后可跟字母、数字或下划线组成,长度小于等于40个字符;2.不能使用VB中的关键字;3.VB中不区分变量名的大小写.4.为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。例如:strAbc,(字符串变量)iCount,(整型变量)dblx,(双精度变量)sYz(单精度变量)3.3.2变量一.变量和常量的命名规则3.3.2变量15二.变量声明

1.用Dim语句显式声明变量形式:Dim变量名[AS类型] Dim变量名[类型符]例 DimiCountAsinteger,sumAssingle 等价于DimiCount%,sum!2.隐式声明VisualBasic允许用户在编写应用程序时,不声明变量而直接使用,系统临时为新变量分配存储空间并使用,这就是隐式声明。所有隐式声明的变量都是Variant数据类型。VisualBasic根据程序中赋予变量的值来自动调整变量的类型。例如:二.变量声明16下面是一个很简单的程序,其使用的变量a,b,Sum都没有事先定义。PrivateSubForm_Click()Sum=0a=10:b=20Sum=a+bPrint"Sum=";SumEndSub3.强制显式声明——OptionExplicit语句良好的编程习惯都应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。VisualBasic中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:OptionExplicit下面是一个很简单的程序,其使用的变量a,b,Sum都没173.4运算符和表达式一.运算符

1.算术运算符(均是双目运算,ia=3)例:5+10mod10\9/3+2^2结果是:103.4运算符和表达式一.运算符10182.字符串运算符与字符串表达式字符串运算符有:&、+。功能是字符串连接例如:"ABCD"+"EFGHI"'结果为:ABCDEFGHI“VB”&“程序设计教程”'结果为:VB程序设计教程说明:当连接符两旁的操作量都为字符串时,上述两个连接符等价。它们区别是:

+(连接运算):两个操作数均应为字符串类型;

&(连接运算):两个操作数既可为字符型也可为数值型,当是数值型时,系统自动先将其转换为数字字符,然后进行连接操作。2.字符串运算符与字符串表达式19例:"100"+123'结果为223"100"+"123"'结果为100123"Abc"+"123"'出错"100"&123'结果为100123100&123'结果为100123"Abc"&"123"'结果为Abc123"Abc"&123'结果为Abc123注意:使用运算符“&”时,变量与运算符“&”之间应加一个空格。这是因为符号“&”还是长整型的类型定义符,如果变量与符号“&”接在一起,VB系统先把它作为类型定义符处理,因而就会出现语法错误。例:注意:使用运算符“&”时,变量与运算符203.4.3关系运算符与关系表达式

关系运算符都是双目运算,是用来比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若关系成立,结果为True,若关系不成立,结果为False。VB中的关系运算符如下表所示。运算符含义优先级实例结果<小于所有关系运算优先级相同。低于算术运算的加“+”,减“-”运算,高于逻辑非“Not”运算。15+10<20False<=小于或等于10<=20True>大于10>20False>=大于或等于"This">="That"True=等于"This"="That"False<>不等于"This"<>"That"TrueLike字符串匹配"This"Like*is"TrueIs对象比较

3.4.3关系运算符与关系表达式关系运算21关系运算的规则如下:(1)当两个操作式均为数值型,按数值大小比较。(2)字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。例:"ABCDE">"ABRA" 结果为False(3)数值型与可转换为数值型的数据比较,如:29>"189",按数值比较,结果为False。(4)数值型与不能转换成数值型的字符型比较,如:77>"sdcd",不能比较,系统出错。(5)“Like”运算符是VB6.0新增加的。其使用格式为:str1Likestr2关系运算的规则如下:(3)数值型与可转换为数值型的数据比较,223.4.4逻辑运算符与逻辑表达式

Not逻辑非为单目运算符(要求一个操作数),其它为双目运算符。

条件表达式1And条件表达式2条件表达式均为T结果为T条件表达式1Or条件表达式2条件表达式有一个T结果为T3.4.4逻辑运算符与逻辑表达式23说明:(1)逻辑运算符的优先级不相同,Not(逻辑非)最高,但它低于关系运算,Imp(逻辑蕴含)最低。(2)VB中常用的逻辑运算符是Not、And和Or。它们用于将多个关系表达式进行逻辑判断。(XorEqvImp)例如,数学上表示某个数在某个区域时用表达式:10≤X<20,用VB程序中应写成:X>=10AndX<20(3)参与逻辑运算的量一般都应是逻辑型数据,如果参与逻辑运算的两操作数是数值量,则以数值的二进制值逐位进行逻辑运算(0当False,1当True)。关系表达式与逻辑表达式常常用在条件语句与循环语句中,作为条件控制程序的流程走向。说明:243.4.5日期型表达式日期型数据是一种特殊的数值型数据,只能有下面3种情况:1.一个日期型数据可以相减:

DateB-DateA结果是一个数值型整数(两个日期相差的天数)。例如:#05/08/2002#-#05/01/2002#其结果为数值:72.一个日期型数据(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.5日期型表达式253.4.6运算符的执行顺序

表达式中出现了多种不同类型的运算符时,其运算符优先级如下:

算术运算符>=字符运算符>关系运算符>逻辑运算

说明:1.当一个表达式中出现多种运算符时,首先进行算术运算符,接着处理字符串连接运算符,然后处理比较运算符,最后处理逻辑运算符,在各类运算中再按照相应的优先次序进行。2.可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。3.4.6运算符的执行顺序表达式中263.表达式的书写中需注意的问题(1)运算符不能相邻。例a+-b是错误的。(2)乘号不能省略。例x乘以y应写成:x*y(3)括号必须成对出现,均使用圆括号。(4)表达式从左到右在同一基准并排书写,不能出现上下标(5)要注意各种运算符的优先级别,为保持运算顺序,在写VB表达式时需要适当添加括号(),若用到库函数必须按库函要求书写。如:

(b-sqr(b*b-4*a*c))/(2*a)(a+b)/(a-b)

3.表达式的书写中需注意的问题27VB提供了上百种内部函数(库函数),要求掌握这些常用函数的功能及使用。调用方法:

函数名(参数列表)有参函数函数名无参函数说明:

(1)使用库函数要注意参数的个数及其参数的数据类型(2)要注意函数的定义域(自变量或参数的取值范围)例如:sqr(x)要求:x>=0(3)要注意函数的值域。如:exp(23773)的值就超出实数在计算机中的表示范围。3.5常用内部函数VB提供了上百种内部函数(库函数),要求掌握这些常281.数学函数常用的数学函数见表3-8所示Abs(N)Cos(N)Sin(N)Exp(N)Log(N)Sqr(N)Rnd[(N)]Sgn(N)说明:(1)在三角函数中的自变量是以弧度为单位。如:sin300sin(3.14159/180*30)(2)Rnd函数返回0~1(包括0和不包括1)之间的双精度随机数。Randomize用于产生新“种子”若要产生1-100的随机整数:Int(Rnd*100)+1

提问:怎样产生[N,M]区间的随机数?

1.数学函数292.转换函数常用的转换函数见p62表所示说明:(1)要区别两个取整函数int()和fix()Fix(N)为截断取整,即去掉小数后的数。Int(N)不大于N的最大整数。N>0与int(N)相同,当N<0时,int(N)与fix(N)-1相等。例如:Fix(9.59)=9,Int(9.59)=9Fix(-9.59)=-9,Int(-9.59)=-10

思考:如何实现四舍五入取整?(2)Asc("Abcd")

值为:65(只取首字母的Ascii值)

(3)Val("abc123")值为:0,Val("1.2sa10")值为1.2注意:Val()函数只将最前面的数字字符转换为数值。2.转换函数303.字符串操作函数

常用的字符串函数见p46表说明:如果返回是字符型,则函数后有“$”字符。当然一般也可以不写,习惯都写上。例如:len("Thisisabook!")15Left$("ABCDEFG",3)"ABC"Mid$("ABCDEFG",2,3)"BCD"InStr(2,“ABCDEFGEF”,“EF”) 5(第一次出现的位置)3.字符串操作函数314.日期、时间函数

常用的日期时间函数见P65表

掌握:Time()Date()Now()Year()Month()Day()5.格式输出函数使用格式

Format$(表达式[,“格式字符串”])

功能:按用户指定格式返回表达式,常常用在print方法中。使用形式:print

Format$(表达式[,“格式字符串”])表达式:可以是数值、日期或字符串型表达式。格式字符串:表示输出表达式时采用的输出格式。不同数据类型所采用的格式字符串是不同的。4.日期、时间函数5.格式输出函数32(1)数值型数据格式化(见表3-12)

注意:对于符号:0与#,当数值的实际位数比格式控制给定的位数多时,系统将按四舍五入返回给定的位数。如:Format(3.14159,“###.###”),其值为3.142(2)日期和时间型数据格式化(见表3-13)缺省日期格式为:“mm/dd/yy”,时间格式:“hh:mm:ss”

(3)字符串类型数据格式化(见表3-14)(1)数值型数据格式化(见表3-12)333.5.6其它函数除上面常用的四类函数,VB中还有测试函数、与文件操作有关的函数及其它函数作业:课后习题本周实验内容:实验指导书上实验3.5.6其它函数作业:34习题3.1如何在程序中使用注释?3.2VisualBasic提供了哪些标准数据类型?声明类型时,其类型关键字各是什么?其类型说明符又是什么?3.3符号常量与变量有什么区别?什么情况下宜用符号常量?什么情况下宜用变量?3.4下列哪几个是合法的变量名?ABCde String abc_1 ABC123 123Bcd ABπC习题3.1如何在程序中使用注释?353.5如果希望使用变量x来存放数据877438.34243,应该将变量x声明为何种类型?3.6在VisualBasic中,对于尚未赋值的变量,系统默认值是什么?3.7VisualBasic的字符串运算符有哪两种?3.8VisualBasic共有几种表达式?如何确定表达式的类型?3.9函数Int(Rnd(0)*10)是在哪个范围内的整数?3.5如果希望使用变量x来存放数据877438.3424363.10将下列数学表达式改写成等价的VisualBasic表达式。(1)A·B+Cos(35o)(2)[(x+y)+z]×10-5(a+b)(3)(4)㏑(e2+)(5) (6)3.11把VisualBasic算术表达式a/(b+c/(d+e/Sqr(f)))写成数学表达式。3.10将下列数学表达式改写成等价的VisualBas373.12设a=2,b=3,c=4,d=5,求下列表达式的值。(1)6/a^2(2)4Mod7\2*3/2+9\2^3(3)#11/22/01#-10(4)"123"<>"123"&"ABC"&"XYZ"(5)a*b>=8(6)"ABD"<"ABC"(7)Sgn(-2^a)+Abs(-2^b)+Int(-2^c)(8)a>bAndc<=dOr2*a>cAndb<>cOrc>d(9)Nota<=cOrc*4=b^2Andb<>a+c3.12设a=2,b=3,c=4,d=5,求下列表达式的383.13根据所给条件,列出逻辑表达式。(1)闰年的条件是年份(year)能被4整除,但不能被100整除;或者能被400整除。(2)一元二次方程ax2+bx+c=0有实根的条件为:a≠0,并且b2-4ac≥0。(3)x是小于100的非负数。3.13根据所给条件,列出逻辑表达式。393.14写出下列函数的值。(1)Int(-3.14159) (2)Sqr(Sqr(64))(3)Fix(-3.1415926)(4)Int(Abs(99-100)/2)(5)Sgn(7*3+2)(6)UCase("Hello")(7)Left("Hello",2)(8)Val("16Year")(9)Str(-459.65) (10)Len("Hello")3.14写出下列函数的值。403.15如果x是一个正实数,对x的第3位小数四舍五入的表达式是:(1)0.01*Int(x+0.005)(2)0.01*Int(100*(x+0.005))(3)0.01*Int(100*(x+0.05)) (4)0.01*Int(x+0.05)3.15如果x是一个正实数,对x的第3位小数四舍五入的表413.16写出执行以下语句后的输出结果。PrintChr$(65)a$="Good":b$="Morning"Printa+bPrinta&bs$="ABCDEFGHIJK"PrintMid(s,3,4)PrintLen(s)PrintInStr(s,"efg")PrintLCase(s)3.16写出执行以下语句后的输出结果。423.17假定当前日期为2003年2月16日,星期日,请写出执行以下语句后的输出结果。PrintDay(Now)PrintMonth(Now)PrintYear(Now)PrintWeekday(Now)3.17假定当前日期为2003年2月16日,星期日,请写43第三章数据类型、常量、变量及表达式本章内容及要求:1.熟悉VB程序中代码和语句书写规则;2.掌握VB的数据类型;3.掌握VB的运算符和表达式的使用;4.掌握常用内部函数的使用;本章重点:变量和常量的定义及使用、运算符和表达式的使用及常用内部函数的使用。本章难点:数据类型、内部函数。第三章数据类型、常量、变量及表达式本章内容及要求:本章443.1VB语言字符集及编码规则3.1.1VB的字符集l

字母:大写英文字母A—Z;小写英文字母a—z。l

数字:0一9;l专用字符:共27个,P48表。3.1.2编码规则与约定

(一)编码规则1.VB代码中不区分字母的大小写。2.同一行上可以书写多条语句,但语句间要用冒号“:”分隔。3.若一个语句行不能写下全部语句,或在特别需要时,可以换行。换行时需在本行后加入续行符,1个空格加下划线“_”。3.1VB语言字符集及编码规则3.1.1VB的字符集454.一行最多允许255个字符。5.注释以Rem开头,也可以使用单引号“'”,注释内容可直接出现在语句的后面。6.在程序转向时需用到标号,标号是以字母开始而以冒号结束的字符串。(二)约定1.为了提高程序的可读性,对于VB中的关键字其首字母大写,其余字母小写2.注释有利于程序的维护和调试Rem开始或单撇‘。例如:‘ThisisaVBREMThisisaVB

在6.0中新增了“块注释/取消块注释”(视图/工具栏/编辑)4.一行最多允许255个字符。(二)约定1.为了提高程463.通常不使用行号4.对象名命名约定:每个对象的名字由3个小写字母组成的前缀(指明对象的类型)和表示该对象作用的缩写字母组成。如命令按钮前缀:cmd3.通常不使用行号473.2

数据类型3.2.1标准数据类型3.2数据类型3.2.1标准数据类型483.2.2自定义类型在模块级别中使用,用于定义包含一个或多个元素的用户自定义的数据类型。使用形式:

Type自定义类型名 元素名[([下标])]As类型名 元素名[([下标])]As类型名...EndType

见下例3.2.2自定义类型在模块级别中使用,用49TypeStudent XhAsSting XmAsString XbAsString NlAsInteger ScoreAsSingleEndType例如:对于一个学生的“学号”、“姓名”、“性别”、“年龄”、“入学成绩”等数据,为了处理数据的方便,常常需要把这些数据定义成一个新的数据类型(如Student类型)。TypeStudent例如:对503.3常量和变量3.3.1常量在程序运行过程中,其值不能被改变的量称为常量。在VB中有三类常量:普通常量符号常量系统常量一、普通常量1.

整型常量

(1)整型(Integer):表示-32768至32767之间的整数例如:1011020(2)长整型(Long):表示-2,147,483,648至2,147,483,647之间的整数例如:长整型常数的书写:23&3.3常量和变量3.3.1常量51通常我们说的整型常量指的是十进制整数,但VB中可以使用八进制和十六进制形式的整型常数,因此整型常数有如下三种形式:

1)十进制整数。如125,0,-89。202)八进制整数。以&或&O(字母O)开头的整数是八进制整数,如&O25表示八进制整数25,即(25)8

,等于十进制数21。3)十六进制。以&H开头的整数是十六进制整数,如&H25表示十六进制整数25,即(25)16,等于十进制数37。VB中的颜色数据常常用十六进制整数表示。通常我们说的整型常量指的是十进制整数,但VB522、实型常量1)单精度实型(Single):有效数为7位表示-3.37E+38至3.37E+38之间的实数2)双精度实型(Double):有效数为15位实型常量的表示:1)十进制小数形式。它是由正负号(+,-)、数字(0~9)和小数点(.)或类型符号(!、#)组成,即±n.n,±n!或±n#,其中n是0~9的数字。例如0.123、.123、123.0、123!、123#等都是十进制小数形式。2)指数形式。±nE±m或

±n.nE±m,±nD±m或

±n.nD±m

例:1.25E+3和1.25D+3相当于1250.0或者1.25×103。2、实型常量533、字符串常量在VB中字符串常量是用双引号“"”括起的一串字符,例如"ABC","abcdefg","123","0","VB程序设计"等。说明:(1)字符串中的字符可以是所有西文字符和汉字、标点符号等;(2)""表示空字符串,而""表示有一个空格的字符串;(3)若字符串中有双引号,例如ABD"XYZ,则用连续两个双引号表示,即:"ABD""XYZ“4、逻辑(Boolean)数据类型只有两个值True,或False。将逻辑数据转换成整型时:True为-1,False为0;其它数据转换成逻辑数据时:非0为True,0为False。3、字符串常量545、日期常量日期(Date)型数据按8字节的浮点数来存储,表示日期范围从公元100年1月1日~9999年12月31日,而时间范围从0:00:00~23:59:59。一种在字面上可被认作日期和时间的字符,只要用号码符“#”括起来,都可以作为日期型数值常量。例:#09/02/99#、#January4,1989#,#2002-5-414:30:00PM#都是合法的日期型常量。

说明:当以数值表示日期数据时,整数部分代表日期,而小数部分代表时间;例如1表示1899年12月31日。大于1的整数表示该日期以后的日期,0和小于0的整数表示该日期以前的日期。5、日期常量55二、符号常量在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。VB中使用关键字Const声明符号常量。其格式如下:Const常量名[As类型|类型符号]=常数表达式例如:ConstPI#=3.1415926535等价于:ConstPIAsDouble=3.1415926535三、系统常量VB系统提供了应用程序和控件的系统定义常数。它们存放于系统的对象库中,在“对象浏览器”中的VisualBasic(VB)和VisualBasicforapplications(VBA)对象库中列举了VisualBasic的常数二、符号常量三、系统常量56例如,要将文本框Text1的前景颜色设置为红色,可以使用下面的语句:Text1.ForeColor=vbRed这里的vbRed就是系统常量。这比直接使用16进制数来设置要直观得多。

又如,窗口状态属性WindowsState可取0,1,2三个值,对应三种不同状态(参见第二章表2-2所示)。在程序中使用语句Myform.WindowsState=vbMaxmized,将窗口极大化,显然要比使用语句Myform.WindowsState=2易于阅读和理解。例如,要将文本框Text1的前景颜色设置为红57一.变量和常量的命名规则1.以字母或汉字开头,后可跟字母、数字或下划线组成,长度小于等于40个字符;2.不能使用VB中的关键字;3.VB中不区分变量名的大小写.4.为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。例如:strAbc,(字符串变量)iCount,(整型变量)dblx,(双精度变量)sYz(单精度变量)3.3.2变量一.变量和常量的命名规则3.3.2变量58二.变量声明

1.用Dim语句显式声明变量形式:Dim变量名[AS类型] Dim变量名[类型符]例 DimiCountAsinteger,sumAssingle 等价于DimiCount%,sum!2.隐式声明VisualBasic允许用户在编写应用程序时,不声明变量而直接使用,系统临时为新变量分配存储空间并使用,这就是隐式声明。所有隐式声明的变量都是Variant数据类型。VisualBasic根据程序中赋予变量的值来自动调整变量的类型。例如:二.变量声明59下面是一个很简单的程序,其使用的变量a,b,Sum都没有事先定义。PrivateSubForm_Click()Sum=0a=10:b=20Sum=a+bPrint"Sum=";SumEndSub3.强制显式声明——OptionExplicit语句良好的编程习惯都应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。VisualBasic中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:OptionExplicit下面是一个很简单的程序,其使用的变量a,b,Sum都没603.4运算符和表达式一.运算符

1.算术运算符(均是双目运算,ia=3)例:5+10mod10\9/3+2^2结果是:103.4运算符和表达式一.运算符10612.字符串运算符与字符串表达式字符串运算符有:&、+。功能是字符串连接例如:"ABCD"+"EFGHI"'结果为:ABCDEFGHI“VB”&“程序设计教程”'结果为:VB程序设计教程说明:当连接符两旁的操作量都为字符串时,上述两个连接符等价。它们区别是:

+(连接运算):两个操作数均应为字符串类型;

&(连接运算):两个操作数既可为字符型也可为数值型,当是数值型时,系统自动先将其转换为数字字符,然后进行连接操作。2.字符串运算符与字符串表达式62例:"100"+123'结果为223"100"+"123"'结果为100123"Abc"+"123"'出错"100"&123'结果为100123100&123'结果为100123"Abc"&"123"'结果为Abc123"Abc"&123'结果为Abc123注意:使用运算符“&”时,变量与运算符“&”之间应加一个空格。这是因为符号“&”还是长整型的类型定义符,如果变量与符号“&”接在一起,VB系统先把它作为类型定义符处理,因而就会出现语法错误。例:注意:使用运算符“&”时,变量与运算符633.4.3关系运算符与关系表达式

关系运算符都是双目运算,是用来比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若关系成立,结果为True,若关系不成立,结果为False。VB中的关系运算符如下表所示。运算符含义优先级实例结果<小于所有关系运算优先级相同。低于算术运算的加“+”,减“-”运算,高于逻辑非“Not”运算。15+10<20False<=小于或等于10<=20True>大于10>20False>=大于或等于"This">="That"True=等于"This"="That"False<>不等于"This"<>"That"TrueLike字符串匹配"This"Like*is"TrueIs对象比较

3.4.3关系运算符与关系表达式关系运算64关系运算的规则如下:(1)当两个操作式均为数值型,按数值大小比较。(2)字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。例:"ABCDE">"ABRA" 结果为False(3)数值型与可转换为数值型的数据比较,如:29>"189",按数值比较,结果为False。(4)数值型与不能转换成数值型的字符型比较,如:77>"sdcd",不能比较,系统出错。(5)“Like”运算符是VB6.0新增加的。其使用格式为:str1Likestr2关系运算的规则如下:(3)数值型与可转换为数值型的数据比较,653.4.4逻辑运算符与逻辑表达式

Not逻辑非为单目运算符(要求一个操作数),其它为双目运算符。

条件表达式1And条件表达式2条件表达式均为T结果为T条件表达式1Or条件表达式2条件表达式有一个T结果为T3.4.4逻辑运算符与逻辑表达式66说明:(1)逻辑运算符的优先级不相同,Not(逻辑非)最高,但它低于关系运算,Imp(逻辑蕴含)最低。(2)VB中常用的逻辑运算符是Not、And和Or。它们用于将多个关系表达式进行逻辑判断。(XorEqvImp)例如,数学上表示某个数在某个区域时用表达式:10≤X<20,用VB程序中应写成:X>=10AndX<20(3)参与逻辑运算的量一般都应是逻辑型数据,如果参与逻辑运算的两操作数是数值量,则以数值的二进制值逐位进行逻辑运算(0当False,1当True)。关系表达式与逻辑表达式常常用在条件语句与循环语句中,作为条件控制程序的流程走向。说明:673.4.5日期型表达式日期型数据是一种特殊的数值型数据,只能有下面3种情况:1.一个日期型数据可以相减:

DateB-DateA结果是一个数值型整数(两个日期相差的天数)。例如:#05/08/2002#-#05/01/2002#其结果为数值:72.一个日期型数据(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.5日期型表达式683.4.6运算符的执行顺序

表达式中出现了多种不同类型的运算符时,其运算符优先级如下:

算术运算符>=字符运算符>关系运算符>逻辑运算

说明:1.当一个表达式中出现多种运算符时,首先进行算术运算符,接着处理字符串连接运算符,然后处理比较运算符,最后处理逻辑运算符,在各类运算中再按照相应的优先次序进行。2.可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。3.4.6运算符的执行顺序表达式中693.表达式的书写中需注意的问题(1)运算符不能相邻。例a+-b是错误的。(2)乘号不能省略。例x乘以y应写成:x*y(3)括号必须成对出现,均使用圆括号。(4)表达式从左到右在同一基准并排书写,不能出现上下标(5)要注意各种运算符的优先级别,为保持运算顺序,在写VB表达式时需要适当添加括号(),若用到库函数必须按库函要求书写。如:

(b-sqr(b*b-4*a*c))/(2*a)(a+b)/(a-b)

3.表达式的书写中需注意的问题70VB提供了上百种内部函数(库函数),要求掌握这些常用函数的功能及使用。调用方法:

函数名(参数列表)有参函数函数名无参函数说明:

(1)使用库函数要注意参数的个数及其参数的数据类型(2)要注意函数的定义域(自变量或参数的取值范围)例如:sqr(x)要求:x>=0(3)要注意函数的值域。如:exp(23773)的值就超出实数在计算机中的表示范围。3.5常用内部函数VB提供了上百种内部函数(库函数),要求掌握这些常711.数学函数常用的数学函数见表3-8所示Abs(N)Cos(N)Sin(N)Exp(N)Log(N)Sqr(N)Rnd[(N)]Sgn(N)说明:(1)在三角函数中的自变量是以弧度为单位。如:sin300sin(3.14159/180*30)(2)Rnd函数返回0~1(包括0和不包括1)之间的双精度随机数。Randomize用于产生新“种子”若要产生1-100的随机整数:Int(Rnd*100)+1

提问:怎样产生[N,M]区间的随机数?

1.数学函数722.转换函数常用的转换函数见p62表所示说明:(1)要区别两个取整函数int()和fix()Fix(N)为截断取整,即去掉小数后的数。Int(N)不大于N的最大整数。N>0与int(N)相同,当N<0时,int(N)与fix(N)-1相等。例如:Fix(9.59)=9,Int(9.59)=9Fix(-9.59)=-9,Int(-9.59)=-10

思考:如何实现四舍五入取整?(2)Asc("Abcd")

值为:65(只取首字母的Ascii值)

(3)Val("abc123")值为:0,Val("1.2sa10")值为1.2注意:Val()函数只将最前面的数字字符转换为数值。2.转换函数733.字符串操作函数

常用的字符串函数见p46表说明:如果返回是字符型,则函数后有“$”字符。当然一般也可以不写,习惯都写上。例如:len("Thisisabook!")15Left$("ABCDEFG",3)"ABC"Mid$("ABCDEFG",2,3)"BCD"InStr(2,“ABCDEFGEF”,“EF”) 5(第一次出现的位置)3.字符串操作函数744.日期、时间函数

常用的日期时间函数见P65表

掌握:Time()Date()Now()Year()Month()Day()5.格式输出函数使用格式

Format$(

温馨提示

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

最新文档

评论

0/150

提交评论