VisualBasic语法基础.ppt

上传人:牧羊曲112 文档编号:5452409 上传时间:2023-07-08 格式:PPT 页数:92 大小:593.50KB
返回 下载 相关 举报
VisualBasic语法基础.ppt_第1页
第1页 / 共92页
VisualBasic语法基础.ppt_第2页
第2页 / 共92页
VisualBasic语法基础.ppt_第3页
第3页 / 共92页
VisualBasic语法基础.ppt_第4页
第4页 / 共92页
VisualBasic语法基础.ppt_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《VisualBasic语法基础.ppt》由会员分享,可在线阅读,更多相关《VisualBasic语法基础.ppt(92页珍藏版)》请在三一办公上搜索。

1、Visual Basic语法基础,本章的学习要点基本数据类型和用户定义的数据类型常量和变量常用内部函数算术运算符、关系运算符与逻辑运算符以及表达式的运算优先级,数据是计算机处理的对象,也是运算产生的结果。为了便于处理各式各样的数据,高级语言会将数据进行类型划分,即根据数据的用途不同将其定义为不同的数据类型。定义数据的类型后,既可以确定数据占用的存储空间,又可以确定数据的处理范围。Visual Basic 6.0中将数据类型分为基本数据类型和用户自定义数据类型。,数据类型,数据类型,一、基本数据类型 基本数据类型是系统定义好的标准数据类型,可以直接使用。基本数据类型可分为6类:数值型、日期型、逻

2、辑型、字符型、对象型和变体型,其中数值型数据又包括:整型、长整型、单精度型、双精度型、货币型和字节型。,基本数据类型,数值型,基本数据类型,整数,长整数,整型,单精度型,双精度型,实型,货币型,字节型,数值型,基本数据类型,数值型整型 是不带小数点的数据,和数学中整数的含义类似,只是整型数据取值范围在-3276832767之间,存放在计算机中用2个字节(即16位)来表示。类型符为%,即在数据尾加上%就表示此数据为整型数据。长整型 和整型数据类似,都表示整数,但所能表示的数据范围比整型大,取值范围为-21474836482147483647,长整型数据在计算机中用4个字节表示。类型符为&。,例如

3、:2%表示2以整型数据存储。,例如:5&表示5为长整型数据存储。,基本数据类型,数值型单精度型 带小数点的实数,在计算机中用4个字节来存储,有效数字为7位,通常单精度型数据以指数形式表示,指数部分用E或e表示。双精度型 带小数点的实数,有效数字为15或16位,在计算机内用8个字节存储,比单精度型数据精度更高。双精度型数据也以指数形式表示,指数部分用D或d表示。,例如:3.6e+5表示数学中的3.6105,7.45E-6表示7.4510-6,例如:55.87d+5表示数学中的55.87105,7.45D-6表示7.4510-6。,基本数据类型,数值型货币型 是为了计算货币而设置的定点实数或整数,

4、它的精度要求比较高,在计算机中用8个字节存储。类型符为。字节型 是范围在0255之间的无符号的整数,在计算机中仅用一个字节表示,因此称为字节型数据。,例如:23.5表示23.5以货币型数据存储。,基本数据类型,日期型 表示在公元100年1月1日9999年12月31日之间的日期和时间数据,日期型数据用#括起来标识。逻辑型 逻辑型数据也称为布尔型数据,用来表示逻辑判断的结果。它只有真(True)和假(False)两种取值情况。,例如:#7/25/2006#表示2006年7月25日。,数值型数据,逻辑型数据,数据转换,数值型数据,逻辑型数据,0,False,非0,True,0,False,-1,Tr

5、ue,基本数据类型,字符型 用双引号括起来的一串字符,字符型数据可以有两种:定长字符串和变长字符串。定义变长字符串时,其后加上“*”和数字,表示该字符串的长度为该数字表示的字节数,例:Dim a As String*6,表示定义变量a是一个含6个字符的定长字符串数据。对象型 对象型数据主要用于定义应用程序中定义的对象的类型。,基本数据类型,变体型 变体型数据可以表示任何一种数据类型,其大小由所赋予的数据类型决定。说明:(1)不同类型的数据,所占的存储空间不一样。(2)数据的类型可在数据之后加上一个类型符来表示,例如,413&,86!,104.67#等。,例如:dim a As Variant

