visual foxpro 基础
2.3 表达式
【课 时】2课时
【教学目的】1、表达式的分类
2、各种表达式的定义
3、各种表达式的组成
4、各种表达式的运算
【教学重点】求各种表达式运算及注意事项
【教学过程】
一、复习引入新课
上节课我们了解了vfp的基本特点,在此基础上学习了vfp所提供的数据类型及常量和变量的定义及其类型,下面我们学习如何利用这些常量或变量进行计算。
二、新课
1、表达式的定义
表达式是变量、常量、函数、字段名(字段变量)、控件的各种属性以及操作符的组合。写一个表达式首先要确定表达式的类型。
2、表达式的分类
按表达式的结果分,表达式可分为:
l 数值表达式
l 字符表达式
l 关系表达式
l 逻辑表达式
3、数值表达式
是指运算结果为数值的表达式,也称为数值表达式,它由数值操作符和数值操作数组成,其中
l 数值操作符有:( ),** 或^ 乘方,*,/ ,%(取余),+,-
l 数值操作数可以是数值型常量、数值型变量、结果是数值型的函数、类型是数值型的字段变量、类型是数值型的控件属性等。
l 运算顺序为:先乘方,后乘除,再加减,有括号先算括号,级别相同的运算按从左向右的顺序进行。
例:如果x=3,档案表中某记录年龄字段的值为16,某表单form1的某一数值型文本text1的值为5,则
(x+3)*档案.年龄+10%3+abs(-2)^2 –form1.text1.value表达式的值为96
4、字符表达式
是指运算结果是字符型数据的表达式。它由字符操作符和字符操作数组成。
l 字符操作数有:字符常量、字符变量、结果是字符型的函数、类型是字符型的字段娈量、类型是字符型的控件属性。
l 字符操作符有:+(连接) -(移空格连接) $ 判子串
例如:“中华”+“人民”=“中华人民”
“中华 ”+“人民”=“中华 人民”
“中华”-“人民”=“中华人民”
“中华 ”-“人民”=“中华人民 ”
$ 的意思是:如果后面的字符能完全包括前面的字符,则表达式的值为“真”(.t.),否则为“假”(.f.).
例如:“中华”$“中华人民”=.t.
“中华人民”$“中华”=.f.
5、日期表达式
是指运算结果是日期型的表达式,由日期操作数和日期操作符组成。
l 日期操作数可以是日期常量、日期变量、结果是日期型的函数、类型是日期型的字段娈量、类型是日期型的控件属性,特别的日期表达式中还可以包括数字。
l 日期操作符有:+ -
例如:{02/10/01}-365={02/10/00}
{02/10/01}-{02/10/00}=365
6、关系表达式
运算结果是逻辑型数据,.t.(真)或 .f.(假),由操作符和操作数组成。
l 操作符有:> < = <= >= <>或# ( )
l 操作数可以是种常量、变量、函数及算术表达式。
例如:5>6=.f. 6>5=.t. {02/10/01}>{02/10/00}=.t.
{02/10/01}<{02/10/00}=.f. {02/10/01}-50<{02/10/00}=.f.
注意:
l 数值型数值按大小比较。
l 字符型数值按ascii码的大小来比较,具体表示为
» 大写字母>小写字母,如 “a”>”a”=.t.
» 在26个英语字母中排在后面的字母大,如 ”b”>”a”
» 汉字按其汉语拼音字母的大小来比较,如 “王”(wang)<”张”(zhang)=.t.
» 如果字符串或汉字的第一个字母相同,则按第二个字母的大小来比较,如”王”(wang)>”魏”(wei)=.f.,以此类推。
» 任何字母比空格大,如 ”王”>”万”=.t.
l 在关系表达式中除括号可以改变运算的顺序之外,其他运算符无优先顺序。
l 进行比较的数据要求类型相同。即数值之间比较,字符之间比较,日期之间比较,不能用数值与字符进行比较。
l 当数值表达式出现在关系表达式中时,数值运算优于关系运算。
如:2+3>8=.f.
7、逻辑表达式
与关系表达式相同,运算的结果只能是逻辑数据 .t.(真)或 .f.(假),也由逻辑操作符和操作数组成。
l 操作符有:( ) .not.或! (非) .and.(与,且) .or.(或)
l 操作数可以是逻辑型数值、结果是逻辑型的函数据及表达式等。
l 运算必须按一定顺序:先 .not. 后 .and. 再 .or.,括号可以改变运算顺序。
l 非、与、或之间的运算关系为:
.not.
.and.
.or.
.t.
.f.
.f.
.t.
.t. .t.
.t.
.t.
.t. .f.
.f.
.t.
即:如果变量is_student=.t. is_boy=.f. ,则
.not. is_student=.f. .not. is_boy=.t.
is_student .and. is_boy=.f.
is_student .or. is_boy=.t.
8、总之,在vfp中,特别在程序中以下各种表达式可以综合使用,但必须按一定的顺序进行:
括号---乘方---求模---加减或字符串连接---关系运算----逻辑非---逻辑与---逻辑或
( ) **或^ % + - .not. .and. .or.
三、课堂小结
本节课学习了vfp中表达式的分类及使用,其中零碎知识点较多,也较复杂。同学们要通过上机练习,认真思考,认真总结。
四、作业:
1、给出下列表达式的值:
2**8 8**2 93%12 “ 法律”+” 常识” “ 法律”-” 常识”
{12/10/02}+7 {03/16/02}-{03/16/80} “中华人民”$”中华” “安徽”=”天长” “安徽”>”天长”
2、设nl=50 xb=”女” zc=”教授” x=3 y=4 z=5 则下列各式的值为什么?
nl<30 and xb=”男”
nl>50 or xb=”女”
not(nl<60 and zc=”教授”)
x+y>z and x<z or x>y and y<z