第02章程序设计入门.ppt

上传人:本田雅阁 文档编号:3416518 上传时间:2019-08-23 格式:PPT 页数:45 大小:413.04KB
返回 下载 相关 举报
第02章程序设计入门.ppt_第1页
第1页 / 共45页
第02章程序设计入门.ppt_第2页
第2页 / 共45页
第02章程序设计入门.ppt_第3页
第3页 / 共45页
第02章程序设计入门.ppt_第4页
第4页 / 共45页
第02章程序设计入门.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《第02章程序设计入门.ppt》由会员分享,可在线阅读,更多相关《第02章程序设计入门.ppt(45页珍藏版)》请在三一文库上搜索。

1、第2章 程序设计入门,语言和语法是Visual Basic程序设计基础,本章的主要内容有: 2.1 Visual Basic中的数据类型 2.2 常量与变量 2.3 表达式 2.4 常用内部函数 2.5 语句和程序,2.1 Visual Basic中的数据类型,2.1.1 数据的分类 数据的概念:用于描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序加工处理的符号的集合统称为数据。 数据的分类: 从数据的类型来分,数据可分为:数值型数据、字符型数据、逻辑型数据、日期型数据等。 从数据的处理层次上分,数据又可分为:常量、变量、函数和表达式。,2.1.2 标准数据类型,Visual Ba

2、sic中的基本数据类型,说明: 1其中前六个为数值型,它们的区别如下: Byte型:不能表达负数,只能表达0-255内的整数, 不能使用小数。 Integer与Long型:只能表达整数,数值范围达到+/-21亿,但运算速度较慢。 Single、Double与Currency型:数据可包含小数,其中Single型的精度为7位,Double型的精度达到15位, Currency型支持小数点左边15位右边4位。Single与Double的有效范围比Currency大得多,但精度低。 2所有数值型的数据可以互相赋值,若将浮点型数赋给整型数,将对小数进行四舍五入后再赋值。,3. 在Visual Basi

3、c中,数值型数据都有一个有效的范 围值,程序中的数据如果超出规定的范围,就会出现“溢出”信息(Overflow)。如果小于范围的下限值,系统将按“0”处理;如果大于上限值,则系统只按上限值处理,并显示出错误信息。 4String型可分为定长和变长两类,定长型可容纳 65535个字符,变长型可容纳20亿个字符。 5Date型用于表示日期时间,在VB中Date型数据必须用“#”括起来,有三种标准格式: #月/日/年# 例如:#12/23/1998# #时:分:秒 AM|PM # 例如:#8:05:34 AM# #月/日/年 时:分:秒 AM|PM# 例如:#12/23/1998 21:11:00

4、PM#,Visual Basic除接受标准格式外,也接受非标准格式,例如: #1999-2-8#、#1999/2/8#、#February 8,1999#、#8 February,1999# 它们都表示1999年2月8日,但 #1999年2月8日# 是错误的。 建议尽量使用标准格式,因为非标准格式容易产生歧义,例如#02-3-8#就不表示2002年3月8日,而是表示2008年2月3日。在Visual Basic的“立即”窗口(如图2-1所示)(按Ctrl+G键打开)可验证上述结果。,图2-1 Visual Basic的“立即”窗口,2.1.3 构造类型 除了上面介绍的基本数据类型外,在Visu

5、al Basic中还提供了构造类型,主要包括数组、用户自定义类型、以及枚举类型等。构造类型实际上是由基本类型的数据按一定的规则组合而成的,也称为“导出类型”。 构造数据类型将在第六章进行详细介绍。,6Variant型是可变型(变体型),除了定长String型和自定义类型外,它可存放任何类型的数据,是一种万能的数据类型。我们在2.2节中再对变体型变量进行详细介绍。,在程序中,不同类型的数据既可以以常量的形式出现,也可以以变量的形式出现。常量在程序执行期间是不发生变化的,而变量的值是可变的,它代表内存中指定的存储单元。,2.2 常量与变量,常量:常量是指在程序运行过程中始终保持不变的数值、字符串等