6、定义a为变体型数据a=123 a为整形数据a=visual basic a为字符型数据,常量和变量,在Visual Basic中,标识符是程序员为变量、常量、数据类型、过程、函数、类等定义的名字。标识符的命名规则(1)标识符必须以字母开头,可以由字母、数字或下划线组成。(2)标识符的长度不能超过255个字符,控件、窗体、类和模块的名字不能超过40个字符。(3)自定义的标识符不能和VB中的运算符、语句、函数和过程名等关键字同名,同时也不能与系统已有的方法和属性同名。(4)保证标识符在同一范围内是惟一的。,常量和变量,常量 常量也称为常数。Visual Basic中,用常量表示在整个程序中事先设置

7、的、不会改变数值的数据。常量分为:常量的数据类型可以是任何一种数据类型。,直接常量,符号常量,常量和变量,常量直接常量 直接常量是在程序中直接给出的数值、字符、日期等具体的数据值。按照数据类型分类,可以将直接常量分为以下几类:,字节型、整型和长整型常量,单精度和双精度浮点型常量,逻辑型常量,字符型常量,直接常量,日期型常量,字符型常量的引号必须是西文双引号,常量和变量,常量符号常量 符号常量是用一个标识符代表一个直接常量,用这个标识符作为常量名。用户自定义的符号常量,定义格式:,系统内部定义常量,用户自定义的符号常量,符号常量,Const 符号常量名 As 数据类型=常量表达式,Const D

8、a=#1/1/68#Const M As Integer=45,D=tea as String,常量和变量,变量 变量是在程序执行过程中,其值能够改变的量。变量名的命名遵循标识符的命名规则。在变量使用之前需要对变量所描述数据的数据类型进行声明。在变量使用之前提前声明变量称为显式声明;没提前声明而直接使用则称之为隐式声明。显式声明 Dim|Public|Private|Static 变量名1 As 类型1,变量名2 As 类型2,Dim a As IntegerDim c,常量和变量,变量隐性声明如果没有声明就直接使用,Visual Basic会自动根据数据值对其规定数据类型。后缀法声明在Vis

9、ual Basic中,对有些数据类型的变量,允许直接在变量名后面加上数据类型符(即后缀),指定该变量的数据类型。,X=35 X为Integer类型Y=Visual Basic 6.0编程 Y为String类型,xa%变量xa是整型数据 xb 变量xb是货币型数据 xc$变量xc是字符型数据,常量和变量,强制显式声明变量语句 Visual Basic虽然不要求必须对变量进行声明,但是不声明变量经常会出现很多错误,所以一般编程者希望在运行程序之前由系统编译器帮助检查程序中是否有未显式声明的变量,如果希望这样做,可以在通用声明部分用强制显式声明语句。格式:这个语句所实现的功能也可以通过Visual

10、Basic系统的选项功能来设置,打开“工具”“选项”菜单项,在“编辑器”选项卡下,选中“要求变量声明”,同样可以达到这样的功能。,Option Explicit,选择,变量在一个时刻只能存放一个值,当数据不多时,使用简单变量可解决问题,但数据庞大时用简单变量效率太低。例如:(1)输入100个数,按从大到小或者从小到大的顺序输出。(2)某学校有近万名学生,做一个学生信息表。,数组,数组,1数组的概述 数组是具有相同数据类型的数据元素的集合。它由同一个名字不同下标的同类型变量组成。数组中的变量称为数组元素,数组中的每个元素都有一个唯一的下标(索引)来标识自己。数组元素的个数称为数组的长度(大小)数

11、组的特点:1)数组的命名规则遵循标识符命名规则;2)数组中的元素是有序排列的;3)数组的元素个数是有限的;4)数组的数据类型就是该数组的下标变量的数据类型;5)数组元素的存储不是松散状态,而是占据一片连续区域。,使用数组和简单变量主要存在如下区别:(1)输入的简单变量越多,程序就越长,程序本身占用的内存空间就越大。(2)在一个程序中使用的简单变量个数有限,对大批量数据,简单变量就不能表示了。(3)简单变量的存储位置呈松散状态,数组却占据着一片连续的存储区域。(4)在程序结构上,简单变量不适合使用循环的办法来解决,增加了代码的复杂度。,数组,2数组的定义 1)数组的声明 一个数组包括数组名称、数

