《Visual Basic程序设计教程(第二版)》课件3_第1页
《Visual Basic程序设计教程(第二版)》课件3_第2页
《Visual Basic程序设计教程(第二版)》课件3_第3页
《Visual Basic程序设计教程(第二版)》课件3_第4页
《Visual Basic程序设计教程(第二版)》课件3_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

第3章VisualBasic的语言规则

【本章导读】

本章重点介绍VisualBasic的基本语法知识。包括各种数据类型数据类型的含义,常量和变量的定义和使用,运算符、表达式和函数的具体用法,以及编程规则的基本知识。【本章要点】数据类型的含义常量与变量的应用运算符、表达式和函数的应用第3章VisualBasic的语言规则

3.1数据类型

3.1.1标准数据类型1.字符串型(String)字符串是一个字符序列,专门用来存放字符文本信息的。在VisualBasic中,字符串是放在双引号内的若干个字符,其中长度为0(即不含任何字符)的字符串称为空字符串。例如:"Thisabook“

"显示123456789"""(空字符串)字符串分为两种,即变长字符串和定长字符串。其中变长字符串的长度是不确定的,而定长字符串含有确定个数的字符。3.1数据类型3.1.1标准数据类型2.数值型数值型数据分为整型数和浮点数两类。(1)整型数整型数是不带小数点和指数符号的数。1)整形(Integer):占用2个字节的存储空间,可以存放-32768~32767之间的整数。2)长整型(Long):占用4个字节的存储空间,可以存放-231~+231-1之间的整数。3.1数据类型3.1.1标准数据类型2.数值型(2)浮点数浮点数也称实数与实型数,带有小数部分的数值。1)单精度(Single):以4个字节存储,可以精确到7位十进制数。取值范围为-3.4×1038~3.4×1038。2)双精度浮点数(Double):以8个字节存储,可以精确到15或16位十进制数。取值范围为:-1.7×10308~1.7×10308。

3.1数据类型3.1.1标准数据类型3.货币型(Currency)货币数据为表示钱款而设置的。该类型数据以8个字节存储,精确到小数点后4位(小数点前有15位)。其取值范围为:-296-1~+296-1

与浮点数的区别在于浮点数中的小数点可以出现任何位置,而货币中的小数据点是固定的。4.字节型(Byte)

字节实际上是一种数值类型,以1个字节的无符号二进制数存储,其取值范围为0~255。3.1数据类型3.1.1标准数据类型5.布尔型(Boolean)

布尔型数据是一个逻辑值,用两个字节存储,它只取两种值,即True(真)或False(假)。6.日期型(Date)

日期型数据用来表示日期信息,其格式为mm/dd/yyyy或mm-dd-yyyy,取值范围为1/1/100到12/31/9999。

7.对象型(Object)8.变体形(Variant)自定义数据类型指用户根据需要定义自己的数据类型,指由若干标准数据类型组成的一种复合类型。3.1数据类型3.1.2自定义数据类型3.2变量、常量

在程序中,不同类型的数据既可以表现为常量形式,也可以表现为变量形式。常量的值在程序执行期间不发生变化。变量代表内存中指定的存储单元,存储单元在程序中可以根据需要赋予不同的数值,所以变量值是可以变化的。

3.2.1常量常量指在程序运行过程中其值保持不变的量。常量有两种:直接常量和符号常量。1.直接常量前面所介绍的各种类型的数据,其取值直接反映了其类型;例如:"abcd"

——一个字符串常量,长度为412345

——一个十进制整数为了显式地指明常数的类型,可以在常数后面加上类型说明符3.2变量、常量

%整型&长整型!单精度浮点数#双精度浮点数@货币型$字符串型3.2.1常量

2.符号常量定义符号常量,用来代替数值或字符串。一般格式为:Const常量名=表达式[,常量名=表达式]...“常量名”是一个名字“表达式”由数字常量、算术运算符(指数运算符^除外)、逻辑运算符组成,也可以使用字符串,但不能使用字符串连接运算符、变量及用户定义的函数或内部函数。例如:ConstMaxchars=254,Maxbue=Maxchars+1

3.2变量、常量

3.2.1常量

