Download presentation
Presentation is loading. Please wait.
1
Visual Basic 程序设计教程
2
第四讲 VB语言基础(2)
3
本讲教学内容 3.3 运算符、函数和表达式
4
3.3 表达式、运算符和函数 一、表达式 1. 表达式是数据之间运算关系的表达形式,由常量、变量、函数等数据和运算符组成。 2. 单个常量或变量也可以看作是表达式。 二、运算符 1. 运算符是表示数据进行什么运算的符号。 2. 运算符可分成算术运算符、关系运算符、逻辑运算符和字符串运算符四大类。
5
(一)算术运算符 1. 算术运算符可以对数值型数据进行运算,运算结果为数值。 2. 算术运算符与运算优先级
6
3. 有关运算符的使用说明 (1) 幂运算:用来计算乘方和方根 例如:2^4, 5^2, 10^-2, 36^0.5
7
(2) 浮点除法与整数除法 浮点除法(/) 整数除法(\)
操作数可以是整数或小数,结果可以是整型数,也可以是浮点数。 整数除法(\) 操作数一般为整型值,如果操作数带有小数,首先将其四舍五入为整型数(即小数≤0.5整数不进1,否则进1)。操作结果为整型值。
8
例如:10/4 (结果为2.5) 10/2.5 (结果为4) 10\4 (结果为2) 10\2.5 (结果为5) 10\2.51 (结果为3) 26.5\9 (结果为2) 26.51\9 (结果为3)
9
(3) 取模运算 取模运算用来求第一个操作数整除第2个操作数所得的余数。 通常用来判断一个数是否能被另一个数整除。 例如:8 Mod 3 (结果为2) 8 Mod -3 (结果为2) -8 Mod 3 (结果为-2) -8 Mod -3 (结果为-2)
10
(二) 字符串运算符 1. 字符串运算符有“&”和“+”两个运算符。 2. 用来连接两个或更多个字符串。 3. 其运算结果是字符型的。
4. “+”连接符其操作数必须是字符型的;否则可能会进行算术加法或出错。 5. “&”连接符在运算中会忽略操作数的类型,而强行将两个操作数的值进行连接。
11
例如:10+5 (结果为15,是数值型) “10”+5 (结果为15 ,是数值型) 10+“5” (结果为15 ,是数值型) “10”+“5”(结果为105,是字符型) “a”+”5” (结果为a5) “a”+5 (结果出错) 10 & 5 (结果为105) “10” & 5 (结果为105) 10 & “5” (结果为105) “10” & “5” (结果为105) “a”&“5”与“a”& 5 (结果都是a5)
12
(三) 关系运算符 1. 关系运算符也称比较运算符,用来对两个相同类型的表达式进行比较。 2. 其结果是一个逻辑值,即真(True)或假(False);VB一般用“-1”表示True,”0”表示False。 3. 进行比较的数据可以是数值型、字符型或日期型。
13
4. 常用关系运算符 运算符 含义 示例 结果 = 等于 “abc”=“aBc” False <> 不等于 123< >156
True > 大于 “ABc”>”ABC” < 小于 34<12 >= 大于等于 12>=12 <= 小于等于 “ABCD”<=“ABC” Like 字符串匹配 “abcdefg” Like “??cd*”
14
5. 关系运算规则 数值型数据按其值大小进行比较; 日期型数据将日期看成“yyyymmdd”的8位整数,按数值大小进行比较;
单个字符按ASCII码值进行比较; 字符串比较是从左至右逐一字符进行比较。
15
(四) 逻辑运算符 1. 参加逻辑运算的对象必须是逻辑对象。 2. 其运算结果为逻辑型,即True或False。 3. 逻辑运算符及运算优先级如下表所示。
16
运算符 运算 示例 结果 Not 非 Not (8>4) False And 与 (4<8) And (7>3) True Or 或 (4<8) Or (4>5) Xor 异或 (4<8) Xor (7>3) Eqv 等价 Imp 蕴含 (2<7) Imp (3>5)
17
5. 用逻辑运算符连接两个或多个关系表达式,构成逻辑表达式。
4. 各种逻辑运算符说明 5. 用逻辑运算符连接两个或多个关系表达式,构成逻辑表达式。 P Q Not P P And Q P Or Q P Xor Q P Eqv Q P Imp Q T F
18
(五) 日期运算符 1. 日期型数据只有加(+)和减(-)两个运算符。 2. 两个日期型数据相减,结果是一个整型数据,即两个日期相差的天数。 例如:#12/20/2002# -#12/10/2002# (结果为10) 3. 日期型数据加上(或减去)一个整型数据,结果仍为一个日期数据。 例如:#12/10/2002#+10 (结果为 ) #12/10/2002#- (结果为 )
19
=、>、<、>=、<=、< >、Like、Is
(六) 运算符的优先级 名称 运算符 优先级 算术运算符 ^ - *、/ \ Mod +、- 高 字符运算符 +、& 关系运算符 =、>、<、>=、<=、< >、Like、Is 逻辑运算符 Not And Or Xor Eqv Imp 低
20
三、 VB的函数 函数是用来实现数据处理过程中的特定的运算与操作。 函数可分为内部函数和用户自定义函数。
自变量称为参数,不同的函数其自变量都有其规定的数据类型。 函数一般都有一个返回值,也有相应的数据类型。
21
(一) 数学函数 (常用数学函数如下表所示) 函数形式 函数名称及含义 Abs(x) 绝对值函数 Cos(x) 余弦函数 Exp(x)
(常用数学函数如下表所示) 函数形式 函数名称及含义 Abs(x) 绝对值函数 Cos(x) 余弦函数 Exp(x) 指数函数,即ex Log(x) 以e为底对数函数,即logeX Rnd(x) 随机函数,产生[0,1)内的一个数 Sin(x) 正弦函数 Sgn(x) 符号函数 Sqr(x) 平方根函数 Tan(x) 正切函数
22
常用数学函数的使用说明: 1. Sin(x)和Cos(x)函数 2. Abs(x)函数 功能:返回x的正弦值或余弦值。
23
3. Sgn(x)函数 4. Sqr(x)函数 5. Exp(x)函数 功能:返回x的符号。
说明:x<0返回-1; x=0返回0; x>0返回1; 4. Sqr(x)函数 功能:求x的平方根(即x开方)。 说明:x>=0 5. Exp(x)函数 功能:求ex的值。
24
(二) 字符串函数 字符串函数的格式及基本功能如下列表格所示。
25
返回数值的字符串函数 函数形式 函数名称及含义 Len(X) 字符串长度函数 LenB(X) 字符串字节数函数
InStr(N,X1,X2,[M]) 匹配位置函数 StrComp(X1,X2,[M]) 字符串比较函数
26
返回字符串的字符串函数 函数形式 函数名称及含义 Left$(X,N) 左取字符串函数 Mid$(X,N,M) 中取字符串函数
Right$(X,N) 右取字符串函数 Ltrim$(X) 去左空格函数 Trim$(X) 去前后空格函数 Rtrim$(X) 去右空格函数 Space$(X) 空格填充函数 String$(N,X) 字符填充函数
27
新增的字符串函数 函数形式 函数名称及含义 InStrRev(X1,X2,N,M) 匹配位置反查函数 Join(A,X) 合并数组为串函数
Replice$(X,X1,X2) 字符串替换函数 Split$(X1,X2) 分隔串为数组函数 StrReverse$(X) 字符串反序函数
28
2. 举例说明 Print Len(“abc一二三”) 6 Print LenB(“abc一二三”) Print InStr(1, "abcdefg", "de") Print StrComp("abcdf", "abcde")
29
Print Left("abcdefg", 3) abc
Print Mid("abcdefg", 3, 2) cd Print Right("abcdefg", 5) cdefg Print "|" & LTrim(" abcd ") & "|" |abcd | Print "|" & Trim(" abcd ") & "|" |abcd|
30
Print "|" & RTrim(" abcd ") & "|" | abcd|
Print "|" & Space(6) & "|" | | Print String(4, "#") #### Print InStrRev("abcdefg", "de")
31
a = Array("abc", "12", "3") Print Join(a, Print Replace("abcdefg", "c", "C") abCdefg s = Split("ab,cd,efg", ",") Print s(0), s(1), s(2) ab cd efg Print StrReverse("abcdefg") gfedcba
32
(三) 数据类型转换函数 函数形式 函数名称及含义 Asc(C) 取ASCII值函数 Val(C) 字符串转换函数 Fix(N)
(三) 数据类型转换函数 函数形式 函数名称及含义 Asc(C) 取ASCII值函数 Val(C) 字符串转换函数 Fix(N) 截尾取整函数 Hex$(N) 转十六进制函数 Int(N) 返回不大于N的最大整数 Oct(N) 转八进制函数 Chr$(N) ASCII码值转字符串函数 Lcase(C) 大写转小写函数 Ucase(C) 小写转大写函数 Str(N) 数值转字符串函数
33
Print Asc("A") 65 例如: Print Chr(99) b
Print Val(“ ”) (数值型) Print Str( ) (字符型) Print Fix(4.657), Fix(-3.2)
34
Print Int(4.657), Int(-3.2) Print Hex(100) (十六进制数) Print Oct(100) (八进制数) Print LCase("AbCdEfG") abcdefg Print UCase("AbCdEfG") ABCDEFG
35
(四) 日期和时间函数 函数形式 函数名称及含义 Date( ) 取系统日期函数 DateSerial(Y,M,D) 日期设置函数
DateValue(C) DateAdd(G,N,T) 增减日期函数 DateDiff(G,T1,T2) 间隔日期函数 Day(C) 取日期函数 Month(C) 取月份函数 Year(C) 取年份函数 Now 返回系统日期时间函数 Time( ) 取系统当前时间函数 WeekDay(C) 返回星期代号函数
36
例如 Print Date Print DateSerial(90, 12, 30) Print DateValue("06,18,2005") Print DateAdd("ww", 2, #5/11/2022#) Print DateDiff("M", #11/20/2005#, #5/11/2006#) 6
37
例如 Print Day(Date) Print Month(Date) Print Year(Date) Print Now :42:37 Print Time :42:37 Print Weekday(Date)
38
(五) 随机函数与随机数语句 1. 随机函数 (1) 格式:Rnd([x]) (2) 功能:产生一个0-1之间的single类型的随机数。
(3) 产生指定区间的随机数的方法为: (0,x)区间的随机浮点数:Rnd*x (m,n)区间的随机浮点数:m+Rnd*(n-m) [i,j]区间的随机整数:Int(i+Rnd*(j-i+1))
39
例:如果需要产生0-10之间的随机整数,可用:Int(Rnd*10)
如果需要产生两位随机整数,可用: Int(10+Rnd*90) 如果需要产生三位随机整数,可用: Int(100+Rnd*900) 如果需要产生50-80随机整数,可用: Int(50+Rnd*31)
40
2. 随机数语句 格式:Randomize[expN1] 功能:根据一套算法产生随机数。 说明:
当一个应用程序不断重复使用随机函数Rnd,同一序列的随机数可能会反复出现,用该语句可以消除这种情况。 expN1是一个整型数。 若省略参数,则用系统时钟返回的值作为参数。
Similar presentations