12、组维数、数组大小、数组类型以及作用范围。在使用数组时要将以上内容告诉计算机,以便开辟足够的内存单元来存储数据,这个过程叫做声明数组。声明数组的语法格式:Public|Private|Dim 数组名(维数定义)As 数据类型.说明:(1)数组必须“先声明,后使用”;(2)一条声明语句可以同时声明多个不同维数的数组,但数组间不能同名。,数组,2)数组的上、下界 数组有上界和下界,数组的元素在上下界内连续递增。语法格式:下界1 To 上界1,下界2 To上界2.其中:下界和上界分别表示该维的最小和最大下标值,通过关键字To连接起来确定下标的取值范围。默认下界为0,下界可以省略,若省略下界说明下标的取

13、值范围是从0到上界。例如:声明数组Sums Dim Sums(9)As Double 该数组包含10个元素,a(0)a(9),数组,3)数组的维数 下标变量中下标的个数决定数组的维数,各维下标之间用逗号“,”隔开。一个下标的下标变量构成一维数组,一维数组表示线性顺序;两个下标的下标变量构成二维数组,二维数组用于表示平面;三个下标的下标变量构成三维数组,三维数组可以表示立体空间。有多少个下标的下标变量就构成多少维的数组,通常又把二维以上的数组称为多维数组。,数组,例如:Orange(1 to 5)表示一维数组共有5个元素。Apple(1 to 3,2 to 5)表示二维数组,大小为34,元素总数

14、为二个维数的乘积12,该数组在数学上可表示为3行4列的矩阵。Pear(1 to 2,1 to 3,2 to 4)表示三维数组,大小为233,元素总数为三个维数的乘积18,该数组在数学上可以用立体图形来表示。注意:在增加数组的维数时,数组所占的存储空间会大幅度增加,由于对每一个下标变量都分配空间,所以声明数组的大小要合适。,数组,4)数组的类型“As 数据类型”表明数组元素的类型。可以声明任何基本数据类型的数组:Byte、Boolean、Long、Currency、Single、Double、Date、String(变长字符串)、String*length(定长字符串)、Object(对象型)、

15、Variant(变体型)、用户定义类型。,数组,5)下标变量的使用说明下标变量由数组名后跟小括号“()”括起来的下标组成。且下标必须放在小括号内。例如:a(3)不能写成 a3,否则被当作简单变量处理。下标可以是常量、数值变量、算术表达式。例如:a(6),b(2*m+1),c(i)。若下标中若含有变量,使用前该变量应提前赋值。例如:当i=1时:a(i)表示a(1),a(i+2)表示a(3);当i=b(1)=1时:a(b(1)表示a(1)。下标变量的类型就是数组的类型,所有下标变量都具有一样的类型。下标变量像简单变量一样,一个下标变量代表相应数组的一个组成元素。,数组的概念,静态数组与动态数组,静

16、态数组:在程序执行前,系统进行编译时,根据数组说明语句开辟的固定的存储空间,直到程序执行完毕,在整个过程中存储空间大小不再改变,这种数组就叫静态数组。动态数组:在执行过程中给数组开辟存储空间后,还可以用Redim(或Dim)语句再次分配存储空间,这种数组就叫动态数组。在程序未执行时,动态数组不占用内存;而静态数组,编译程序将为它的数据段预留空间。,静态数组,1静态数组的声明数组声明的语法格式:Public|Private|Dim 数组名(下标)As 类型 下标的格式:下界1 To 上界1,下界2 To 上界2)例如:Dim A(2)As Double 一维数组A,共有三个双精度元素,分别为A(

17、0)、A(1)、A(2)。,2数组下标设置语句 下界默认开始值为0。但在使用时,若希望从别的值开始,这就需要用“Option Base”语句设置数组下标的起始值。Option Base语句的语法格式:Option Base n 例如:Option Base 1 Dim A(5)As String 等价于Dim A(1 To 5)As String,静态数组,注意:1)在数组声明时,下标表示数组的维数大小,但在使用中,只表示数组中的一个元素。即:Dim D(3)As Double 声明过程中 D(3)表示D是一个一维数组,有4个元素,分别为D(0)、D(1)、D(2)、D(3)。声明完成后再出现

