VB程序设计第4章-语言基础_第1页
VB程序设计第4章-语言基础_第2页
VB程序设计第4章-语言基础_第3页
VB程序设计第4章-语言基础_第4页
VB程序设计第4章-语言基础_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、Main() int n,m,l; n56; m=43; lmn; printf(“L=%dn”,l); ,Private command1_click() Dim n as integer Dim m as integer Dim l as integer N=56 M=43 L=m+n Print “L=“,l End sub,C程序,VB程序,第4章 VB数据类型、运算符和表达式 (程序设计基础简),内容要点(及学习方法) 4.1 数据类型 4.2 常量和变量 4.3 运算符和表达式 4.4 常用内部函数,4.1 数据类型,4.1.1 基本数据类型,VB的数据类型分为基本数据类型和自定义

2、数据类型两种。,日期文字必须以一对“#”括起来,必须使用Set语句先对对象引用赋值,其后才能引用对象,说明: 1、Variant数据类型还包含三种特定值:Empty、Null、Error。 2、Variant数据类型是最为灵活的数据类型(类型+值信息) 。 3、Variant数据类型比其他类型的数据占有更多的内存空间。,num=1010 name=“张三” age=18 score=96.5,例:定义四个变量,分别用于保存“张三”的学号、姓名、年龄和成绩(考虑合适的数据类型)。,dim num As Integer dim name As String dim age As Integer d

3、im score As Single,思考:如果再定义“李四”的变量,怎么办呢?,4.1.2 自定义数据类型,用户可以利用Type语句定义自己的数据类型。其格式如下: Type 数据类型名 数据类型元素名 As 类型名 数据类型元素名 As 类型名 End Type,类似于C语言中的结构体!,Type Student Num As Integer Name As String*10 Age As Integer Score As Single End Type,Dim zhangsan as Student Zhangsan.num=1010 Z=“张三” Zhangs

4、an.age=18 Zhangsan.score=96,自定义的数据类型名,变量名,4.2 常量和变量,1、常量是指在整个应用程序运行期间值不会发生变化的量 。,2、变量是指在整个应用程序运行期间值可能发生变化的量。,4.2.1 常量,VB中的常量分为两种,一种是文字常量,一种是符号常量,1、文字常量 文字常量也称为字面常量(Literal),它分为字符串、数值、布尔值和日期文字,1)字符串常量 字符串常量由字符组成,由双引号括起来的任意字符集合。 例如: petroleum university ,¥25.00, 注意,双引号是字符串常量的定界符,不是字符串的一部分。,例:计算圆的面积和周长

5、 Ref ConstProj,3)日期常量 正确:#2002-10-20# 错误:#20021030#,4)布尔型常量 TRUE FALSE,% 整型 & 长整型 ! 单精度浮点数,# 双精度浮点数 货币型 $ 字符串型,例:67,234,456,34 , 23.32!,234$(错误),2)数值常量-具体数值 数值常量共有四种表示方式,即整型数、长整型数、货币型数和浮点型数。,2、符号常量 用一些具有一定意义的名字来代替这些不变的数值或字符串,即称为符号常量。,例1: Const Pi = 3.14159 Area = Pi * Radius * Radius 求面积 Circumferen

6、ce = 2 * Pi * Radius 求周长,1)常量赋值 符号常量声明的语法规则为: Const ConstantName As Type = value,例:Const NextDate AS DATE = #9/6/2002# 表示日期,或:Const NextDate = #9/6/2002# 表示日期,说明: 1、若要在一行中放置多个常数声明,可用逗号分隔如下: Const Temp1 = 100,Temp2 = 200,Temp3 = 300 2、在Const声明语句中,等号右边的表达式可以包括其它常量。如: Public Const Temp1 As Integer = 10

7、0 Public Const Temp2 As Integer = 2 * Temp1,2)常量的域 常量具有一定的使用范围,称为域。 在模块内部使用的常量用“Private”关键字来定义,在模块之间公用的常量用“Public” 来定义。 “过程内”、“模块/窗体级”、“公用的”或“模块/窗体间” Public/Private Const ConstName As type = Expression,例如(Ref IDE演示三种范围的差异) Private Sub Command1_GotFocus() Const pi As Integer = 3 Print pi End Sub 3 Pr