6、常数。 在Visual Basic中,有两种形式的常量:文字常量和符号常量。 1.文字常量 文字常量也称为直接常量,就是在程序代码中,以直接明显的形式给出的数。根据常量的数据类型有:数值常量、字符常量、日期/时间常量、布尔常量。,2.2.1 常量,(1)数值常量 数值常量共有5种表示方式:整数、长整数、定点数、浮点数和字节数。 整数、长整数、字节数的取值范围和表示方法: 见前一节,在表示它们的常量时取值范围要在其所表示数的范围之内。例如,整数数值常量:10,2566,-38,0;长整数数值常量:-524698,26938,0;字节数值常量:255,128,0。 定点数:定点数是带有小数点的正数

7、或负数。定点数表示数的范围比较小。例如:3.141593,32.28,-5.6,10.0,0.0。定点数可以是单精度,也可以是双精度,也可是是货币类型。 浮点数:浮点数分为浮点单精度数和浮点双精度数。浮点数由尾数、指数符号和指数三部分组成,其中尾数本身也是一个浮点数。指数符号E或D的含义为乘以10的幂次。例如:3.612E+38,-9.223D-345,0.234E-36,-0.2E8。,(2)字符常量 由ASCII字符、汉字所构成的字符序列,在表达时必须用双引号括起来,例如:“ABC-123“,”234.456”,”河北科技大学”等。 (3)日期/时间常量 用以表达某一天或某一具体时间,使用

8、时必须用“#”号括起来。例如:#5/20/2000#,#2000-5-20 #,#5/21/2001 10:20 pm#等 (4)布尔常量 即逻辑常量,其取值只有两个:True 和False。True表示逻辑值“真“,False表示逻辑值“假“。,2.符号常量 符号常量是指用一个符号代表常量值,该符号在程序中表示恒定值。 符号常量有两种来源:用户定义的符号常量和内部的(或系统)定义的符号常量。 (1)用户定义的符号常量 用户可以自己定义符号常量,以便在一个程序中使用这个符号所代表的常量。 符号常量的定义格式为: Const 符号常量名 As 数据类型=表达式 例如: Const PI=3.14

9、159 Const R As Integer=100*5,例题2.1 使用上面定义的符号常量,计算半径(R)为100的圆周长,圆面积和球体体积。 设计一个窗体Form1,在其中添加命令按钮Command1,如图2-2所示:,图2-2 程序运行结果,在命令按钮的鼠标单击事件过程中添加如下代码: Private Sub Command1_Click() Const PI = 3.14159 Const R As Integer = 100 * 5 s = 2 * PI * R a = PI * R * R v = 4 / 3 * PI * R * R * R Print “s=“; s Print

10、 “a=“; a Print “v=“; v End Sub,(2)内部的(或系统)定义的符号常量 内部或系统定义的常量是VB和控件提供的。这些常量可与应用程序的对象、方法和属性一起使用,在代码中可以直接使用它们。可以在“对象浏览器”中查看内部常量。选择“视图”菜单中的“对象浏览器”,则打开“对象浏览器”窗口,。在下拉列表框中选择VB或VBA对象库,然后在“类”列表框中选择常量组,右侧的成员列表中即显示预定义的常量,窗口底端的文本区域中将显示该常量的功能。 此外还有一些系统定义的符号常量。例如:“vbCrLf”回车/换行符常数,它就是系统常量,等效于 Chr$(13)+Chr$(10)。,2.

11、2.2 变 量 变量:在程序执行期间其值是可变的量,变量是存储数据的地方,每个变量均有属于自己的名字和数据类型。变量的名字称为变量名。 变量的定义:变量定义时必须定义其变量名和数据类型。 定义变量的语句为: Dim|Static|Public|Private 变量名 As 数据类型 Dim|Static|Public|Private 可选四者之一,其含义是: Dim|Private:常用于过程或模块中定义本地变量(局部变量),当过 程执行完后这些本地变量将被释放. Static:常用于过程中定义静态变量,当过程执行完后其值不会被释放,将继续保留以供下次调用本过程时引用. Public:用于定义