18、的D(3),则表示数组D中的一个数组元素。2)Option Base n语句必须在标准模块中或窗体通用声明处使用。,静态数组,动态数组,与静态数组对应的是动态数组,即数组元素个数不定的数组。若事先不知道数组的大小,并希望在运行时可以根据需要改变数组的大小(或大小不断改变),这时就要使用动态数组。动态数组与静态数组不同的是:动态数组灵活、经济、可伸缩,可在任何时候改变数组的大小,从而不会浪费内存。1动态数组的声明 数组声明的语法格式:Public|Private|Dim 数组名()As 类型,2创建动态数组的步骤(1)声明一个空维数表的数组(不必说明维数和界限)。例如:Dim X()As Int

19、eger。(2)在需要指定数组大小时,再使用ReDim语句分配数组中实际元素个数。例如:ReDim X(50)。,动态数组,ReDim语法格式:ReDim Preserve 数组名(下标)As 类型 其中:(1)ReDim语句中的 As 类型可以省略,若不省略则必须要和数组声明中的类型一致。(2)使用ReDim相当于数组被重新初始化,原来的数据将全部丢失。(3)Preserve表示再次使用ReDim语句改变数组大小时保留数组中原来的数据,但Preserve只能改变多维数组中最后一维的上界,否则运行程序报错。(4)ReDim 语句用来更改某个已声明维数或大小的数组。如果有一个较大的数组,并且不再

20、需要它的某些元素,ReDim 可通过减小数组大小来释放内存。另一方面,如果代码确定某个数组需要更多元素,也可使用ReDim语句来实现。,动态数组,动态数组,如果数组A已经有一些值,比如说dim 数组A()as longRedim 数组(1 to 2)数组A(1)=10数组A(2)=20而又想再添加一项Redim 数组(1 to 3)这里没有使用Preserve,所以重定义之后1,2下标里面被清零数组A(3)=30最后其实得到的是数组A(1)=0数组A(2)=0数组A(3)=30,动态数组,但是dim 数组A()as longRedim 数组A(1 to 2)数组A(1)=10数组A(2)=20

21、而又想再添加一项Redim Preserve数组A(1 to 3)这里使用Preserve,所以重定义之后1,2下标里面被保留数组A(3)=30得到的是数组A(1)=10数组A(2)=20数组A(3)=30注意,此函数只能修改下标,而不能修改上标,如果是多维的也是一样,只能改下标,统计输入的任意个数之和。Private Sub Command1_Click()Dim N As Integer,A()As Single,i As Integer,s As Single N=InputBox(输入几个数?)ReDim A(1 To N)For i=1 To N A(i)=InputBox(输入第+

22、Str(i)+个数)Print 第&i&个数=&A(i)s=s+A(i)Next i Print N&个数之和为&sEnd Sub,动态数组,数组的基本操作,数组是一个整体,但在具体操作时是针对数组元素进行的。基本操作包含:(P26)数组元素赋值 清理元素,3.数组输出 数组内容的输出使用一重循环实现。例如:Private Sub Form_Click()Dim A(1 To 10)As Integer,i As Integer For i=1 To 10 Print A(i)Next i End Sub,一维数组元素的输入与输出,运算符和表达式,运算是对数据进行加工的过程,描述不同运算的符号

23、称为运算符,参与运算的数据称为操作数。在VB中,运算符有算术运算符、字符串运算符、关系运算符、逻辑运算符。表达式用来表示某个求值规则,可以由关键字、运算符、常量、变量、函数、对象和配对的圆括号以合适的形式组合而成。每个表达式都有一个惟一的值作为表达式的值。根据运算符的不同,可以将表达式分为算术表达式、字符串表达式、关系表达式、逻辑表达式。,算术运算符及其表达式,算术运算符是专用来进行数学计算的运算符。Visual Basic提供的算术运算符共有7个,除负号为单目运算符外,其余的都为双目运算符,即需要两个操作数完成的运算。,算术运算符及其表达式,算术表达式是由算术运算符连接操作数构成的表达式,其

