第3章VB语言基础_第1页
第3章VB语言基础_第2页
第3章VB语言基础_第3页
第3章VB语言基础_第4页
第3章VB语言基础_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第3章VisualBasic语言基础本章重点:

变量和常量的定义及使用、运算符和表达式的使用及常用内部函数的使用。本章难点:

数据类型、运算符与表达式。本章内容及要求:掌握VB的数据类型;掌握VB的运算符和表达式的使用;掌握常用内部函数的使用;熟悉VB程序中代码和语句书写规则;3.1

数据类型1.数值型数据字节型Byte整型Integer长整型Long单精度型Single双精度型Double货币型Currency2.字符型数据String3.逻辑型数据Boolean4.日期型数据Date5.对象型数据Object6.变体型数据Varient表3.1VB的标准数据类型表1.字符集l

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

数字:0~9;特殊字符:空格

"

#

$

%

&

'()

*

+

-

/

\

^

,

.

:

;

<

=

>

?

@

[

]

_{}|~3.2字符集与标识符2.关键字

关键字又称为保留字,是系统中已经定义的、具有特定含义的标识符,如函数名、运算符、符号常量名等。在VB的程序代码中,约定关键字的首字母为大写字母,当用户输入关键字的时候,无论大小写字母,系统都会自动识别,并将它们转换为标准格式。如:Print、Integer、Double等。Unicode字符集,每个字符都是2个字节.3.标识符

标识符主要用来表示变量名、对象名、自定义的符号常量名、函数名、自定义类型名和后面将要学到的数组名、文件名以及其它具有专门含义的名字。标识符的命名规则:

①只能由英文字母、数字和下划线三种字符组成;②

第一个字符必须为英文字母;③如果VB系统是中文版的,则标识符中的英文字母还可以是汉字或其它语种的字符。如:area、PI、_ini、a_array、s1234、Pop等合法;而:456P、cade-y、w.w、a&b等都不合法。中文版:张2、π、λ等都是合法的标识符。注意:①VB标识符最多可以有255个字符。②VB不区分大写字母和小写字母。③自定义的标识符不能与关键字同名。3.3.1常量

1.直接常量

在程序运行过程中,其值不能被改变的量称为常量。在VB中有三类常量:直接常量、符号常量与系统常量。1.直接常量(1)

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

②长整型(Long):表示-2,147,483,648至2,147,483,647之间的整数例如:长整型常数的书写:40000、23&

3.3常量和变量通常我们说的整型常量指的是十进制整数,但VB中可以使用八进制和十六进制形式的整型常数,因此整型常数有如下三种形式:

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

,等于十进制数21。3)十六进制。以&H开头的整数是十六进制整数,如&H25表示十六进制整数25,即(25)16,等于十进制数37。VB中的颜色数据常常用十六进制整数表示。③整型常量的三种形式①单精度实型(Single):最多可以有:7位有效数字②双精度实型(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)实型常量在VB中字符串常量是用双引号"括起的一串字符,可以是所有西文字符和汉字、标点符号等;例如"ABC","abcdefg","123","0","VB程序设计"等。说明:(1)""表示空字符串,而""表示有一个空格的字符串;(2)若字符串中有双引号,例如ABD"XYZ,则用连续两个双引号表示,即:"ABD""XYZ"(4)逻辑(Boolean)数据类型

逻辑量只有两个值True,或False。将逻辑数据转换成整型时:True为-1,False为0;其它数据转换成逻辑数据时:非0为True,0为False。(3)字符串常量日期(Date)型数据按8字节的浮点数来存储,表示日期范围从公元100年1月1日~9999年12月31日,而时间范围从0:00:00~23:59:59。日期型数据有两种表示方法:

一种是在两端用“#”符号把表示日期和时间的字符括起来,如#1/26/2011#、#2011-1-2615:23:00#、#January26,2011#;

另一种是以数值表示,数值的整数部分表示距离1899年12月30日的天数,小数部分表示时间,0为午夜,0.5为中午12点,负数表示1899年12月30日以前的日期和时间。如:2.5表示1900年1月1日中午12点;-2.5表示1899年12月28日中午12点。

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

Const常量名[As类型]=常数表达式

或:Const常量名

[类型符号]=常数表达式例如:ConstPIAsDouble=3.1415926535等价于:ConstPI#=3符号常量例如,要将文本框Text1的前景颜色设置为红色,可以使用下面的语句:Text1.ForeColor=vbRed

Text1.ForeColor=&H0000FF&

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