8、ivate Sub Command1_LostFocus() Const pi As Double = 3.1415926 Print pi End Sub 3.1415926,4.2.2 变量,变量代表数据的一个名称,其内容可随程序的运行而不断变化。其作用是存储临时数据,其值随程序运行而变化。,1、变量的类型(与常量类型相对应) 变量类型有数值型变量、字符串变量、布尔变量、日期变量、对象变量和变体变量等几种类型。,2、声明变量变量的定义(变量使用之前必须做的) 例: Dim PutIn As String putin=“asdfgh”,1)显式声明-指在程序中含有如下语句: Dim 【变量名

9、】 As type 如果缺省type,默认为Variant类型。,变量的命名原则: 1)VB的变量名最多可以有255个字符,首字符必须为英文字母 。 2)其后可以接任意字母、数字和下划线的组合。 3)不要使用VB中的保留字及“.”符号 。,例:VisualBasic 1ABC Y2003 x.1 print Pi+ LY_ZHENG ABS READ$ EPSON,2)隐式声明 程序中不显示地用Dim语句等定义变量,而直接使用变量,给定变量的值。,putin=“asdfgh”,强制显式声明 : 1)在类模块、窗体模块和标准模块的声明段中加入语句: Option Explicit Ref IDE

10、 2)在“工具”菜单中选取“选项”,单击“编辑器”选项卡,再复选“要求变量声明”选项。(此种设置必须重新启动VB程序才能生效),3、变量的作用域 变量的作用域定义了变量的有效作用区间,只有在该有效范围内,变量才能被程序访问。,1)局部(Local)变量 局部变量在过程内部声明,只有在该过程中的代码才能访问,不能用于应用程序的其他部分。,声明方式: 局部变量用Dim或Static关键字来声明。 例如:Dim i As Integer或Static i As Integer 说明:在不同过程中同名的局部变量之间是不会互相影响的。,2)模块/窗体(Module/Form)级变量 模块/窗体级变量在模

11、块或窗体声明,在声明它的模块或窗体中的所有过程中可见。 声明模块/窗体级变量用Private关键字 。,3)公有(Public)变量 在模块中声明,在所有项目的任何过程中都可见。 声明公有变量用Public关键字。,4、变量的生存期(区别于作用域) 变量的生存期是指变量在一定的期限内可以维持其数值的周期。,Private Sub Command1_Click() Static var1 As Integer Dim var2 As Integer var1 = var1 + 1 var2 = var2 + 1 Text1.Text = var1 Text2.Text = var2 End Su

12、b,【例4.2】变量的生存期测试。,1)声明为Public的变量在整个应用程序的运行期间都有效,而用Dim或Private声明的局部变量,只有在声明的过程存活期间存在,过程结束时,局部变量即消失。当再次调用过程时,该局部变量重新生成并初始化。用Private声明的模块级变量只在模块存活期有效。,2)当需要保留局部变量的值时,可将其定义为静态的。采用“Static”关键字来定义静态变量。,3)为了使过程中所有的局部变量为静态变量,可在过程的起始处加上Static关键字,例如: Static Sub NumAdd() Static Function Calcular(InputDate As Do

13、uble)As Double 定义了过程的静态变量之后,过程中的所有局部变量都成为静态局部变量,而不管在过程中它们是如何声明的。,4.3 运算符和表达式,VB的运算符有算术运算符、连接运算符、关系运算符和逻辑运算符。,表达式按其所含运算符和运算对象的不同,可分为算术表达式、关系表达式、逻辑表达式和字符串表达式 。,4.3.1 算术运算符和算术表达式,1、算术运算符,+ 加 -减 * 乘 /除 幂运算 -负号 整除 Mod取模,1)浮点数除法/ 表达式3/2的结果为1.5,2)整数除法 整数除法运算符()执行整除运算,其结果为整型值。例如,表达式32的结果为1。 整除的操作数一般为整型值。当操作

14、数带有小数时,将首先对其四舍五入为整型数,然后进行整除运算。例如,28.727.83的结果为3。,3)取模运算(同样是四舍五入取整) 7 Mod 4的结果为3. 25.68 Mod 6.99的结果为5。,2、算术表达式,算术表达式由算术型常数、变量、函数、算术运算符及圆括号组成。,算术运算符的优先级(从高到底),10 Mod 6/2的运算顺序为:先做6/2,结果为3,然后再做10 Mod 3,结果为1。,在书写算术表达式时,还应注意如下书写规则: (1)将一个数学算式书写为一个算术表达式时,应将数学算式中的所有符号写在同一行上,必要时加圆括号。 (2)在一个算术表达式中出现的括号应全部是圆括号