24、运算结果是数值。由于一个表达式中可能出现多种算术运算符,所以计算的时候要按照优先级来进行运算,优先级越高的越先计算。圆括号可以改变优先级,括号内的优先级最高。算术运算符的操作数可以是数值型、数字字符型或逻辑型。计算时数字字符型和逻辑型数据自动转换为数值型后再参与运算。,逻辑型,数字字符型,数值型,运算,注意,+、-、*、/的运算规则和数学里面的运算规则一样,计算时按照“先乘除,后加减”的规则计算。整除运算的运算规则是先计算两个整数的商,再丢弃商值的小数部分。若参加运算的除数或被除数不是整数,则按照四舍五入的方法先进行取整,然后再按照整除运算的规则计算结果。例如83的结果是2,5.83的结果是2

25、。,注意,a MOD b的值为a整除b后的余数,如果参加计算的数据是小数,先对它们进行四舍五入取整,然后再完成求模运算。如果参加运算的有负数,用绝对值参加取模运算,运算结果的符号和a的符号一致。例如:5.6 MOD 3的结果是0,-5 MOD 3的结果是-2。“+”、“-”也可以对日期型数据进行计算,用来计算日期之间的关系,如#12/19/1999#-#11/16/1999#的结果为33,表示1999年12月19日到1999年11月16日之间有33天。#11/16/1999#+33的结果为#12/19/1999#,表示从1999年11月16日后推33天是1999年12月19日。,算术运算符及其

26、表达式,例1:若有如下程序,分别声明变量a,b分别赋值为2和3,在窗体的单击事件中测试各种算术运算的结果。Private Sub Form_Click()a=2:b=3 Print a+b,a-b Print a*b,a Mod b Print a/b,a b Print a bEnd Sub,两行语句一行书写,编写的窗体单击事件过程代码如下:Private Sub Form_Click()Dim x As Integer,a As Integer Dim b As Integer,c As Integer x=36 a=x 10 求十位数 b=x Mod 10 求个位数 c=b*10+a 生

27、成新的数 Print 处理后的数:;c End Sub,例2:给定一个两位正整数(如36),交换个位数和十位数的位置,并将处理后的结果显示在窗体上。,运行程序后单击窗体,输出结果是:处理后的数:63,算术运算符及其表达式,将数学公式转换为VB表达式,程序中写为:Sqr(a+b)*sin(30*3.14/180)/(x12+1)*(y3-2),字符串运算符及其表达式,字符串运算符的作用是实现字符串的连接,也称连接运算符,字符串运算符有&和+。当参加运算的操作数都是字符型数据时,两运算符的作用和结果相同,都是将两个字符串连接起来,组成一个新的字符串。当连接运算的操作数并非都为字符串的时候,两个连接

28、运算符的结果有所差别。&连接符在任何时候都做字符串连接操作,如果操作数有非字符串数据,先将其转换为对应的字符串数据,再进行连接操作。,xyz+123 结果为新字符串xyz123xyz&123 结果为新字符串xyz123,123&xyz 结果为新字符串123xyz123&456 结果为新字符串123456123&xyz 结果为新字符串123xyz,字符串运算符及其表达式,当+连接符作为运算符时,若其中一个字符串为数字字符型数据,另一个为数值型数据时,先将数字字符型变为数值型,再实现算术加法运算;若两个都为数值型数据,则直接按照算术运算符实现加法运算;若其中一个为数值型数据,另外一个为非数字字符型

29、数据,系统则会提示出错。,123+45 结果为数据168123+45 结果为数据168Visual Basic 编程+45 程序会提示出错,为了避免“+”做连接运算时与加法运算混淆,一般都使用&作为连接符号使用,但使用“&”连接符时必须在“&”的前面和后面各增加一个空格避免出错。这是因为符号“&”的另一个含义是长整型的类型符,如果变量与符号&接在一起,VB系统先把它作为类型定义符处理,因而会出现语法错误。,例如:100+123 结果为 223100+123 结果为 100123Abc+123 出错100“&123 结果为 100123 100&123 结果为 100123Abc&123 结果为