系统常量是VB系统提供的应用程序和控件的系统定义常数。它们存放于系统的对象库中,在“对象浏览器”中的VisualBasic(VB)和VisualBasicforapplications(VBA)对象库中列举了VisualBasic的常数.3、系统常量3.3.2变量一.变量的命名规则

1.以字母或汉字开头,后可跟字母、数字或下划线组成.2.变量名最长为255个字符;3.不区分变量名的大小写,不能使用VB中的关键字;4.字符之间必须并排书写,不能出现上下标以下符是合法的变量名:

a,x,x3,BOOK_1,sum5以下标识符是非法的:

3s以数字开头s*T出现非法字符*

_3x以下划线开头bowy-1出现非法字符-(减号)

if使用了VB的关键字

变量是在程序运行过程中其值可以发生变化的量。也可以将变量理解为已命名的某段内存空间。二.变量声明

1.用Dim语句显式声明变量形式:Dim变量名[AS类型] Dim变量名[类型符]例: DimabAsinteger,sumAssingle等价于Dimab%,sum!用关键字Dim声明的变量只能在模块级或过程中使用;用Private声明的变量只能在包含其声明的模块中使用;用Public声明的变量可以在整个工程的所有模块中使用;用Static声明的局部变量会一直保持其值,直至该模块复位或重新启动。VisualBasic允许用户在编写应用程序时,不声明变量而直接使用,系统临时为新变量分配存储空间并使用,这就是隐式声明。所有隐式声明的变量都是Variant数据类型。VisualBasic根据程序中赋予变量的值来自动调整变量的类型。

例如:下面是一个很简单的程序,其使用的变量a,b,Total都没有事先定义。PrivateSubForm_Click()Total=0a=10:b=20Total=a+bPrint"Total=";TotalEndSub2.隐式声明良好的编程习惯都应该是:“先声明变量,后使用变量”.在窗体模块或标准模块的通用声明段中加入语句:

OptionExplicit3.强制显式声明变量的赋值就是向变量名所占的内存单元写入数据。赋值语句的一般格式为:

[Let]

<变量名>=<表达式>其作用是先求出<表达式>的值,并将表达式的值赋值给左边的变量。例如:a=8Strname="JIMi"X=Text1.text4.变量的赋值变量在程序的执行过程中可以多次赋值。例如:DimaasIntegera=5'变量a的当前值为5a=a+5

'计算表达式a+5时a的值为5,赋值后a的值为103.4运算符和表达式11(ia=3)1.算术运算符例:5+2*10mod10\9/3+2^2结果是:算术表达式

书写中需注意的问题(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)2.算术表达式日期型数据是一种特殊的数值型数据,运算时分3种情况:

①日期±数值运算时,将数值型数据的整数部分作为天数和日期数据的日期相加(减)产生新的日期;数值型数据的小数部分将转换为时间,并和日期型数据中的时间相加(减),结果为新的日期型数据的时间部分。例如:#7/26/20118:00:00#+5.5'结果为#7/31/201120:00:00##7/26/20118:00:00#-5.5'结果为#7/20/201120:00:00#3.日期型数据参与算术运算运算时,将其中的一个日期型数据转换为数值型数据,之后再进行“日期+数值”的运算。转换规则为:数值的整数部分是给定的日期型数据中的日期距1899年12月30日的天数,数值的小数部分是给定的日期型数据中的时间占24小时的比例数。例如:x!=#01/02/190012:00:00#转换结果x的值为3.5#7/26/20118:00:00#+#01/02/190012:00:00#

#7/26/20118:00:00#+

3.5#7/29/201120:00:00#②日期+日期运算时,将两个日期型数据均转换为数值型数据,之后再进行“数值-数值”的运算,运算结果为数值型数据。例如:#2011-9-1711:58#-#2011-9-1510:30#

40803.4986111111-40801.4375

'结果为2.0611111111③日期-日期4.字符串运算符

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

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

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

结果为223"100"+"123" '

结果为100123"Abc"+123 '

出错"100"&123 '

结果为100123100&123 '

结果为100123"Abc"&"123" '

结果为Abc123"Abc"&123 '

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

5.关系运算符(1)当两个操作式均为数值型,按数值大小比较。(2)字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。例:"ABCDE">"ABRA" 结果为False(3)数值型与可转换为数值型的数据比较,如:29>"189",按数值比较,结果为False。(4)数值型与不能转换成数值型的字符型比较,如:77>"sdcd",不能比较,系统出错。(5)Like运算符是VB6.0新增加的。可以与通配符"*"、"?"、"#"、[字符列表]、[!字符列表]结合使用,用于在数据库的SQL语句中进行模糊查询。格式为:str1Likestr2关系运算的规则6.逻辑运算符逻辑运算符:Not,And,Or,Xor,Eqv,Imp

