常量变量及表达式_第1页
常量变量及表达式_第2页
常量变量及表达式_第3页
常量变量及表达式_第4页
常量变量及表达式_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

常量变量及表达式第1页,共47页,2023年,2月20日,星期一补充:VB语言字符集及编码规则一、VB的字符集l

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

数字:0一9;l专用字符:共27个,二、编码规则与约定(一)、编码规则1.VB代码中不区分字母的大小写。2.在同一行上可以书写多条语句,但语句间要用冒号“:”分隔。3.若一个语句行不能写下全部语句,或在特别需要时,可以换行。换行时需在本行后加入续行符,1个空格加下划线“_”。第2页,共47页,2023年,2月20日,星期一4.一行最多允许255个字符。5.注释以Rem开头,也可以使用单引号“'”,注释内容可直接出现在语句的后面。

(二)、约定1.为了提高程序的可读性,对于VB中的关键字其首字母大写,其余字母小写2.注释有利于程序的维护和调试Rem开始或单撇‘。例如:’ThisisaVBREMThisisaVB在6.0中新增了“块注释/取消块注释”第3页,共47页,2023年,2月20日,星期一3.通常不使用行号4.对象名命名约定:每个对象的名字由3个小写字母组成的前缀(指明对象的类型)和表示该对象作用的缩写字母组成。第4页,共47页,2023年,2月20日,星期一3.1

数据类型一.标准数据类型表3.1第5页,共47页,2023年,2月20日,星期一3.1.1字符串型(String)

字符串包括除双引号和回车以外可打印的所有字符,双引号作为字符串的定界符号。 例如:“abc”“ABC”“计算机”“12.34”“3+2”“”(空串)都是字符型。注意字符串中空格是有效字符。

