




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章基本数据类型与表达式2.1VisualBasic字符集与词汇表2.2VisualBasic的基本数据类型2.3常量与变量2.4运算符与表达式2.5常用内部函数
一个语句是由单词和表达式构成,而单词和表达式是由一个一个字符组成。字符、词汇、表达式、语句、过程、函数等统称为“语法单位”。语法单位的形成是按一定规则的,语法单位的形成规则称为“语法规则”。2.1VisualBasic字符集与词汇表字符是构成程序设计语言的最小语法单位。每一种程序设计语言都有自己的字符集。程序设计语言中的合法句子都是由字符集中的字符构成。
数字:0123456789
英文字母:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
特殊符号:Space!"#$%&'()*+,–./:;<=>?@[\]^_{|}~
2.1.1字符集
汉字也作为一种字符,它们既可以有语法意义,也可以作为字符显示或打印出来。在程序代码窗口中输入程序时,汉字在中文方式下输入,其它字符必须在英文方式下输入。例如,输入语句
Print"圆面积是:",3.14159*r*r
“单词”是程序设计语言中具有独立意义的最基本结构。例如:0.5是一个单词,表示值为0.5的实型常数。程序设计语言中,单词符号一般包括:运算符、界符、关键字、标识符、各类型常数等。2.1.2
词汇集
运算符用于指定数据的各种运算。而界符是用来分隔单词的符号。界符也称为间隔符。运算符也作为界符来使用。
例如,语句Printx有两个单词:Print和x,界符是空格符;表达式 0.125*23包含3个单词:0.125,*和23,它们中间没有空格,运算符“*”就起了界符作用。1.运算符和界符(1)算术运算符
+(加)–(减)*(乘)/(除)
^(乘幂)\(整除)Mod(求模)
(2)字符串运算符
&或+(连接)
(4)逻辑运算符
NOT(逻辑非)AND(逻辑与)OR(逻辑或)
Xor(异或)Eqv(等价)Imp(蕴涵)
(3)比较运算符
>(大于)<(小于)=(等于)<>(不等于) >=(大于等于)<=(小于等于)
(5)其他界符((左圆括号))(右圆括号)[(左方括号)
](右方括号),(逗号);(分号)
:(冒号)!(感叹号)?(问号)
“(双引号) ‘(单引号) .(小数点)
%(百分号)#(井号)_(下划线)
Space(空格)$(货币符或字符串类型符)关键字又称保留字。在语法上具有固定含义的单词称为关键字,它是语句的重要组成部分。它也用来表示系统提供的标准过程、函数、运算符、常量等。例如:
AbsAddItemAndAnyAsBeepByValCallCaseChrCircleClearCloseClsCommandConstCosCurrencyDateDayDeftypeDimDirDoLoopDoEventsDoubleElseEndEofEqvErrorExitExpFalse…2.关键字
标识符用于标记用户自定义的常量、类型、变量、控件或过程、函数等。标识符的选取必须遵循如下规则:
·必须以字母开头,由字母、数字和下划线组成。
·变量名的最后一个字符可以是类型说明符。
·不能超过255个字符。控件、窗体、类和模块的名字不能超过40个字符。
·不能和关键字同名(但窗体和控件名除外)。3.标识符
另外,也允许使用汉字作为用户自定义的标识符。
例如,合法的标识符有:ax1n0_1a2csum%namemyform姓名班级不合法标识符有:2ax+y
a,ba$bprint
标识符的选取除了符合上述原则外,应该尽可能做到“见名知义”,提高程序的可读性。例如,年龄用age,名字用name,总和用sum
数据是程序的处理对象,它有不同类型。VB提供的基本数据类型主要有字符串型、数值型、逻辑型和日期型。不同类型的数据的表示形式、取值范围和操作方式都不一样。2.2.1
字符串型2.2.3
逻辑型2.2.2
数值型2.2.4
日期型2.2VisualBasic的基本数据类型
字符串(String)是一个字符序列,由放在一对双引号中的ASCII字符(除双引号和回车符之外)、汉字及其他可打印字符组成。
例如,合法的字符串:
"Hello""Wearestudents.""中华人民共和国""2+3=?""2000""#####""¥25,000.00"""(空字符串)2.2.1字符串型
(1)字符串中包含的字符个数称为字符串长度。在VisualBasic6.0中,把汉字作为一个字符处理。长度为0(即不含任何字符)的字符串称为空字符串,简称为空串。
(2)双引号在程序代码中起字符串的界定作用。当输出一个字符串时,并不显示双引号;从键盘上输入一个字符串时,也不需要键入双引号。
(3)字符串中字母的大小写是有区别的。例如,字符串“ABC”与“abc”是两个不相同的字符串。注意:整型数是不带小数点和指数符号的数。十进制整型数由0~9之间的数字组成,可以带正号或负号。
例如:
147588565200–314532700
整型数按示数表示范围的不同分为整数、长整数和字节型整数。整型数和长整数还可以有三种表示形式:十进制、八进制和十六进制形式。1.整型2.2.2数值型(1)整型(Integer)
十进制整数以两个字节(16位)二进制码表示和参与运算,其取值范围是–32768~+32767。八进制整数由八进制数字0~7组成,前面冠以&或&0,可以带正号或负号。其取值的绝对值范围是&0~&177777。例如:&347&01277–&264
十六进制整数由十六进制数字0~9,A~F(或a~f)组成,前面冠以&H(或&h),可以带正号或负号。其取值的绝对值范围是&H0~&HFFFF。
例如:&H76&H32f–&ha4e
(2)长整型(Long)
十进制长整数以4个字节(32位)存储,取值范围是–2147483648~+2147483647。当用八进制或十六进制形式表示长整数时,数字序列都应以符号“&”结尾。它们示数的绝对值范围分别是&0&~&37777777777和&H0&~&HFFFFFFFF&。
例如:
&3477&–&5557764&&O23456871&&H589&&hA2BCD5F&–&h569ef&
对在程序中用八进制或十六进制形式表示的整数、长整数,需要输出时,系统将自动把它们转换成十进制数据形式输出。注意:
例如:八进制数&177,其输出结果为十进制数127
十六进制数&HFF,其输出结果为十进值数255
(3)字节型(Byte)
以1个字节(8个二进位)存储无符号整型,取值范围在0~255之间。实型数是带有小数部分的数,分为定点数和浮点数。定点数为带小数点的数。
浮点数由符号、指数和尾数三部分组成。
2.实型(1)单精度浮点数(Single)
用4个字节(32个二进位)存储,其中符号占1位,指数占8位,其余23位表示尾数。单精度数可以精确到7位十进制数。负数的取值范围为:
–3.402823E+38~–1.401298E–45
正数的取值范围为:
1.401298E–45~3.402823E+38。
单精度浮点数的指数符号用字母“E”(或“e”)表示。例如:
123.45E3或123.45e+3,123.45是尾数部分,E3或e+3是指数部分,相当于123.45乘10的3次方。
–0.674523E5,相当于–0.674523乘10的5次方。
(2)双精度浮点数(Double)
用8个字节(64个二进位)存储,其中符号占1位,指数占11位,其余52位表示尾数。双精度数可以精确到15位或16位十进制数。负数的取值范围为:
–1.797693134862316E+308~–4.94065645841247E–324
正数的取值范围为:
4.94065645841247E–324~1.797693134862316E+308
双精度浮点数的指数符号可用“D”(或“d”)表示,VB会自动转换为E。
例如:
123.45678D+3或123.45678d3,123.45678是尾数部分,D+3是指数部分,相当于123.45678乘以10的3次方。
345.123456789D–6,相当于345.123456789乘以10的–6次方。(3)货币类型数据(Currency)
货币类型数据是为表示钱款而设置的。该类型数据以8字节存储,精确到小数点后4位,在小数点后4位以后的数字将被舍去。其取值范围是:
–922337203685477.5808~922337203685477.5807
浮点数的小数点是“浮动”的,即小数点可以出现在数的任何位置,而货币类型数据的小数点是固定的,称为定点数据类型。
逻辑型数据(Boolean)只有两个可能值:
True(逻辑真)或者False(逻辑假)。逻辑型数据用2个字节(16个二进位)存储。当逻辑值转换为数值型时,False成为0,True成为–1。2.2.3逻辑型
日期型(Date)数据用来表示日期和时间,它以8个字节(64个二进位)存储,可以表示的日期范围从100年1月1日到9999年12月31日,可以表示的时间范围从0:00:00到23:59:59。2.2.4日期型日期型数据的标准形式有三种:
1.#月/日/年#
这种形式用来表示日期。例如:#2/18/2003#
2.#时:分:秒AM∣PM#
这种形式用来表示时间。AM表示上午,PM表示下午。例如:#10:08:20AM#
3.#月/日/年时:分:秒AM∣PM#
这种形式用来表示日期和时间。例如:#2/18/200310:08:20AM#
当数值型数据要转换为日期型数据时,小数点左边的值表示日期信息,即从1899年12月31日开始所经过的天数。而小数点右边的值则表示时间,以毫秒为单位。午夜为0,中午为0.5。负整数表示1899年12月31日之前的日期和时间。
不同类型的数据既可以表示为常量形式,也可以表示为变量形式。常量的值在程序执行期间是不会发生变化的。变量代表内存中指定的存储单元。变量的存储单元在程序中可以根据需要赋予不同的值,即变量的值是可以变化的。
2.3.1
常量2.3.2
变量2.3常量与变量文字常量的类型和值由它本身的表示形式决定。例如:
“Thisisastring”字符串常量,长度为16
12598
十进制整数
1.文字常量2.3.1常量常量的数据类型有时会存在多义性。例如,值3.01是单精度类型,还是双精度类型或货币类型?规定:在缺省的情况下,VB将选择需要内存容量最小的表示方法处理。例如,值3.01作为单精度数处理。
注意:为了显式地指明数值型常量的类型,可以在常量后面加上类型说明符,这些说明符分别为:
%
整型
&
长整型
!
单精度浮点型#
双精度浮点型
@
货币型$
字符串型例如:3.01#
双精度浮点型常数
100.05@
货币型常数
在程序中的一些多次出现或难于记忆的常数值,可以用标识符来定义,即用标识符给常量取名。这样定义的常量名称称为符号常量。用标识符定义常量后,凡是在程序中出现该常量的地方都可以使用相应的标识符代替。2.符号常量符号常量说明语句的一般格式:
Const<constantname>[As<type>]=<expression>
其中:<constantname>
为常数的名称,用标识符表示。
As<type>
是可选项,用以说明常数的数据类型。<type>可以是:Byte,Boolean,Integer,Long,Currency,Single,Double,Date,String或Variant等。
<expression>是必选项,可以为文字常数,也可以是包含除Is之外任意的算术操作符和逻辑操作符所构成的表达式。
(1)说明符号常量的类型时,可以在常量名后加上类型说明符。例如:Constone&=1。(2)在程序中引用符号常量时,通常省略类型说明符。(3)类型说明符不是符号常量的组成部分。例如,假设说明了:Constnum=56,则num!,num#,num%,num&,num@就不能再作变量名了。
(4)经过说明的符号常量只是常数值的名字,不能在程序代码中修改它的值。
注意:
(5)Const语句可以放在程序的不同位置。该语句出现的位置不同,有效范围也不同。如果符号常量说明语句在过程内部,符号常量只能在该过程内有效。如果符号常量说明语句出现在窗体代码的声明部分中,则窗体以及窗体中各控件的事件驱动程序都能够引用这些被声明的符号常量。
OptionExplicitConstpi=3.14159PrivateSubCommand1_Click()Dimr1!r1=InputBox("请输入半径")
Print"半径=";r1,"周长=";2*
pi*r1EndSub
PrivateSubCommand2_Click()Dimr2!r2=InputBox("请输入半径")
Print"半径=";r2,"面积=";pi*r2*r2EndSub
Pi有效!Pi有效!例2-1
符号常量的作用域。变量是用来存储数据的,系统对程序中的每一个变量都分配有相应存储单元。存储单元中存放的数据就是变量的值,它的类型就是变量的类型。在程序中,若要引用变量的值必须使用变量名。变量的名字用标识符表示。
2.3.2变量(1)变量说明语句变量说明语句一般形式:
Dim<variablename>[As<type>]其中:Dim
是用于说明变量的关键字
<variablename>
是用户定义的标识符
<type>
可以是各种标准类型名称或用户自义类型标识符。缺省As子句时,被说明的变量为可变类型。例如:Dimvar1AsInteger DimtotalAsDouble
1.变量的说明
用Dim语句定义的变量的作用范围与语句的位置有关。如果Dim语句出现在窗体代码的声明部分,则窗体以及窗体中各控件的事件驱动程序都能够使用这些变量。
在过程内部用Dim语句说明的变量,只有在该过程执行时才存在。过程执行结束后,系统会把相应的存储单元收回,变量的值也就消失了。过程中说明的变量是局部的。无法在一个过程中使用另一个过程中说明的变量。在不同的过程中可以使用相同的变量名。但它们表示不同的变量,分配有不同的存储单元。
Constpi=3.14159265PrivateSubCommand1_Click()DimrasSingle
r=InputBox("请输入半径")
Print"半径=";r,"周长=";2*pi*rEndSub
PrivateSubCommand2_Click()DimrasSingle
r=InputBox("请输入半径")
Print"半径=";r,"面积=";pi*r*rEndSub
例2-2
不同过程使用相同的变量名。除了可以用As子句说明变量的类型外,还可以把类型说明符放在变量名的尾部,用于说明不同类型的变量。
例如:
Dimvar1% Dimtotal# Dimnamevar$
类型说明符“$”可以说明变长字符串变量,但不能说明定长字符串变量。说明定长字符串变量必须使用As子句。即用As子句可以说明变长字符串变量,也可以说明定长字符串变量。变长字符串变量的长度取决于赋给它的字符串常量的长度,定长字符串常量的长度通过加上“*<数值>”来决定。例如:
DimnamevarAsStringDimmynameAsString*10
在一个Dim语句中可以定义多个变量。例如:
Dimvar1AsString,var2AsDouble
(2)隐式说明如果使用一个变量之前不事先说明,则系统对该变量进行隐式说明。隐式说明的变量的类型为可变类型。
例2-3
输出隐式说明变量的值。
输出空值
PrivateSubCommand1_Click()DimvarAsIntegervar=100PrintPrint"var=";var,EndSub
PrivateSubCommand2_Click()Print“var=”;varEndSub
若一个隐式说明的变量直接参与数值运算时,作0值处理。例如,若把上述Command2_Click过程中的语句:
Print"var=";var改为:
Print"var=";var+1则输出结果为数值1。若一个隐式说明的变量直接参与字符串运算时,作空串处理。变量的隐式说明可以省略了说明语句,看起来很方便,但往往会导致一些难以查找的错误。
例2-4
下列语句的作用是交换变量a,b的值:
temp=aa=bb=temp
若输入为:
temp=aa=bb=emp
则会产生错误。有错!规定每个变量都要经过显式说明才可以使用只须在程序模块的声明部分中加入语句:
OptionExplicit
例如:OptionExplicitPrivateSubCommand1_Click()DimrAsSingler=InputBox("请输入半径")
Print"圆半径是:",rPrint"圆周长是:",2*3.14159*rPrint"圆面积是:",3.14159*r*rEndSub
在变量说明语句中,使用关键字Variant定义类型或仅定义变量而不作类型声明(缺省类型说明As子句或变量名不带类型符),则该变量称为可变类型变量。例如:DimsomevalueAsVariant Dimsomevalue
2.可变类型变量在可变类型变量中可以存放任何类型的数据,包括数值、字符串、日期和时间。变量的类型将随着存放数据的变化而变化,VB自动完成各种必要的转换。
例如:
somevalue=“100” somevalue=somevalue–10somevalue=“ABC”+Str(somevalue)
使用可变类型变量存在两个隐患:进行算术运算时的隐患和进行“+”连接运算时的隐患。避免这两个隐患可以采取如下两个措施:(1)对可变类型变量进行算术运算时,必须确保变量中存放的是某种形式的数值;例如:Dimvalue value=“3e+2” value=value–10
若改为:value=“123e+x”则会产生错误。
(2)进行连接运算时,尽量使用运算符“&”。
Variant类型有两个特殊常量:
(1)Empty
当可变类型变量没有赋值前,它的值为Empty。进行算术运算时,Empty作为0参与运算;进行字符串运算时,Empty作为空字符串参与运算。例如:DimaPrint12345+a
(2)Null
表示无效数据
PrivateSubCommand1_Click()Dimaa="string":Print"a=";aa=Empty:Print"a=";aa=123:Print"a=";aa=Null:Print"a=";aa=Empty:Print"a=";aa=Null:Print"a=";aEndSub例2-5
观察Empty
和Null值
a=stringa=a=123a=Nulla=a=Null在变量说明语句中使用关键字Static说明的变量称为静态变量。程序模块运行结束后,VB不收回静态变量所占的存储单元,并且保留它们的值。再次调用该程序模块时,也不会刷新静态变量的值。使用其他说明符说明的变量称为自动变量。3.静态变量OptionExplicitPrivateSubCommand1_Click()DimxAsIntegerx=x+1Printx;"";EndSubPrivateSubCommand2_Click()StaticyAsIntegerIfy=0ThenPrinty=y+1Printy;"";EndSub111111123456
例2-6
测试静态变量。运算是对数据的加工。对数据进行什么运算要由运算符来确定。参与运算的数据称为运算量或操作数。运算量包括常量、变量、函数等。由运算量、运算符和圆括号构成的式子称为表达式。表达式有多种类型:数值表达式、字符串表达式、关系表达式、逻辑表达式等。2.4运算符与表达式算术运算符是用来对数值型数据进行运算的一种符号。
+、–、*、/(实数除)、\(整数除)、Mod、^(指数运算)
除“–”可作取负运算,只需要一个操作数外,其余运算符均要求有两个操作数。运算符左边的操作数称为左操作数,运算符右边的操作数称为右操作数。2.4.1算术运算符与数值表达式
算术运算的一般形式为:
aOpb
或OPb其中Op表示运算符,a是左操作数,b是右操作数。例如:100*45-50
a和b也可以是一个表达式。例如:23/5+1.2
由数值型数据、算术运算符和圆括号构成的表达式称为数值表达式。其运算结果为数值型数据。例如:a*b^2+b/(58+r/sin(x-y))
特殊情况:单个数值型常量或变量或函数也是数值表达式。例如:0.5,Pi,a,sin(x)若左操作数a为负实数,则右操作数b必须是整数。指数运算用来计算乘方和方根,其运算符为“^”。指数运算的一般形式为:
a^b
若左操作数a为正实数,则右操作数b可为任意数值。当b不是整数时,设b=n/m,其中m,n均为整数,则VB按下式计算:1.指数运算例如:
10^2
计算10的平方,结果为100
10^–2
计算10的平方的倒数,即1/100,结果为0.01
25^0.5
计算25的平方根,结果为5
8^(1/3)
计算8的立方根,结果为2
8^(–1/3)
计算8的立方根的倒数,结果为0.5
(–8)^(1/3)
错误!浮点数除法的运算符是“/”。左右操作数可以为整数或者浮点数,运算结果的类型由其值决定。例如:3/2
结果为1.5,浮点型
3.6/1.8
结果为2,整型整数除法的运算符是“\”。左右操作数一般为整型数。当操作数带有小数点时,VB首先对其四舍五入为整数,然后进行整除运算。运算结果截取其整数部分,小数部分不作舍入处理。例如:10\4
结果为2
20\2.6
结果为6
25.63\6.78
结果为32.浮点数除法与整数除法
取模运算的运算符为Mod,专门用于求两个数相除的余数。如果左右操作数为实数,则先对其进行四舍五入取整,然后求两个整数相除的余数。运算结果的符号取决于左操作数的符号。即左操作数为正数,运算结果为正数;左操作数为负数时,运算结果为负数。例如:10Mod4
结果等于2
20Mod2.6
结果等于2
25.63Mod6.78
结果等于5
–5Mod2
结果等于–1
–5Mod–2
结果等于–1
5Mod–2
结果等于13.取模运算算术运算符的优先级如下:
^-→–(求负)-→*、/-→\-→
Mod-→+、–
当一个数值表达式中含有多种算术运算符时,必须按照以上顺序求值。同级运算符从左到右运算。如果表达式中含有括号,则先进行括号内运算。括号内有括号时,从内到外逐层运算。例如:3+2*717
10*-5-50
(3+2)*735
1+((2+3)*2)*2214.算术运算符的优先级注意:
(1)表达式中的字符要在同一行书写。
(2)乘号“*”不能省略,也不能用“.”代替。
(3)分子分毋有运算时要加圆括号。
(4)表达式中的方括号和花括号用圆括号代替。
字符串连接运算符为:+或&。左右操作数都为字符串。运算结果是把两个字符串连接起来。例如:“Visual”+“Basic”=“VisualBasic”
由字符串常量、字符串变量、连接运算符和圆括号构成的式子称为字符串表达式。例如:A$+“Basic”&“VisualBasic”
字符串表达式的运算结果为字符串。
特殊情况:单个字符串型常量或变量或函数也是字符串表达式。例如:“Basic”、A$、Right(“VisualBasic”,5)
2.4.2字符串连接关系运算符用来比较两个操作数的大小。关系运算符有:=、<>或><、>、<、>=、<=
用关系运算符把两个操作数连接起来的式子称为关系表达式。例如:5>3
a=b
x>=y+1
1.关系运算符2.4.3关系运算与逻辑运算关系表达式的运算结果为逻辑值。若关系运算符两边满足关系运算符的含义,则运算结果为Ture(参与算术运算时为-1);否则,运算结果为False(参与算术运算时为0)。例如:5>3
值为Ture
Print(5>3)+1
输出0
说明:
(1)字符串数据按ASCII码和字典顺序对各字符逐一进行比较。例如:“china”>“canada”“china”=“china”
“you”<“your”
“广东”<“广西”
(2)关系运算符的左右操作数一般要求类型相同。当类型不同时,VB会按形式值进行转换后再比较。例如:156=“156”
结果为True
327=“abc”
出现类型不匹配的错误(3)应避免直接判断两个浮点数是否相等而改成对误差的判别。
例如:Abs(num1–num2)<1E–6(4)判断x是否在区间[a,b]时,不能写成a<=x<=b而应写成: a<=xAndx<=b
逻辑运算符有:Not(逻辑非)And(逻辑与)
Or(逻辑或)Xor(异或)
Eqv(等价)Imp(蕴含)
2.逻辑运算符(2)And(逻辑与)逻辑与运算需要两个操作数,当左右操作数的值同时为True时,运算结果才为True;否则,为False。
例如:5>3And8>5
结果为True
5>3And8<5
结果为False(1)Not(逻辑非)
逻辑非只有一个右操作数。它是一种取反运算。当右操作数为True时,运算结果为False。当右操作数为False时,运算结果为True。
例如:Not5<3
结果为True
Not5>3
结果为False(4)Xor(异或)异或运算也需要两个操作数,当左右操作数一样时,运算结果为False;否则,为True。
例如:5>3Xor8>5
结果为False
5>3Xor8<5
结果为True(3)Or(逻辑或)
逻辑或也需要两个操作数,当左右两个操作数中有一个或同时为True时,运算结果为True,只有左右两个操作数同时为False时才为False。
例如:5>3Or8<5
结果为True
5<3Or8<5
结果为False(6)Imp(蕴含)
蕴含运算也需要两个操作数,当左操作数为True,右操作数为False时,运算结果为False,其它三种情况均为True。
例如:5>3Imp8>5
结果为True
5>3Imp8<5
结果为False(5)Eqv(等价)
等价运算也需要两个操作数,当左右两个操作数一样时,运算结果为True;否则,为False。
例如:5>3Eqv8>5
结果为True
5>3Eqv8<5
结果为False
Not→And→Or→Xor→Eqv→Imp
由逻辑运算量、关系表达式、逻辑运算符和圆括号构成的式子称为逻辑表达式。例如:(x<0)Or(Not(i<>0)Andb)3.优先级函数运算→算术运算→关系运算→逻辑运算
例如:2.4.4表达式的运算顺序a/Sin(5*x)^3*b-4a/Sin(5*x)^3*b-4a/Sin(5*x)^3*b-4①a/Sin(
5*x
)^3*b-4①②a/Sin(
5*x
)^3*b-4①②③a/
Sin(
5*x
)^3*b-4①②③④a/
Sin(
5*x
)^3*b
-4①②③④⑤⑥
又如,设i=1,j=0,x=2,y=2,写出下列布尔表达式的运算顺序和运算结果。
x=2OrNoty>0And(x–y)/i<>0x=2OrNoty>0And(x–y)/i<>0x=2OrNoty>0And(x–y)/I<>0①0x=2OrNoty>0And(x–y)
/I<>0①0②0x=2OrNoty>0And(x–y)
/I<>0①0②0③Truex=2OrNoty>0And(x–y)
/I<>0①0②0③True④Truex=2OrNoty>0And(x–y)
/I
<>0①0②0③True④True⑤Falsex=2OrNot
y>0And(x–y)
/I
<>0①0②0③True④True⑤False⑥Falsex=2OrNot
y>0
And
(x–y)
/I
<>0①0②0③True④True⑤False⑥False⑦Falsex=2OrNot
y>0
And
(x–y)
/I
<>0①0②0③True④True⑤False⑥False⑦False⑧True
内部函数可以分为5类:转换函数、数学函数、字符串函数、时间/日期函数和随机函数。这些函数都带有一个或几个自变量,这些自变量也称为“参数”。内部函数的功能就是对这些参数进行某种运算,返回一个值。这个值称为函数值。要使用内部函数必须要调用它。调用内部函数的一般格式为:
<函数名>([<参数表>])其中参数表中的参数可以是一个参数,也可以是多个参数,多个参数时要用逗号分隔。这些参数可以为常量、变量、函数、更一般为表达式。2.5常用内部函数2.5.1
命令行的解释执行方式
2.5.2
转换函数
2.5.3
数学函数
2.5.4
字符串函数
2.5.5
随机函数解释方式有两种使用方法:使用启动按钮来解释执行程序和在立即窗口直接解释执行语句。在立即窗口直接解释执行语句的操作为:
①从菜单栏的“视图”菜单项中选择“立即窗口”菜单命令执行。
②输入语句和按回车键。
2.5.1命令行的解释执行方式转换函数用于数据类型或形式的转换,包括整型、浮点型、字符串型之间以及与ASCII码字符之间的转换。2.5.2转换函数Int(n)
返回不大于n的最大整数。Fix(n)
去掉n的小数部分,返回其整数部分。例如:
?Int(5.872)
5?Fix(5.872)
5?Int(-5.872)
–6?Fix(-5.872)
–51.取整函数Asc(s)
返回字符串s的首字符的ASCII码值。例如:
MyStr1=Asc("A") '返回65
MyStr2=Asc("a") '返回97
MyStr3=Asc("Apple") '返回65
PrintMyStr1,MyStr2,MyStr3
659765
Chr(n)
把表达式n的值转换为相应的字符。其中表达式n的值是一个的合法ASCII码值。例如:
MyChar1=Chr(65) '返回“A”MyChar2=Chr(97) '返回“a”MyChar3=Chr(62) '返回“>”
MyChar4=Chr(37) '返回“%”
PrintMyChar1,MyChar2,MyChar3,MyChar4
Aa>%2.类型转换函数
Val(s)
返回字符串表达式s中所含的数值。若遇到字母(指数符号除外)则停止转换。例如:
MyValue1=Val("2457") '返回整值2457
MyValue2=Val("2457")'去掉空格,返回整2457
MyValue3=Val("24and57") '返回整值24
MyValue4=Val("3E–2") '返回实数值3E–2PrintMyValue1,MyValue2,MyValue3,MyValue4
2457245724.03
Str(n)
返回数值表达式n的值字符串形式。当n转换成字符串时,字符串的第一个位一定是空格或是负号。例如:
MyString1=Str(459) ‘返回"459"
MyString2=Str(–459.65)‘返回“–459.65"
MyString3=Str(459.001) ‘返回"459.001"
PrintMyString1,MyString2,MyString3
459-459.65459.001
CInt(x)
把数值表达式x的值的小数部分四舍五入转换成整数。当小数部分为0.5时,舍(或入)为最接近的偶数。例如:MyDouble=2345.5678'MyDouble为Double型
MyInt=CInt(MyDouble)'MyInt的值为2346
PrintMyInt
2346
又如:PrintCint(2.5)
2PrintCint(3.5)
4
CCur(x)
把数值表达式x的值转换为货币类型值,小数部分最多保留4位且自动四舍五入。例如:
MyDouble=543.214588'MyDouble为Double型
MyCurr1=CCur(MyDouble) '转换为Currency型
MyCurr2=CCur(MyDouble*2)'转换为Currency型
PrintMyCurr1,MyCurr2
534.21461086.4292
CDbl(x)把x的值转换为双精度数。例如:
MyCurr=CCur(234.456784)'MyCurr为Currency型
MyDouble=CDbl(MyCurr*8.2*0.01)‘结果为Double型
PrintMyDouble
19.2254576
CLng(x)
把数值表达式x的值的小数部分四舍五入转换为长整数。例如:
MyVal1=25427.45MyVal2=25427.55 'MyVal1,MyVal2均为Double型
MyLong1=CLng(MyVal1)'把MyVal1转换为长整数
MyLong2=CLng(MyVal2)'把MyVal2转换为长整数
PrintMyLong1,MyLong2
2542725428
CSng(x)把数值表达式x的值四舍五入为单精度数。例如:
MyDouble1=75.3421115'MyDouble1为Double型
MyDouble2=75.3421555'MyDouble2为Double型
MySingle1=CSng(MyDouble1)MySingle2=CSng(MyDouble2)PrintMySingle1,MySingle2
75.3421175.34216
CVar(x)
把数值表达式x的值转换为可变类型值。
例如:
MyInt=4534 'MyInt为Integer型
MyVar=CVar(MyInt&"000")PrintMyVar
4534000
(输出结果为字符串)
Sin(x)
返回自变量x的正弦值
Cos(x)
返回自变量x的余弦值
Tan(x)
返回自变量x的正切值
Atn(x)
返回自变量x的反正切值其中参数x是数值表达式,Sin,Cos和Tan函数的自变量是为弧度,而Atn函数的自变量是正切值,返回值为弧度。若自变量以角度给出,则可以使用下面公式转换为弧度:
1度=π/180
弧度1.三角函数2.5.3数学函数
Abs(x)
返回数值表达式x的值的绝对值。例如:
MyNumber1=Abs(50.3)MyNumber2=Abs(–50.3)PrintMyNumber1,MyNumber2
50.350.32.绝对值函数
Sgn(x)
返回数值表达式x的符号。当x的值<0时,函数返回–1;当x的值=0时,函数返回0;当x的值>0时,函数返回1。例如:
MyVar1=12:MyVar2=–2.4:MyVar3=0PrintSgn(MyVar1),Sgn(MyVar2),Sgn(MyVar3)
1–103.符号函数
Sqr(x)
返回数值表达式x的值的平方根。x的值须大于或等于0。例如:PrintSqr(64)
8PrintSqr(-4)‘错误!负数不能求平方根。4.平方根函数
Exp(x)
返回ex的值,其中x为数值表达式。例如:
PrintExp(1)
2.71828182845905
Log(x)
返回数值表达式x的值的自然对数,即求lnx的值。
例如:
PrintLog(8)
2.079441541679845.指数和对数函数
LTrim(S)
去掉字符串s左边的空白字符。
RTrim(S)
去掉字符串s右边的空白字符。
Trim(S)
去掉字符串s左右两边的空白字符。例如:MyString="<–Trim–>"
PrintLTrim(MyString)PrintRTrim(MyString)PrintTrim(MyString)
<–Trim–><–Trim–><–Trim–>1.删除空白字符函数2.5.4字符串函数
Left(s,n)
截取字符串s中最左边的n个字符。
Mid(s,p,n)
在字符串s中,从第p个字符开始,向后截取n个字符。
Right(s,n)
截取字符串s中最右边的n个字符。
例如:AnyString="HelloComputerWorld"FirstStr=Left(AnyString,6)MidStr=Mid(AnyString,7,8)LastStr=Right(AnyString,5)PrintFirstStr,MidStr,LastStr
HelloComputerWorld2.字符串截取函数
Len(s)
返回字符串s的长度,即所含的字符个数。例如:
MyString1="HelloWorld"PrintLen(MyString1)
11MyString2="华南理工大学"
PrintLen(MyString2)
63.字符串长度测试函数
String(n,ch)
生成n个同一字符组成的字符串,这个字符由ch指定。ch可以是字符,也可以是某个字符的ASCII码,还可以是字符串。若ch为字符串,则生成由该字符串的第一个字符组成的n个字符的字符串。
Space(n)
生成由n个空格组成的字符串。例如:
MyS1=String(5,"*")
PrintMyS1
*****MyS2=String(5,42)PrintMyS2
*****4.String和Space函数MyS3=String(10,"ABC")PrintMyS3AAAAAAAAAAMyStr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保安证考试道德意识题及答案
- 试题预测保安证试题及答案
- 如何制定保安证考试复习计划试题及答案
- 2025年保安证专业指南试题及答案
- 2025年保安证考试随时备考试题及答案
- 保安职业发展与试题及答案的关系
- 高效复习保安证考试试题及答案
- (完整版)基坑支护专项施工方案
- 完整安防监控系统的基本组成
- 广东外语外贸大学南国商学院《形式逻辑学》2023-2024学年第二学期期末试卷
- 错牙合畸形的早期矫治
- 小学数学-乘法分配律教学课件设计
- 身份证籍贯自动对照自动生成
- DG-TJ 08-2367-2021 既有建筑外立面整治设计标准
- 教育测量与评价智慧树知到答案章节测试2023年石河子大学
- 全国各主要红色教育基地
- 2023年新HSK5级考试真题考试
- 应用文写作课件:3投诉信letter of complaint
- GB/T 6177.2-2000六角法兰面螺母细牙
- GB/T 4100-2015陶瓷砖
- GB/T 28022-2021玩具适用年龄判定指南
评论
0/150
提交评论