12、公用变量(全局变量),该变量在整个程序中均有效,可被应用程序的所有过程引用和访问., 变量名的命名规则: 变量名不得以数字开头.如:12a,5SUM等都是错误的. 变量名的长度不得超过255个字符. 变量名不得与关键字同名.如:CONST,Public等均为非法变量名. 举例:Dim Str As String 定义str为变长字符型变量. Dim Password As String *6 定义为定长(6个字符)字符型变量. Static Numb As Long 定义Numb为长整型的静态变量.可演示: 在一个命令按钮的事件过程中添加如下代码: Private Sub Command1_C

13、lick() Static Numb As Long Numb = Numb + 1 Form1.Cls Form1.Print “已单击的次数为:“; Numb End Sub Private Sub Form_Click() End End Sub,下面给出运行的效果:,在过程内部定义的变量称为“过程级变量”,其作用域仅局 限于定义它的过程,因此,在不同的过程中可使用同名的过程级变量.定义的关键字一般用Dim或Static. 在窗体、模块的声明段声明的变量称为“模块级变量”,分为仅供本模块使用的模块级变量(用Private声明)和供所有模块使用的模块级变量. 变量的隐性声明:VB允许不进行

14、数据类型声明,而直接引用,则此变量默认的数据类型为Variant.,单击窗体 可退出!,变体型变量 1.Variant变量的定义 和其他基本数据类型一样,用户也可以定义变体类型的变量。Variant变量可以用普通数据类型变量的格式定义,也可以使用默认定义。例如: Dim SomeValue As Variant Dim SomeValue 都可以把SomeValue 定义为Variant 变量。如前所述,如果一个变量未经定义而直接使用,则该变量为variant 类型变量。 在Variant 变量中可以存放任何类型的数据,包括数值、文本字符串、日期和时间。向Variant变量赋值时不必进行任何转

15、换,Visual Basic 自动执行必要的转换。,(1)如果对Variant变量进行算术运算,则必须确保变量中存放的是某种形式的数值,包括整数、浮点数、定点数或可以解释为数值的字符串。如果Variant变量中的内容是XYZ90,则不能对其进行算术运算,因为XYZ90不是有效的数值。类似地,可以对“+10”或“-2E3”进行算术运算,但不能对“123EX”进行这种操作。 (2)运算符“+”既可以用于数值相加,又可以用于字符串连接(见2.3.1节)。当在两个Variant变量之间使用“+”运算时,其结果可能出乎意料,具体结果取决于两个变量中的内容。为了避免出现这种情况,在进行字符串连接时,最好使

16、用运算符“&”。,Variant 变量的使用十分灵活,因为在对它赋值时不必考虑类型转换的问题。但是,这种灵活性同时也带来一定的“隐患”,主要有以下两个方面:,2.Variant变量值的内部表示 Variant变量的内部表示与各种基本数据类型及时间/日期类型相对应,见表2-2。,符号常量,值,内部表示,V_EMPTY,0,Empty,V_NULL,1,Null,V_INTEGER,2,Integer,V_LONG,3,Long,V_SINGLE,4,Single,V_DOUBLE,5,Double,V_CURRENCY,6,Currency,V_DATE,7,Date/Time,V_STRING

17、,8,String,V_OLE,9,OLE Automation Object,V_ERROR,10,Error,V_BOOLEAN,11,Boolean,V_VARIANT,12,Variant(仅用于变体数组),V_OBJECT,13,Object(非OLE自动化对象),V_BYTE,17,Byte,V_ARRAY,8192,Array,3.Variant变量中的数值 在 Variant变量中存放数值时,Visual Basic以尽量紧凑的方式存储。如果是较小的整数,则以 Integer 类型存储,而较大的或带有小数部分的数值则用 Long 类型或Double类型存储。 如果需要用指定的类