15、,且必须配对使用; (3)在一个算术表达式中,乘号*既不能省略,也不能用 代替。 (4)将一个数学算式写成算术表达式时,应将数学算式中的某些符号(比如、等)用VB中认可的其它变量名来代替。例如,应将改写成pi或其它变量名,改写成theta或其它变量名。,(-b+Sqr(b*b-4*a*c)/(2*a),4.3.2 连接运算符和字符串表达式,字符串连接运算符 将两个或多个字符串连接起来可以用字符串连接运算符“&”或“+”,生成一个新的字符串。例如,Visual & Basic + 6.0的结果为Visual Basic 6.0。,4.3.3 关系运算符和关系表达式,1、关系运算符 VB中的关系运

16、算符有如下六种: =(等于)(大于) (不等于) =(大于等于),2、关系表达式 用关系运算符连接两个算术表达式所组成的有意义的式子称为关系表达式。例如,Basic BasIC,a-b=0等。,3、运算结果 关系表达式的运算结果是一个Boolean类型的值,即True和False。VB把任何非零值都认为是“真”,但一般以-1表示“真”,0表示“假”。例如,对于a-b=0,当a=b时,结果为True(-1),否则为False(0)。,4、说明 1)当对单精度数或双精度数使用比较运算符时,必须特别小心,运算可能会给出非常接近但不相等的结果。例如,1.0/3.0*3.0=1.0,在数学上显然是一个恒

17、等式,但在计算机上执行时可能会给出一个假值(0)。因此,应避免对两个浮点数作“相等”或“不相等”的判别。上式可改为: Abs(1.0/3.0*3.0-1.0) (Abs是求绝对值函数,可取1e-5) 只要它们的差小于一个很小的数,就认为1.0/3.0*3.0与1.0相等。,2)用关系运算符既可以进行数值的比较,也可以进行字符串的比较。(以ASCII码为标准),4.3.4 逻辑运算符和逻辑表达式,1、逻辑运算符 逻辑运算也称布尔运算。VB中的逻辑运算符有如下六种: Not(非)And(与) Or(或)Xor(异或) Eqv(等价) Imp(蕴含),1)Not:逻辑非,即对逻辑值“取反”。例如:

18、Not(35) 取反,表达式值为假,3)数学上判断x是否在区间a,b时,习惯上写成axb,但在Visual Basic中不能写成a=a And x=b,其中And是下面将要介绍到的逻辑运算符。,“ABC”abcd”- false,2)And:逻辑与。两个表达式的值均为真,则结果为真,如果有任一个表达式值为假,则结果为假。其运算规则如表4.3。 表4.3 And运算规则表,3)Or:逻辑或。当两个表达式中至少一个为真时,结果为真。,4)Xor:逻辑异或。当两个表达式值相反时,结果为真。,5)Eqv:两个表达式的值相同时,结果为真。,6)Imp:比较两个表达式。当第一个表达式为假或第二个表达式为真

19、时操作结果为真(规定)。,逻辑运算符的优先级由高到底如下: Not And Or Xor Eqv Imp,2、逻辑表达式 用逻辑运算符连接两个或多个关系式组成一个逻辑表达式。例如,x=a And x=b就是一个逻辑表达式。 3、运算结果 逻辑表达式的运算结果也是一个Boolean类型的值,即True和False。VB把任何非零值都认为是“真”,但一般以-1表示“真”,0表示“假”。,4.3.5 各种运算符的优先级比较,4.4 常用内部函数,4.4.1 数学函数,Int,Fix,Sqr,Abs,Rnd,Sgn,Hex,Oct,Exp,Sin,Cos,Tan,Atn。,4.3.6 日期型表达式,用

20、于表示日期和时间 格式: # VB接受许多种日期时间格式 例: 下面的 Date/Time 值全部有效。 #3-6-93 13:20# #March 27,1993 1:20am# #Apr-2-93# #14 April 1993# #12/18/1999#,(1)两个日期型数据相减,结果是一个数值型数据(两个日期相差的天数)。例如,#12/20/2002# - #12/10/2002#的结果为数值型数据10。 (2)一个表示天数的数值型数据与日期型数据相加、减,结果仍为日期型数据。例如,#12/10/2002# +10的结果为日期型数据#12/20/2002#,1、Int(x)函数 用于返

21、回小于或等于x的最大整数。,Int(45.67) 结果为45 Int(-2.89) 结果为-3,2、Fix(x)函数 此函数的作用与Int函数类似。当x为正数时,无条件地把小数部分舍掉;当x为负数时,结果与Int(x)函数不太一样。,Fix(45.67) 结果为45 Fix(-2.89) 结果为-2,3、Abs(x)函数 此函数可用来求x的绝对值。 Abs(-4) 结果为4,4、Sqr(x)函数 此函数用来求x的平方根。,5、Rnd(number)函数 此函数用来返回0和1之间的随机数。,Randomize语句 初始化随机数发生器 Randomize,例: 生成a,b 范围内的随机整数 Int