30、 Abc123Abc&123 结果为 Abc123,想一想,字符串运算符及其表达式,例3 编写一个简单的加法程序,用两个文本框存放被加数和加数,另外一个文本框存放结果,单击“计算”按钮将计算结果显示在结果框中,单击“算式”按钮将整个算式完整显示在算式的标签中。,字符串运算符及其表达式,Private Sub Command1_Click()Dim s1 As Integer,s2 As Integer,s3 As Integers1=Val(Text1.Text)s2=Val(Text2.Text)s3=s1+s2Text3.Text=s3End Sub,Private Sub Command

31、2_Click()Label3.Caption=Label3.Caption&Text1.Text&+&_ Text2.Text&=&Text3.TextEnd Sub,字符串运算符及其表达式,练习,Private sub form_click()a=“西安”:b=“工业大学”print a&b print a+b c=123 print c&4,c&“4”print c+4,c+”4”d=“123”print d&4,d&“4”print d+4,d+”4”End sub,想一想,关系运算符及其表达式,关系运算符也称为比较运算符,用来比较两个操作数之间的大小关系,操作数可以是数值型数据、字符

32、(串)型数据、日期型数据等,但不能是逻辑型数据,若为逻辑型数据则需要根据逻辑型数据向数值型数据转换的规则转换后再进行运算。关系运算的结果是逻辑值,即运算的结果只有True和False两种。,数值型数据,字符型数据,日期型数据,逻辑型数据,数值型数据,运算,关系运算符及其表达式,关系运算符及其表达式,数值型数据在进行比较的时候,直接比较其值大小。例如:53的结果为True。日期型数据比较大小时,VB会把日期型数据看成一个yyyymmdd的8位整数,按照数值比较其大小。例如:#1999-5-6#2003-6-13#的结果为False。字符型数据比较大小时,若为单个字符,比较其ASCII码值;若为字

33、符串时,依次从左边第一个字符开始比较,直到发现一个不相同的为止,由第一个不相同的字符的大小的关系代表字符串的大小,若字符串长度不相等,短字符串尾部可以补空格比较。常见的字符值由对应的ASCII码表中的顺序决定常见字符ASCII码大小关系如下:例如:sabaab的结果为True;abc=ABC的结果为False。,空格019ABYZabyz任何汉字,关系运算的规则如下:(1)当两个操作数均为数值型,按数值大小比较。(2)字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。例:ABCDE ABRA 结果为 False,关系运算符,10=3 20,关系运算符及其表达式,逻

34、辑值不能参加运算,如果比较中出现逻辑值,先将逻辑值转换为对应的数值型数据再进行比较。例如:10=3 20的结果先计算10=3的结果为False,然后将False转换为数值0,将结果再和20比较,结果为True。,False,0,True,关系运算符及其表达式,数值型数据与数字字符型数据比较时,将字符型数据转换为对应的数值型数据进行计算,如:29189,按数值比较,结果为False;数值型与不能转换成数值型的字符型比较,如:77sdcd,不能比较,系统将提示出错。关系运算没有优先级,也可以认为具有相同的优先级,所以计算的时候按照从左到右的顺序进行计算。,例:,Private sub form_c

35、lick()print 32 and 32 and 33 or 23 Print 10=3 20End sub,想一想,练习,Private sub form_click()a=1:b=2:c=3 Print a+5=b*3 Print Visual Basic bEnd sub,想一想,逻辑运算符及其表达式,逻辑运算符亦称为布尔运算符,用来对逻辑型数据进行各种逻辑运算,它的操作数经常是关系表达式或逻辑型数据,其结果也仍然是逻辑型数据,即True或False。,逻辑运算符及其表达式,逻辑运算的结果比较复杂,运算规则如表下:,逻辑运算符及其表达式,计算逻辑表达式时,如果存在关系表达式,关系表达式

36、的优先级高,先运算关系表达式,再运算逻辑表达式,如,45 And 5=10 And X20。,例:,Private sub form_click()print 32 and 32 and 33 or 23 Print 10=3 20End sub,想一想,运算符优先级,每种同类型的运算符都有内部的运算符优先级,一个表达式中可以包括不同的运算符和函数,当各种算符出现在同一个表达式中时,也应该按照不同类型运算符的优先级进行运算。各种运算符的优先级如下:数值运算符字符串运算符关系运算符逻辑运算符可以用括号改变优先顺序,使得括号内的运算优先级高于括号外的运算。对于多重括号,总是由内到外强制表达式的某些