18、型来存储 Variant变量的值,则必须用类型转换函数(见2.4.3节)转换。例如,用下面的语句可以把Variant 转换为Currency 类型的值。 PayperWeek=Ccur(Hours*Hourlypay) 这里的Ccur是类型转换函数。 如果Variant变量中存放的不是数值或可以解释为数值的内容(日期/时间或含有数字的字符串),则对其进行算术运算或函数运算时会发生错误。因此,应当在运算前对Variant 变量中的值进行判断,这可以通过 IsNumeric函数来实现。例如: If IsNumeric(X) Then X =X+5 上述语句的含义是:如果Variant变量X是一个数

19、值,则执行X=X+5。,4.Variant变量中的字符串 在对存放字符串的 Variant 变量进行操作时可能会产生歧义,当用“+”运算符对两个Variant变量进行运算时,如果两个变量都是数值,则执行数值相加运算;如果两个变量中存放的都是字符串,则执行字符串连接操作。如果一个变量中是数值而另一个变量中是字符串,则情况就复杂了。 Visual Basic先试着将字符串转换为数值,如果转换成功则进行相加运算,不成功则把另一个数值转换成字符串,然后对两个字符串进行连接,形成一个新的字符串。 为了避免出现上述情况,最好对数值运算使用“+”运算符,而对字符串连接使用“&”运算符。,5.Variant变

20、量中的空值(Empty) Variant变量在被赋值前为空值(内部表示为 Empty 或0),它不同于数值 ,不同于空字符串(“”),也不同于Null (见下)。通过Isempty 函数可以测试一个变量自建立以来是否被赋过值。例如: if IsEmpty(Z) Then Z=0 当一个Variant 变量为空值时,可以用在表达式中,Visual Basic 将根据具体情况将其解释为数值0或空字符串。如果将一个空值 Variant 变量赋给一个非空值 Variant 变量,则使后者变为空值。 一旦 Variant 变量被赋值,空值即不复存在。,6.Variant变量中的Null值 Variant

21、变量可以取一个特殊值Null,该值通常在数据库应用程序中用来指出未完成或漏掉的数据。 Null值具有以下一些特性: (1)漫延性。如果表达式中任一部分为Null,则整个表达式的值即为 Null。 (2)如果向函数传送 Null、值为Null的Variant 变量或结果为Null的表达式,则会使大多数函数返回Null值。 (3)Null值会在返回Variant变量的内部函数中漫延。 通过IsNull函数可以判断一个Variant变量的值是否为Null。 Null只适用于Variant变量。如果把Null值赋给其他非 Variant 变量,则会产生错误。对于Variant变量,如果不是显式地赋予N

22、ull值,该变量不会自动为Null。因此,如果程序中没有出现关键字Null,则对Null值的检测和处理将是多余的。 以上介绍了Variant变量的用法。总的来看,Variant变量的使用十分灵活,也有一些特殊的作用,但有可能产生歧义或带来麻烦,初学者应慎用。,2.3 Visual Basic中的运算符和表达式 2.3.1 运算符,1.算术运算符:VB中提供了8种数学运算符:,优先顺序,2.字符连接运算符:字符连接运算用于将两个字符型表达式连接生成一个新字符串.它有“+”和“&”两种运算符. “+”运算符:将两个字符串连接生成一个新字符串. 例如:a=“123 “ :b=“ abcd”:Prin

23、t a+b 将输出:123 abcd “&”运算符:将两个表达式强制性地按字符串类型连接生成一个新字符串,被连接的表达式可以是数值型或变体型的. 例如:a=1032:Print “NO.”&a 输出:NO.1032 3.关系运算符:用于比较两个表达式的大小,其运算结果为一逻辑值,Ture(真)或False(假).VB中提供了六种关系运算符,它们是: =(等于)、(不等于)、(大于)、=(大于或等于)、3,“VB”78,32-8=24 结果为: True True False True,4.逻辑运算符:逻辑运算的结果值也只有两个:Ture(真)或False(假).它有六种运算符,常用的仅三种:N