2.符号常量在使用符号常量时,应注意以下几点:(1)在声明符号常量时,可以在常量名后面加上类型说明符,例如:Constone&=1ConstOne#=1(2)当在程序中引用符号常量时,通常省略类型说明符。。(3)类型说明符不是符号常量的一部分,定义符号常量后,在定义变量时要慎重。例如,申明了ConstNum=10则Num!、Num#、Num%、Num&、Num@不能再用做变量名。

3.2变量、常量

3.2.2变量1.变量命名规则VisualBasic对变量名有以下要求:(1)以字母开始,可以包括数字、字母和下划线;不能多于255个字符;(2)不能与关键字重复(如End、Printe、Sub等);(3)在同一作用域中,变量名不能重复。3.2变量、常量

下面是一些正确的变量名:AbcNameintAgex12MY_Book下面是一些非法的变量名:12ab_abc.dMy$VarCallx[1]∏3.2.2变量2.变量的类型和定义任何变量都属于一定的数据类型,包括基本数据类型和用户定义的数据类型。在VisualBasic中,可以用下面几种方式来规定一个变量的类型:(1)用类型说明符来标识把类型说明符放在变量名的尾部,可以标识不同的变量类型。其中%表示整型,&表示长整型,!表示单精度型,#表示双精度型,@表示货币型,$表示字符串型。例如:Total%Amount#Lzlame$3.2变量、常量

3.2.2变量2.变量的类型和定义(2)在定义变量时指定其类型可以用下面的格式定义变量:Dim变量名As类型例如:DimCjAsInteger'把Cj定义为整型变量DimNameAsString'把Name定义为变长字符串DimMyNameAsString*10'定长字符串,长度为10个字节DimVar1AsString,Var2AsDouble3.2变量、常量

3.2.2变量3.变体类型变量

VisualBasic提供了一种变体数据类型(Variant)。和其他基本数据类型一样,也可以定义变体类型的变量,这种变量的使用十分灵活。

Variant变量可以用普通数据类型变量的格式定义,也可以缺省定义。例如:DimSomeValueAsVariantDimSomeValue

3.2变量、常量

3.3运算符和表达式

运算(操作)是对数据的加工。最基本的运算形式常常可以用一些简洁的符号来描述,这些符号称为运算符或操作符。被运算的对象,称为运算量或操作数。运算量可以是常量、变量、还可以是函数。由运算量和运算符可以组成表达式。表达式用来描述对哪些数据、以何种顺序进行什么样的操作。表达式的计算结果称为表达式的值,表达式的值也有相应的数据类型3.3.1运算符

VisualBasic提供了丰富的运算符,可以构成多种表达式。1.算术运算符算术运算符要求参加运算的运算量是数值型,运算结果也是数值型。3.3运算符和表达式运算符意义举例运算结果+加法运算2+57-减法运算取负数2-7-2-5-2*乘法运算2.1*1.53.15/除法运算13/52.6\整除运算13\52^幂运算2^33^0.581.7320508Mod取模(求余)运算13mod5-13mod53-33.3.1运算符2.字符串运算符字符串连接是把两个字符串首尾连接成一个字符串。可以进行字符串运算的运算符有“+”(加号)和“&”。"学习"&"VisualBasic" '运算结果为"学习VisualBasic""10"&"15" '运算结果为"1015"10&15 '运算结果为"1015"(先进行类型转换)10&"15" '运算结果为"1015""10"+15 '注意!运算结果为25一般情况下,两个运算功能是相同的,所以在进行字符串连接时最好使用“&”。

3.3运算符和表达式3.3.1运算符3.比较运算符比较运算符(又称为关系运算符)用来对两个值进行比较,比较的结果是一个逻辑值(如果Null参与比较运算则结果必为Null)。如果关系成立,则结果True,否则结果为False

3.3运算符和表达式运算符意义举例运算结果<小于2<5"ab"<"abc"TrueTrue>大于2>5"123">"99"FalseFalse<=小于等于2<=(5+3)/2"a"<="a"&"b"TrueTrue>=大于等于5-3>=2"abc">="abcd"TrueFalse=等于2=(4\2)"abc"="abc"TrueTrue<>不等于2<>3^0.5"abc"<>"ABC"TrueTrue3.3.1运算符3.比较运算符(1)字符串数据按其ASCII值进行比较。在比较两个字符串时,首先比较两个字符串的第一个字符,其中ASCII码值较大的字符串大。如果第一个字符相同时,比较第二个字符,以此类推,直到比较出大小。(2)在ASCII码表和国标码表中,位于前面的字符小于后面的字符,所有的汉字与中文符大于所有的英文字母、数字与半角符号。汉字以拼音为序进行比较。3.3运算符和表达式3.3.1运算符3.比较运算符(3)对于英文字母的比较,默认情况下是区分大小写的,如果希望进行比较时不区分大小,应该在模块的声明段加上一条语句:OptionCompareText默认值是(OptionCompareBinary)