(1)逻辑运算符的优先级不相同,Not(逻辑非)最高,但它低于关系运算,Imp(逻辑蕴含)最低。(2)VB中常用的逻辑运算符是Not、And和Or。它们用于将多个关系表达式进行逻辑判断。例如:数学上表示某个数在某个区域时用表达式:10≤X<20用VB程序中应写成:

X>=10AndX<20

如果写成如下形式将是错误的:

10<=x<20

或10<=xOrx<20

逻辑运算符的说明:再如:年龄小于40岁,女性,学历专科或本科.年龄<=39性别="女"学历="专科"学历="本科"OrAndAnd()表达式中出现了多种不同类型的运算符时,其运算符优先级如下:

算术运算符>字符运算符>关系运算符>逻辑运算说明:

1.当一个表达式中出现多种运算符时,首先进行算术运算符,接着处理字符串连接运算符,然后处理比较运算符,最后处理逻辑运算符.

2.可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。7.运算符的优先级VB提供了上百种内部函数(库函数),要求掌握这些常用函数的功能及使用。调用方法:

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

(1)使用库函数要注意参数的个数及其参数的数据类型(2)要注意函数的定义域(自变量或参数的取值范围)例如:sqr(x)要求:x>=0(3)要注意函数的值域。如:exp(23773)的值就超出实数在计算机中的表示范围。3.4.3常用内部函数常用的数学函数有:Abs(N)Sin(N)Cos(N)Tan(N)

Exp(N)Log(N)Sqr(N)Sgn(N)

说明:

(1)Abs(x):返回x的绝对值。(2)在三角函数中的自变量是以弧度为单位。如:sin300sin(3.14159/180*30)(3)Exp(x):返回e的指定次幂,即ex。(4)Log(x):返回x的自然对数。Logex1、数学函数(5)符号函数Sgn(x)根据x值的符号返回一个整数(-1、0或1)。1x>0Sgn(x)=0x=0-1x<0(6)Sqr(x):返回x的平方根,如Sqr(25)的值为5,Sqr(2)的值为1.4143.。此函数要求x>0,如果x<0则出错。数学函数2说明:(1)要区别三个取整函数int()、fix()和Round()

①Fix(N)为截断取整,即去掉小数后的数。

②Int(N)取不大于N的最大整数。

③Round(N)对表达式N进行四舍五入取整当N>0时fix(N)与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()函数只转换最前面的、能理解为数的字符。

(4)

Str()函数与Cstr()函数:正数用Cstr()转换无符号位2.转换函数

(1)删除空格函数Ltrim(x)返回删除字符串x前导空格符后的字符串。Rtrim(x)返回删除字符串x尾部空格符后的字符串。Trim(x):返回删除前导和尾随空格符后的字符串。(2)取子串函数Left(x,n):返回字符串x前n个字符所组成的字符串。Right(x,n):返回字符串x后n个字符所组成的字符串。Mid(x,m,n):返回字符串x从第m个字符起的n个字符所组成的字符串。3.字符串操作函数(3)Len(x):返回字符串x的长度,如果x不是字符串,则返回x所占存储空间的字节数。(4)Lcase(x)和Ucase(x):分别返回以小写字母、大写字母组成的字符串。(5)Space(n):返回由n个空格字符组成的字符串。(6)Instr(x,y):字符串查找函数,返回字符串y在字符串x中首次出现的位置。如果y不是x的子串,即y没有出现在x中,则返回值为0。

字符串操作函数2例:len("Thisisabook!")15Left$("ABCDEFG",3)"ABC"Right("ABCDEFG",3)“EFG"Mid$("ABCDEFG",2,3)"BCD"Ucase("ABcd")"ABCD"Lcase("ABcd")"abcd"Trim("Abcd")"ABcd"String(5,"A")"AAAAA"InStr(2,"ABCDEFGEF","EF")5(第一次出现的位置)字符串操作函数示例

(1)Date:返回系统当前日期。(2)Time:返回系统当前时间。(3)Minute(Now)、Minute(Time):返回系统当前时间“hh:mm:ss”中的mm(分)值。(4)Second(Now)、Second(Time):返回系统当前时间“hh:mm:ss”中的ss(秒)值。

4.日期、时间函数(1)随机函数RndRnd函数可以不要参数,其括号也省略。返回[0~1)(即包括0,但不包括1)之间的双精度随机数。若要产生1~100的随机整数,则可通过下面的表达式来实现:

Int(Rnd*100)+1'

温馨提示

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

评论

0/150

提交评论