37、部分优先运行。括号内的运算总是最优先计算。,Visual Basic表达式的书写规则,(1)每个符号占一个位置,必须在同一基准并排书写所有符号都不能出现在上标、下标,如:23应该写成23,x1要写成x1。(2)数学表达式中省略的乘号必须要写上,如数学表达式2x的VB算术表达式是2*x,否则含义就不同了。(3)所有的括号都应该用(),括号必须配对,不能出现 或者。(4)数学中的有些符号不能出现在VB中,如、等。,常用内部函数,调用VB提供的内部函数的方法有两种:第一种方法:函数名(参数列表)第二种方法:函数名 说明:(1)使用库函数要注意参数的个数及其参数的数据类型。(2)要注意函数的定义域(自

38、变量或参数的取值范围)。例如:sqr(x)要求x=0。(3)注意函数的值域。例如:exp(23773)的值就超出实数在计算机中表示的范围。,数学函数,在三角函数中的自变量是以弧度为单位。如:sin300将30度转换为弧度sin(3.14159/180*30),数学函数,Abs(1)正数1Abs(-5)负数5,Exp(1)e1(e=2.718281828)Exp(-5)e-5(6.73794699908547E-03),数学函数,符号函数Sgn返回值有三种:Sgn(-3)=-1(参数为负数)Sgn(0)=0 Sgn(3)=1(参数为正数),只有非负数才有平方根(可以是实数)Sqr(9)Sqr(9

39、.56),数学函数,Fix(10.4)10 Fix(-5.6)-5,Int(50.6)50 Int(-50.6)-51,当x0时就直接舍去小数若x0则舍去小数位后再减1,字符串函数,Ltrim(abcd)abcd Rtrim(abcd)abcdTrim(abcd)abcd,说明:如果返回是字符型,则函数后有“$”字符。,字符串函数,Left$(“World”,2)结果:Right$(“World”,2)结果:Mid$(“World”,2,3)结果:,Wo,Wo,ld,“”,ld,“”,orl,orl,“”,字符串函数,Len(“name”)结果:4,String(3,s)的结果为:sssStr

40、ing(3,sab)的结果同样为:sssSpace(6)的结果为:,字符串函数,Instr(4,”xxpxxpXp”,”p”),UCase(How Are You)HOW ARE YOU。LCase(How Are You)how are you。,从第4位开始,x,p,第6位,结果为6,练习,s1=ABCDEFGHs2=Left(s1,2)s3=Right(s1,3)s4=Mid(s1,3,2)Print s2,s3,s4s1=Visual Basici=Len(s1)Print InStr(ABCDEF,BC)Print InStr(2,ABCDEF,BC)Print InStr(4,AB

41、CDEF,BC)Str1=Hellos1=UCase(Str1)s2=LCase(Str1)Str1=Space(2)Print s1,s2,Str1,10,想一想,练习,100 mod 3 1003+20“ABC”abc”Date Int(-45.235)Fix(45.235)Len(“how are you!”)Left(“visual basic”,6),153False当前系统日期-464512visual,日期和时间函数,说明:(1)日期和时间函数使用相对简单,若无参数,则返回系统的时间或日期,若有参数,确定其参数均为日期型的数据,即可操作。(2)函数的参数可为任何日期型数据,包括函