如果字符串本身包括双引号,可用连续两个双引号表示。例:要打印以下字符串:"Youmuststudyhard",hesaid.在程序中需要将该字符串表示成:"""Youmuststudyhard"",hesaid."3.1.2数值型 VB中的数值型数据分为整型和实型两大类。1.整型 整型数是不带小数点和指数符号的数。包括整型、长整型和字节型整数。第6页,共47页,2023年,2月20日,星期一(1)整型(Integer,类型符%)

以2个字节存储

a.十进制表示:由+-号,0~9组成范围:-32768~32767b.八进制表示:以&或&O(字母O)开头的整数是八进制整数,由0~7组成,如&O25表示八进制整数25,即(25)8,等于十进制数21。范围:&O0~&O177777c.十六进制表示:以&H开头,由0~9,A~F组成,如&H25表示十六进制整数25,即(25)16,等于十进制数37。VB中的颜色数据常常用十六进制整数表示。范围:&H0~&HFFFF

例如:15,-345,654%都是整数型。而45678%则会发生溢出错误。

(2)长整型(Long,类型符&)

长整型用4个字节存储,取值范围是-2147483648到+2147483647。 例如:123456,45678&都是长整数型。

(3)字节型(Byte)

用于存储二进制数据,用一个字节存储,取值范围是0到255。第7页,共47页,2023年,2月20日,星期一2.实型

实型数据主要分为单精度、双精度和货币型3种。 (1)单精度浮点数(Single,类型符!) 单精度数用4个字节存储,有7位有效数字,取值范围1.401298E-45<|x|<3.402823E+38。 例如:3.14!,2.718282。(2)双精度浮点数(Double,类型符#)例如:123.45#,0.12345D+3。第8页,共47页,2023年,2月20日,星期一(3)货币型(Currency,类型符@)

货币型数据主要用来表示货币值,用8个字节存储,货币型是定点数,精确到小数点后面第4位,第五位四舍五入。整数部分最多15位。 例如:3.56@、65.123456@都是货币型。第9页,共47页,2023年,2月20日,星期一3.1.3逻辑型(Boolean) 逻辑型数据只有两个:逻辑真True和逻辑假False,用2个字节存储。当把逻辑值转化为数值型时,False为0,True为-1。3.1.4日期型(Date) 日期型数据用8个字节来存储,日期范围从公元100年1月1日到9999年12月31日,可以用#括起来放置日期和时间,允许用各种表示日期和时间的格式。 日期可以用“/”、“,”、“-”分隔开,可以是年、月、日,也可以是月、日、年的顺序。时间必须用“:”分隔,顺序是:时、分、秒。第10页,共47页,2023年,2月20日,星期一例如:#1999-08-1110:25:00pm#、#08/23/99#、#03-25-7520:30:00#、#98,7,18#等都是有效的日期型数据。在VB中会自动转换成mm/dd/yy(月/日/年)的形式。

3.1.5变体型(Variant) 变体型也称为可变类型,它是一种特殊的数据类型。它的类型可以是前面叙述的数值型、日期型、字符型等,完全取决于程序的需要。从而增加了VB数据处理的灵活性。

3.1.6对象型数据(Object)

以4个字节存储,用于引用程序中的对象。第11页,共47页,2023年,2月20日,星期一二、自定义类型 在VB中可以用系统提供的标准类型定义变量,它们都是计算机处理的基本数据项。但在实际工作中,常见的并不是孤立的数据项,而是由两个或两个以上的基本项组成的组合项。例如,学生对象由学号、姓名、性别与语文、英语、数学、…、平均分数等基本项组合成组合项。用这些组合项来描述相应对象的若干属性,这些描述相同对象的组合项的集合形成了记录。在VB中使用用户定义数据类型定义记录结构。第12页,共47页,2023年,2月20日,星期一在模块级别中使用,用于定义包含一个或多个元素的用户自定义的数据类型。使用形式:

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

...EndType说明

第13页,共47页,2023年,2月20日,星期一

TypeStudent XhAsSting XmAsString XbAsString NlAsInteger ScoreAsSingleEndType例如:对于一个学生的“学号”、“姓名”、“性别”、“年龄”、“入学成绩”等数据,为了处理数据的方便,常常需要把这些数据定义成一个新的数据类型(如Student类型)。第14页,共47页,2023年,2月20日,星期一练习题1.下面()是不合法的整型常数

a)123%b)123&c)&0123d)%1232.一个变量要保存-32786,可以定义成()型的

a)Integerb)longc)singled)double3.下面()不是类型说明符

a)&b)$c)*d)@4.怎么定义a为整型变量?1)2)第15页,共47页,2023年,2月20日,星期一3.2常量和变量3.2.1常量在程序运行过程中,其值不能被改变的量称为常量。在VB中有三类常量:普通常量符号常量系统常量一、普通常量

1.

整型常量

(1)整型(Integer):表示-32768至32767之间的整数例如:1011020

(2)长整型(Long):表示-2,147,483,648至2,147,483,647之间的整数例如:长整型常数的书写:23&第16页,共47页,2023年,2月20日,星期一2、实数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。第17页,共47页,2023年,2月20日,星期一

3、字符串常量在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。第18页,共47页,2023年,2月20日,星期一

5、日期常量日期(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的整数表示该日期以前的日期。

第19页,共47页,2023年,2月20日,星期一二、符号常量

在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。VB中使用关键字Const声明符号常量。其格式如下:Const常量名

[As类型|类型符号]=常数表达式例如:

ConstPI#=3.1415926535等价于:

ConstPIAsDouble=3.1415926535三、系统常量

VB系统提供了应用程序和控件的系统定义常数。它们存放于系统的对象库中,在“对象浏览器”中的VisualBasic(VB)和VisualBasicforapplications(VBA)对象库中列举了VisualBasic的常数第20页,共47页,2023年,2月20日,星期一例如,要将文本框Text1的前景颜色设置为红色,可以使用下面的语句:

Text1.ForeColor=vbRed

这里的vbRed就是系统常量。这比直接使用16进制数来设置要直观得多。

又如,窗口状态属性WindowsState可取0,1,2三个值,对应三种不同状态(参见第二章表2-2所示)。在程序中使用语句Myform.WindowsState=vbMaxmized,将窗口极大化,显然要比使用语句Myform.WindowsState=2易于阅读和理解。第21页,共47页,2023年,2月20日,星期一一.变量和常量的命名规则1.以字母或汉字开头,后可跟字母、数字或下划线组成,长度小于等于255个字符;2.不能使用VB中的关键字(主要包括:命令名、函数名、数据类型名、运算符、VB系统提供的标准过程等);3.VB中不区分变量名的大小写.4.为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。例如:strAbc,(字符串变量)iCount,(整型变量)dblx,(双精度变量)sYz(单精度变量)3.2.2变量第22页,共47页,2023年,2月20日,星期一二.变量声明

1.用Dim语句显式声明变量形式:Dim变量名[AS类型] Dim变量名[类型符]

缺省[As类型]为可变类型(Dimx,y,zasdouble,则x,y定义成可变类型,z定义成双精度型)

例 DimiCountAsinteger,sumAssingle

等价于DimiCount%,sum!2.隐式声明

VisualBasic允许用户在编写应用程序时,不声明变量而直接使用,称为隐式声明。所有隐式声明的变量都是Variant数据类型。VisualBasic根据程序中赋予变量的值来自动调整变量的类型。第23页,共47页,2023年,2月20日,星期一下面是一个很简单的程序,其使用的变量a,b,Sum都没有事先定义。PrivateSubForm_Click()Sum=0a=10:b=20Sum=a+bPrint"Sum=";SumEndSub3.强制显式声明——OptionExplicit语句良好的编程习惯都应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。VisualBasic中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:OptionExplicit第24页,共47页,2023年,2月20日,星期一3.3变量的作用域变量的作用范围:

变量被定义后,每一个变量都有它自己的作用范围,称为作用域,在VB里,一个应用程序就是一个工程,一个工程通常包含:窗体文件,模块文件,类模块文件,用户自定义控件文件和属性页文件,每个文件里都可以有变量,但是,变量的作用范围有多大,取决于它所处的位置。

声明部分窗体文件:事件过程通用过程全局声明部分

VB的应用程序:模块文件:模块层声明部分通用过程模块层声明部分类模块文件:

通用过程第25页,共47页,2023年,2月20日,星期一1、局部变量:

在一个过程内部定义的变量称为局部变量,它只能在本过程内使用。例如:privatesubform1_click()staticsum1assingledimcountasinteger………………endsub

不同过程里可以有相同的变量名2、窗体和模块级变量:如果是在窗体的声明部分声明变量,则在窗体文件内的所有过程都可以使用它,它不在任何一个过程内,而在所有过程的外面。第26页,共47页,2023年,2月20日,星期一例如:在窗体form1的通用声明段定义三个变量:

publica1asintegerprivatea2asintegerdima3asinteger

但是他们也仅仅是本窗体内的过程可访问和引用它,如果其他窗体(form2)想访问form1里定义的变量,对于a1来说,必须带上它所在窗体的名字。例如:form1.a1

而对于变量a2和a3来说,由于它们是用private和dim定义的私有模块级变量,只属于本窗体,其他窗体和模块则不能引用它.3、全局变量

可以被应用程序中的任何一个模块或窗体访问,但是它必须在模块文件中用public或global声明:

例如:publicaasintegerglobala1asinteger

则a,a1在整个程序里有效注意:首先要建模块文件(.方法…..)

第27页,共47页,2023年,2月20日,星期一3.4运算符和表达式一.运算符

1.算术运算符(均是双目运算,ia=3)例:5+10mod10\9/3+2^2结果是:10第28页,共47页,2023年,2月20日,星期一2.字符串运算符与字符串表达式

字符串运算符有:&、+

。功能是字符串连接例如:

"ABCD"+"EFGHI"'结果为:ABCDEFGHI“VB”&“程序设计教程”'结果为:VB程序设计教程说明:当连接符两旁的操作量都为字符串时,上述两个连接符等价。它们区别是:

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

&(连接运算):两个操作数既可为字符型也可为数值型,当是数值型时,系统自动先将其转换为数字字符,然后进行连接操作。第29页,共47页,2023年,2月20日,星期一例:"100"+"123"'结果为

100123"Abc"+123'出错"100"&123'结果为

100123100&123'结果为

100123"Abc"&123'结果为

Abc123

注意:使用运算符“&”时,变量与运算符“&”之间应加一个空格。这是因为符号“&”还是长整型的类型定义符,如果变量与符号“&”接在一起,VB系统先把它作为类型定义符处理,因而就会出现语法错误。第30页,共47页,2023年,2月20日,星期一3.4.2关系运算符与关系表达式

关系运算符都是双目运算,是用来比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若关系成立,结果为True,若关系不成立,结果为False。

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

第31页,共47页,2023年,2月20日,星期一关系运算的规则如下:(1)当两个操作式均为数值型,按数值大小比较。(2)字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。例:"ABCDE">"ABRA" 结果为False

(3)数值型与可转换为数值型的数据比较,如:29>"189",按数值比较,结果为False。(4)数值型与不能转换成数值型的字符型比较,如:77>"sdcd",不能比较,系统出错。(5)“Like”运算符是VB6.0新增加的。其使用格式为:str1Likestr2第32页,共47页,2023年,2月20日,星期一

3.4.3逻辑运算符与逻辑表达式

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

条件表达式1And条件表达式2条件表达式均为T结果为T

条件表达式1Or条件表达式2条件表达式有一个T结果为T第33页,共47页,2023年,2月20日,星期一说明:(1)逻辑运算符的优先级不相同,Not(逻辑非)最高,但它低于关系运算,Imp(逻辑蕴含)最低。(2)VB中常用的逻辑运算符是Not、And和Or。它们用于将多个关系表达式进行逻辑判断。例如,数学上表示某个数在某个区域时用表达式:

10≤X<20,用VB程序中应写成:

X>=10AndX<20(3)参与逻辑运算的量一般都应是逻辑型数据,如果参与逻辑运算的两操作数是数值量,则以数值的二进制值逐位进行逻辑运算(0当False,1当True)。关系表达式与逻辑表达式常常用在条件语句与循环语句中,作为条件控制程序的流程走向。第34页,共47页,2023年,2月20日,星期一3.4.4日期型表达式日期型数据是一种特殊的数值型数据,只能有下面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#第35页,共47页,2023年,2月20日,星期一3.4.5运算符的执行顺序

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

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

说明:

1.当一个表达式中出现多种运算符时,首先进行算术运算符,接着处理字符串连接运算符,然后处理比较运算符,最后处理逻辑运算符,在各类运算中再按照相应的优先次序进行。

2.可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。第36页,共47页,2023年,2月20日,星期一3.4.6运算符的执行顺序

1.表达式的组成 表达式由常量、变量、函数、运算符以及圆括号、(),按照一定的规则组成,不管表达式的形式如何,都会计算出一个结果,该结果的类型由参与运算的数据和运算符决定。第37页,共47页,2023年,2月20日,星期一2.表达式的运算1)按优先级由高到低运算,优先级相同时自左向右运算2)运算结果类型转换:以精度高者为准

Integer<Long<Single<Double<Currency3)整除和求余4)字符串连接“1”+2“1”&25)字符串比较“ABC”>“ABCD”“123”>“ABC”123>“456”123>“ABC”第38页,共47页,2023年,2月20日,星期一3.表达式的书写中需注意的问题(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)

第39页,共47页,2023年,2月20日,星期一

3.5常用内部函数函数分类内部函数(标准函数或库函数)数学函数、转换函数、字符串函数、日期时间函数、格式输出函数用户自定义函数调用有参函数:函数名(参数列表)无参函数:函数名注意参数的个数及类型函数调用只能出现在表达式中,目的是使用函数求值要注意函数的定义域(自变量或参数的取值范围)要注意函数的值域第40页,共47页,2023年,2月20日,星期一

1.数学函数

常用的数学函数见P63Abs(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)之间的双精度随机数。

Rnd[(N)],N的值决定了Rnd生成随机数的方式N<0:以N为随机种子,每次返回相同的随机数

N>0或者缺省:产生序列中的下一个随机数

N=0:返回最近生成的随机数

若要产生1-100的随机整数:Int((Rnd*100)+1)

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

Int(Rnd*(M-N+1)+N)第41页,共47页,2023年,2月20日,星期一2.转换函数

常用的转换函数见P63说明:(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值)

例:Asc(“Abcd”)为65,Chr(65)为“A”(3)Val("abc123")值为:0,Val("1.2sa10")值为1.2注意:Val()函数只将最前面的数字字符转换为数值。例:Val(“abc123”)为0,Val(“1.2sa10”)为1.2Str(2.50)为“2.5”,Str(-2.50)为“-2.5”(4)使用Str函数将数字转

温馨提示

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

评论

0/150

提交评论