3.3运算符和表达式3.3.1运算符4.逻辑运算符逻辑运算也称布尔运算。用逻辑运算符连接两个或多个关系式,组成一个布尔表达式。(1)Not(非)由真变假或由假变真,进行“取反运算”。3>8,Not(3>8)的值分别为False和True(2)And(与)对两个关系表达式的值进行与运算,如果两个表达式的值均为True,结果才为True,否则为False。3.3运算符和表达式3.3.1运算符4.逻辑运算符(3)Or(或)对两个表达式进行或运算,如果其中某一个表达式的值为True,结果就为True,只有两个表达式的值均为False时,结果才为False。例如:

(3>8)Or("a"<"b")结果为True(4)Xor(异或)如果两个表达式同时为True或同时为False,则结果为False,否则为True。例如:

(8>3)Xor(5<6)结果为False3.3运算符和表达式3.3.1运算符4.逻辑运算符(5)Eqv(等价)如果两个表达式同时为True或同时为False,则结果为True。例如:

(8>3)Eqv(5<6)结果为True(6)Imp(蕴含)当第一个表达式为True,且第二个表达式为False时,结果为False。其他情况结果均为True。3.3运算符和表达式XYNotXXandYXorYXXorYXEqvYXImpY-1-10-1-10-1-1-1000-1-1000-1-10-1-10-100-1000-1-13.3.2表达式表达式是指用运算符连接运算量形成的式子。表达式的运算结果称为表达式的值。根据表达式的类型,可以把表达式分不同的类型,如逻辑表达式、字符串表达式等。运算符有不同的优先级,在一个表达式中,优先级最高的运算符先进行计算,然后是优先级较高的运算符进行计算,最后才是优先级最低的运算符。同等优先级的运算符,按从左到右的顺序进行计算

3.3运算符和表达式3.3.2表达式1.运算符的优先级在表达式中,当运算符不止一种时,要先进行算术运算,接着进行比较运算,最后才是逻辑运算。所有比较运算符的优先顺序都相同;也就是说,要按它们出现的顺序从左到右进行运算.算术运算符和逻辑运算符则按图从左向右的优先顺序进行计算3.3运算符和表达式()正负号函数乘方*,/+,-Mod\()NotAndOrXorImpEqv3.3.2表达式1.运算符的优先级

3.3运算符和表达式3.3.2表达式2.表达式的书写虽然VisualBasic中的表达式与代数中的算式很相似,但二者却是两个完全不同的概念。在书写VisualBasic程序中的表达式时,不要受代数知识的影响。有一些字符是不可在VisualBasic的程序代码中出现的(字符串中除外),比如:≥、≠、±、×、÷、和上下标(如乘方)

3.3运算符和表达式3.3.2表达式2.表达式的书写

3.3运算符和表达式代数式表达式说明1.2×10-31.2E-3应该使用VisualBasic的常量表示(a+b)/(a-b)在表达式中无法写分式Sqr(b^2-4*a*c)使用内部函数Sqr计算平方根,表达式中乘法运算符*不能省略a/(-b)适当加括号避免产生歧义ex+∏Exp(x)+PiVisualBasic中不提供的常量(如E和∏)。可使用相应的函数(如Exp)或者自定义符号常量(Pi)a≥b≥ca>=bandb>=c使用逻辑运算符100*10%100*0.1VisualBasic中不提供的%(百分数),需换为小数3.3.2表达式2.表达式的书写说明:(1)当乘法和除法同时出现在表达式中时,将按照它们从左到右出现的顺序进行计算。可以用括号改变优先顺序。括号内的运算总是优先于括号外的运算。(2)字符串连接运算符(&)不是算术运算符,就其优先顺序而言,它在所有算术运算符之后,而在所有比较运算符之前。(3)^表示指数运算,例如A^B表示A的B次方。当A和(或)B不是单个常量或变量时,要用括号括起来。例如(A+B)^(C+2)。(4)乘号(*)不能省略,也不能用“.”代替。(5)在一般情况下,不允许两个运算符相连,应当用括号隔开。(6)括号可以改变运算顺序。3.3运算符和表达式3.3.2表达式3.混合表达式一个表达式内可能包括逻辑运算符、关系运算符和算术运算符,VisualBasic规定了以下优先级别:算术运算(高)↓