22、(b-a+1)*Rnd+a),6、Sgn(x)符号函数 Sgn(3) 结果为1 Sgn(-6) 结果为-1 Sgn(0) 结果为0,7、Hex(x)和Hex$(x)函数 此函数的作用: (1)传回x所代表的16进制数。Hex(15)-F (2)Hex(x)返回数值类型,Hex$(x)返回字符串类型。 8、Oct(x)和 Oct$(x) Oct(15)-17 此函数返回8进制数。其功能说明与Hex(x)完全相同。,9、Exp(x)函数 此函数用来返回以e为底的x幂值。求e3 EXP(3),10、Sin(x),Cos(x),Tan(x),Atn(x) 分别用于返回x的正弦,余弦,正切,反正切值。,

23、VarType : 用来返回变体类型变量所存放数据的数据类型。,4.4.2 数据类型转换函数,4.4.3 字符处理函数,Chr,Asc,String,Len,Left,Right,Mid,Lcase,Ucase,Ltrim,Rtrim,Trim,Str,Val,InStr,StrComp。,1、Chr$(数值)函数 此函数返回ANSI码的对应字符。 例:Chr(65)-A 例:我们常用以下的表达式组成回车换行符: Chr(13)+ Chr(10) 2、Asc(“字符”)函数 此函数用来返回字符的ANSI码值。 说明:若输入为一字符串,则只返回第一个字符的ASCII码值。 例如 当x=Asc(“

24、a”)时,x=97; 当x=Asc(“ab”)时,x=97 3、Len(字符串) 此函数用于返回字符串的长度。 Len(“asdfg”)-5,4、String$(个数,字符) 此函数用于重复某一个字符。 说明: (1)“个数”用来指定重复的次数。 (2)若“字符”为一字符串,则只重复复制第一个字符。 例如,当x= String$(5, a)时,则x=aaaaa“ 当x= String$(5, abc)时,则x=aaaaa“,5、Left$(字符串,字符个数) 此函数用于返回“字符串”最左边的长度为“字符个数”的字符串。例如:Dim substr As String substr=Left(Vi

25、sual Basic,6) 则substr=Visual,6、Right$(字符串,字符个数) 此函数用于返回“字符串”最右边的长度为“字符个数”的字符串。 例如: Dim substr As String substr=Right(“Visual Basic”,5) 则substr=”Basic” 7、Mid$(字符串,起始位置,字符个数) 此函数用于返回一个子字符串。 例如: Dim substr As String substr=mid(“Visual Basic”,3,3) 则substr=”ual” 说明: (1)子字符串从“起始位置”开始,以“字符个数”为长度; (2)若省略“字符

26、个数”,则从起始位置到字符串的结尾。,8、Lcase(字符串)和Ucase(字符串) Lcase:不论字符串中的字符为大写还是小写,一律输出为 小写。 Lcase(“ABCabc”)-”abcabc” Ucase:不论字符串中的字符为大写还是小写,一律输出为 大写。 Ucase(“ABCabc”)-”ABCABC” 9、Ltrim(字符串)、Rtrim(字符串)、Trim(字符串) Ltrim(字符串):用于去掉字符串中左边的空格。 Rtrim(字符串):用于去掉字符串中右边的空格。 Trim(字符串):用于去掉字符串中左右两边的空格。 10、Str(数值)和Val(字符串) Str(数值):

27、用于将数字转化为字符串。 Val(字符串):用于将字符串转化为数值。 例如: a=Str(34.56) b=Val(“234.56”) 则a=“34.56”,b=234.56,11、InStr(起始位置,“字符串1”,“字符串2”,比较模式) 此函数用来在字符串1中查找字符串2。 说明: (1)从字符串1的“起始位置”处开始查找字符串2,如果找到“字符串2”,则返回字符串2在字符串1中的起始位置。 (2)比较模式可以为0或1,为1时,比较时不区分大小写;为0时,区分大小写。VB的默认设置为0。 (3)若指定了比较模式,则必须指定起始位置,否则就会出现语法错误。 例:Instr(1,”abcdef”,”cd”)-3 12、StrComp(字符串1,字符串2,比较模式) 此函数用于对两个字符串进行比较。 说明: (1)

温馨提示

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

评论

0/150

提交评论