42、数的结果。例如:Year(Now)返回当前日期的年份。Day(#7/25/2006#)结果为25。(3)WeekDay函数的结果是将周日认为是一个星期的开始,即,周日对应的返回值为1,依次类推。,日期和时间函数,Private Sub Form_Click()x=#1/1/2008#a=x-Date b=Weekday(x)c=Year(Date)d=Month(Date)e=Hour(Time)f=Minute(Time)Print 现在距离2008年元旦还有:;a;天 Print“2008年元旦是:该星期的第;天 Print 本月份是:;c;年;d;月 Print 现在是:;e;时;f;分

43、End Sub,该星期的第3天,日期/时间函数示例,转换函数ASCII码转换函数,Asc(“China”)结果:67(大写字母C的ASC码值为67)Chr(100)结果:“d”(小写字母d的ASC码值为100),转换函数直接转换函数,Str(323.1)结果:“323.1”正数无符号,转换成空格Str(-323.1)结果:“-323.1”负数的符号直接转换,无空格N1=Val(“1.234”)N1的值是 1.234数值转换N2=Val(“1.34ASD45”)N2的值是 1.34字母后忽略N3=Val(-12ASD)N3的值是-12字母后忽略N4=Val(“ASD123”)N4的值是0字母开头

44、为0N5=Val(“&HFFFF”)N4的值是-1可以识别八、十六进制N6=Val(“1.2e2”)N6的值为 120单精度型数据,随机数函数,直接使用Rnd函数每次得到的序列都是一样的,在使用中有时希望每次都得到不同的序列,那么就可以使用Randomize随机数种子生成器语句,使用在Rnd函数之前,这样可以使得Rnd函数产生的随机数为不同的序列。,随机数函数,在实际使用中可能需要的随机数要扩大范围或者限制在特定范围内,若要得到050间(不包括50)的随机数,直接可以用得到的随机数乘以50,扩大随机数范围,即,Rnd*50。,若要产生1-100的随机整数:Int(Rnd*100)+1Int(4

45、*Rnd+1)可以产生14之间(含1和4)的随机整数,Rnd函数返回0 1(包括0和不包括1)之间的数。Rnd通常与Int函数配合使用。若要生成a,b区间范围内的随机整数,可以用公式 Int(b-a+1)*Rnd+a),使用Rnd函数之前,先用Randomize语句来初始化随机数生成器例 通过随机函数产生2个两位正整数,求这2个数 之和并显示出来,随机数函数,编写的窗体单击事件过程代码如下:Private Sub Form_Click()Dim a As Integer,b As Integer,c As Integer Randomize 初始化随机数生成器 a=Int(90*Rnd+10)

46、产生10,99区间内的随机整数 b=Int(90*Rnd+10)c=a+b 求两数之和 Print 产生的两个随机数:;a,b Print 和数:;c End Sub,随机数函数,格式输出函数,说明:(1)expression为有效表达式,即要转换的数据,format参数一般不省略,当省略时,可以简单认为此时Format函数的作用和CStr函数一致。例如:Format(-455)的结果为-455。,(2)格式化数据时,format参数中可以出现“#”、“0”等字符串来表示某种指定格式,每一个字符都可以代表转换后的一位字符,当数据超过指定位数,0表示用0补齐,而#表示不进行其他操作,两种都进行四

47、舍五入。例如:Format(12222.34455,#.#)的结果为12222.345。Format(12222.34455,00.000)的结果为12222.345。Format(2.3,#.#)的结果为2.3。Format(2.3,00.000)的结果为02.300。所以一般情况下,整数部分用#表示,小数的位数可以用0表示,即规定某个数据保留的位数。如:Format(2.3,#.000)的结果为2.300,格式输出函数,在Format参数中,还可以出现其他的符号,如:“,”、“:”或其他数据等,这些符号原样输出,在处理时,数据从右向左匹配。例如:Format(254485,#:1:#)的结

48、果为2544:1:85 当参数以%结尾时,表示以百分制显示。例如:Format(2544.85,“00.0%”)的结果为“254485.0%”,格式输出函数,(3)格式化字符串时,format参数中可以出现“”、“”、“”、“)的结果为HELLO KID也可以同时使用多个符号表示:Format(Hello,)的结果“HELLO,格式输出函数,(4)格式化日期是Format函数经常使用的功能。例如:若MyTime=#17:04:23#,则以下Format函数的结果为:MyDate=#January 27,1993#MyStr=Format(Time,Long Time)表示以系统设置的长时间格式返回当前系统时间。MyStr=Format(Date,Long Date)表示以系统设置的长日期格式返回当前系统日期。MyStr=Format(MyTime,h:m:s)表示返回 17:4:23。MyStr=Format(MyTime,hh:mm:ss AMPM)表示返回 05:04:23 PM。MyStr=Format(MyDate,dddd,mmm d yyyy)表示返回 Wednesday,Jan 27 1993。,格式输出函数,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号