关系运算↓逻辑运算(Not→And→Or)(低)3.3运算符和表达式3.3.2表达式3.混合表达式3.3运算符和表达式3.4.1数学函数数学函数用于各种数学运算,包括三角函数、求平方根、绝对值及对数、指数函数等

3.4常用内部函数函数功能Sin(x)返回自变量x的正弦值Cos(x)返回自变量x的余弦值Tan(x)返回自变量x的正切值Atn(x)返回自变量x的反正切值Abs(x)返回自变量x的绝对值Sgn(x)返回自变量x的符号当x为负数时,函数返回值为-1当x为正数时,函数返回值为1当x为零时,函数返回值为0Sqr(x)返回自变量x的平方根Exp(x)返回以e为底、以x为指数的值,即求e的x次方Log(x)返回自变量x的自然对数,即相当于数学函数Ln(x)Int(x)返回小于或等于x的最大整数;Fix(x)返回数据的整数部分Rnd([x])返回一个小于1并且大于0的Single类型随机数3.4.2字符串函数

VisualBasic提供了大量的字符串函数,具有十分丰富的字符串处理能力

3.4常用内部函数函数功能LTrim$(字符串)去掉“字符串”左边的空白字符RTrim$(字符串)去掉“字符串”右边的空白字符Left$(字符串,n)返回“字符串”的左部n个字符Mid$(字符串,p,n)从第p个字符开始截取n个字符。Right$(字符串,n)返回“字符串”的右部n个字符。Len(字符串)测试字符串的长度Len(变量名)测试变量的存储空间String$(n,ASCII码)返回由该ASCII码对应的n个字符String$(n,字符串)返回由n个指定字符组成的字符串Space$(n)返回n个空格InStr([首字符位置,]字符串1,字符串2)返回“字符串2”的在"字符串1"中的位置Ucase$(字符串)把“字符串"中的小写字母转换为大写字母Lcase$(字符串)把“字符串”中的大写字母转换为小写字母3.4.3日期和时间函数用这些函数可以返回当前的日期和时间,并提取出年、月、日、时、分、秒以及对日期和时间进行格式化等。

3.4常用内部函数函数功能Date返回当前的日期Year(Now)返回当前的年份Month(Now)返回当前的月份Day(Now)返回当前的天数WeekDay(Now)返回当前的星期Time(Now)返回当前的时间Hour(Now)返回当前的小(0~23)Minute(Now)返回当前的分钟(0~59)Second(Now)返回当前的秒(0~59)3.4.4转换函数转换函数用于类型或形式的转换,包括整型、浮点型、字符串型之间以及数值与ASCII字符之间的转换。

3.4常用内部函数函数功能Hex$(x)一个十进制数转换为十六进制数和八进制数Oct$(x)一个十进制数转换为八进制数Asc(字符串)返回"字符串"中第一个字符的ASCII码Chr$(x)把x的值转换为相应的ASCII字符Val(字符串)把"字符串"转换为数值Str$(x)把x的值转换为一个字符串Cint(x)把x的小数部分四舍五入,转换为整数Ccur(x)把x的值转换为货币类型,最多保留4位小数CDbl(x)把x的值转换为双精度CLng(x)把x的小数部分四舍五入,转换为长整形CSng(x)把x的值转换为单精度数Cvar(x)把x的值转换为变体类型值3.4.

5格式输出函数格式:Format$(数值表达式,格式字符串)用格式输出函数Format$可以使数值或日期按指定的格式输出

3.4常用内部函数该函数的功能是:按“格式字符串”指定的格式输出“数值表达式”的值。如果省略“格式字符串”,则Format$函数的功能与Str$函数基本相同,唯一的差别是,当把正数转换成字符串时,Str$函数在字符串前面留有一个空格,而Format$函数则不留空格

温馨提示

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

评论

0/150

提交评论