24、OT,AND和OR.,例:Not true 62 and 43 910 and 23,优先顺序,2.3.2 表达式,1.表达式:由常量、变量、各种运算符、函数和括号连接而成的有意义的式子就称为表达式。 Visual Basic有六种表达式:算术表达式、字符串表达式、关系表达式、布尔表达式、日期表达式和对象表达式。 Visual Basic是根据表达式的运算符和运算结果来确定表达式的类型的。 (1)算术表达式:算术表达式也称数值型表达式,由算术运算符、数值型常量、变量、函数和圆括号组成,其运算结果为一算术值。 例如:(8+(7*9-13)/5)/9)2 该表达式是由算术运算符组成的式子,其运算结

25、果仍为一算术值4。,算术表达式与数学中的表达式写法有所区别,在书写表达式时应当特别注意: 每个符号占1格,所有符号都必须一个一个并排写在同一横线上,不能在右上角或右下角写方次或下标。例如:23要写成23,x1+x2要写成x1+x2。 原来在数学表达式中省略的内容必须重新写上。例如:2x要写成2*x。 所有括号都用小括号(),括号必须配对。例如:3x+2(y+z)必须写成3*(x+2*(y+z)。 要把数学表达式中的有些符号,改成Visual Basic中可以表示的符号。例如:要把2r改成2*pi*r。,(2)字符串表达式:一个字符串表达式由字符串常量、字符串变量、字符串函数和字符串运算符组成。

26、它可以是一个简单的字符串常量,也可以是若干个字符串常量或字符串变量的组合。 例如: “我们爱中国” & “的山山水水,” & “何时才能畅游一番?” 该表达式是由字符串运算符&连接起来的式子,其运算结果仍为一字符串”我们爱中国的山山水水,何时才能畅游一番? (3)关系表达式:关系型表达式由关系运算符、数值表达式、字符串表达式,也可以是作为表达式特例的常量、变量、函数组成,但关系运算符两侧的数据类型必须完全一致。关系运算的结果为Boolean类型的值,只有True(真)或False(假)两个可能。关系型表达式的格式为: 例如: 2*3+6=(7+2)/3,(4)布尔表达式:布尔表达式由关系表达式

27、、布尔运算符、布尔常量、布尔变量和函数组成。一般格式为: 例如:28 该表达式是由布尔运算符连接起来的关系表达式,先进行两侧的关系运算后,再进行and 运算,其结果仍为布尔型数据,即False。 (5)日期表达式:日期型表达式由算术运算符“+、-”、算术表达式、日期型常量、内存变量和函数组成。日期型数据是一种特殊的数值型数据,它们之间只能进行加“+”、减“-”运算。有下面三种情况:,两个日期型数据可以相减,结果是一个数值型数据(两个日期相差的天数)。例如: #12/19/1999#11/16/1999# 结果为数值型数据:33 一个表示天数的数值型数据可加到日期型数据中,其结果仍然为一日期型数

28、据(向后推算日期)。例如: #11/16/1999#+33 结果为日期型数据:#99-12-19# 一个表示天数的数值型数据可从日期型数据中减掉它,其结果仍然为一日期型数据(向前推算日期)。例如: #12/19/1999# - 33 结果为日期型数据:#99-11-16# (6)对象表达式:对象运算实际就是对象属性的运算,根据对象属性所具有的数据类型,可以进行算术、字符、逻辑等运算。 例如:Text1.Text & ”输入一个值” 该对象表达式是对对象的Text 属性进行字符运算。,2.表达式中各种运算的优先顺序是: 括号函数算术运算符字符连接运算符 关系运算符逻辑运算符 例:当A=1:B=2

29、:C=3:DS=“A”:CS=“a”时,写出以下语句的输出结果: ? (A+B=C OR DS=CS) AND DS+CS“AA“ 结果:False ? A+B=C OR DS=CS AND DS+CS“AA“ 结果:True,2.4 Visual Basic的内部函数,1.数学函数: 三角函数:Sin(x)、Cos(x)和Tan(x):正弦、余弦和正切,其中x必须用弧度作单位.Atn(x):其中x为数值,结果值为角的弧度单位. 绝对值函数: Abs(x):给出数值x的绝对值.例如:Abs(-3.14) 其值为:3.14 符号函数: Sgn(x):给出数值x的符号值. 当x0时,函数值为:1;

30、 平方根函数:Sqr(x)返回x的算术平方根.例如:Sqr(6.8)返回:2.60768 指数与对数函数: Exp(x):返回以e为底的指数函数ex的值.e=2.71828 Log(x):返回自然对数函数lnx的值.,2.字符串函数:设c=“123456789”,c1=“ABCDEFG”,c2=“ abc ”,3.常用转换函数:设c=“12.3AbCd”,4.日期/时间函数: 在VB中提供了一个变体型的内部变量Now,该变量保存有系统的当前日期和时间.为了获得当前时间,系统还提供了内部变量Timer. 例如:?Now,timer 00-2-6 13:05:49 47149.63 (代表从午夜起

31、已过的秒数),设:d=#2/21/2000#,注:可以用Date/Time设置系统日期/时间,格式为: Date=#月/日/年# 例如:Date=#3/25/2000# Time=#时:分:秒 AM|PM# 例如:Time=#8:30:20 AM#,5.随机数函数:Rnd(n),产生一个区间(0,1)内的随机浮点数. 随机数函数和语句:,当n0时,每次产生的随机数都不同(要先初始化随机数发生器); 当n=0时,产生的随机数与上次的相同; 当n0时,每次产生的随机数都相同. 举例: randomize(timer) ?rnd(1),rnd(0),rnd(-1),rnd(0) .1677275 .

32、1677275 .224007 .224007 ?rnd(1),rnd(-1),rnd(0) 3.584582E-02 .224007 .224007 其中Randomize为随机数发生器初始化语句,用Timer值作种子数. 产生随机整数的技巧: Int(rnd*整数n):产生0,1,n-1中的一个随机整数. Int(rnd*整数n)+1:产生1,2,n中的一个随机整数. Int(Rnd*90)+10:产生一个两位的随机整数. Chr(Int(Rnd*26)+65):随机产生一个大写英文字母. Chr(Int(Rnd*26)+97):随机产生一个小写英文字母.,6.格式输出函数,用格式输出函数

33、Format()可以使数值型、日期型和字符型的数据按指定的格式输出,该函数的使用格式如下: Format(,) 其中: :可以是常量或表达式。 :可以是串常量或串变量,一般由专用的格式说明符组成,常用的格式说明符见下表:,说明: #表示数字占位符,格式串内”#”号的个数决定了显示串的长度,如果要显示的数据位数小于格式串的长度,数据显示时左对齐,多余的位置不补0;如果要显示的数据位数大于格式串的长度,数据将原样显示。 0也表示数字占位符,功能和#号类似,只是在要显示的数据位数小于格式串的长度时,多余的位置将补0。 小数点占位符,它必须和#或0结合使用,用于指定小数点的位置,多余的小数位将做四舍五

34、入处理。 %百分比号占位符,通常放在格式串的末尾,用来输出百分数。 +、-正、负号占位符应放在格式串的开头,为输出的数据添加正负号。 E+ E-指数符号占位符,用于输出指数形式的数据。 字符占位符,格式串内”号的个数决定了显示串的长度,如果要显示的字符串长度小于格式串的长度,字符串显示时右对齐,多余的位置不显示;如果要显示的字符串长度大于格式串的长度,字符串将原样显示。,2.5 语句和程序 VB和任何程序设计语言一样,编写程序代码也有一定的规则: 1.VB代码中不区分大小写字母,自动将关键字的首字母转换成大写. 2.程序的同一行上可以写多个语句,语句间用冒号“:”分隔.一行最多可有255个字符. 3.在VB中一般是一行写一个语句,若单行语句太长,该单行语句也可以分若干行书写,但在行末须加入续行符“ _”(一个空格紧跟一个下划线). 4.程序中可使用注释,注释以Rem开头或用撇号“”引导注释内容,用撇号“”引导的注释内容,可直接出现在语句的后面. 5.一行最多为255个字符,一条语句最多含1023个字符。 6.为了便于阅读,程序段可采用“缩进”或“凸出”处理.,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1