第三次实验内容

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三次实验内容:运算符及表达式

用运算符将各种常量、变量及函数连接起来的运算式子称为表达式。事实上,常量、变量和函数是最基本的表达式。

根据表达式中所使用的运算符,可将表达式分为:算术表达式、字符表达式、日期表达式、日期时间表达式、关系表达式和逻辑表达式。如果在一个表达式中含有两种或更多种运算符,这样的表达式称为混合表达式。

【实验目的】

●了解各运算符的功能

●掌握同一类型运算符的优先级别,不同类型运算符的优先级别

●按要求写出符合要求的表达式

●算出混合型表达式的结果

一:算术运算符及表达式

算术运算符有圆括号()、乘方(^或**)、乘(*)、除(/)、取模(%)、加(+)、减(-)等。同样为算术运算符,但其优先级别不同,通过下表可反映出各算术运算符的优先级别。

例题1:写出各算术运算符执行后的结果。

?11%6 &&结果:5

?11%-6 &&结果:-1

?-11%6 &&结果:1

?-11%-6 &&结果:-5

?sqrt(2.5*2)**2 &&结果:5

?4+3-105%4**2+(9/3) &&结果:1

【说明】

●在Visual FoxPro中%表示取模运算符,其功能与mod()函数一致。

●为初学者而言,很多人都把取模运算符“%”当作百分比,如12%。这时系统就会给出错误提示。

例题2:若x=8.9,求2X与X2的最大值

X=8.9

A=2^x

?A &&结果:477.71

B=X**2

?B &&结果:79.21

?max(A, B) &&结果:477.71

例题3:若a=2,b=10,c=5,计算一元二次方程:ax2+bx+c=0的两个实根。

a=2

b=10

c=5

X1=(-b+sqrt(b^2-4*a*c))/(2*a)

X2=(-b-sqrt(b^2-4*a*c))/(2*a)

?x1,x2 &&结果:-0.5635 -4.4365

【说明】

●在Visual FoxPro中没有中括号及大括号来表示不同层次的运算,只有小括号。多级运算均用小括号来表示,由里及外依次展开。而且小括号的优先级别最高。

●分母2*a必须加括号,否则将a当作分子而不是分母进行运算,结果就不正确了。二.字符运算符及表达式

字符运算符只有三个:+、-及$。优先级别由高到低是:+、-、$。

参加字符表达式运算的数据都是字符型的,但运算后的结果可能是字符型也可能是逻辑型的。

例题1:写出各字符运算符执行后的结果。

X=”计算机” &&字符串前面没有空格,后面有2个空格

Y=’012班’ &&字符串前面没有空格

?x+y &&结果:“计算机 012班“中间有两个空格

?’1’+’6’ &&结果:’16’

?x-y &&结果:’计算机012 ‘将空格移至新生成字符串的尾部?‘1’-‘6’ &&结果:’16’

?”程序”$”开发程序“ &&结果:.T.

?”智能”$”智力及能力” &&结果:.F.

【说明】

●字符串的“+”运算符表示将两个字符串连接。

●字符串的“-”运算符将第一个字符串的尾部空格移去再与第二个字符串连接,在新生成的字符串的尾部再将第一个字符串的尾部空格加上。“-”运算符的功能相当于将第一个字符串尾部空格转移,如果第一个字符串尾部没有空格则功能与“+”一致。

●“$”功能类似于集合中的∈,其返回值为逻辑型数据。

例题2:设n1=’qw’,n2=space(3),n3=str(4.51,5,2),且x1=n1+n2+n3,x2=trim(n1+n2-n3)求x1和x2的长度。

n1=‟qw‟

n2=space(3)

n3=str(4.51,5,2)

x1=n1+n2+n3 &&x1的值:”qw 4.51” 中间有4个空格

x2=trim(n1+n2-n3) &&x2的值:”qw 4.51” 中间有1个空格

?len(x1),len(x2) &&结果:10 7

例题3:设a=“中华人民共和国”,利用函数求字符串“中国”。

方法一:

a=“中华人民共和国”

?substr(a,1,2)+substr(a,13,2)

方法二:

?left(a,2)+right(a,2)

三.日期时间运算符及表达式

日期时间表达式只有两种运算符:+、-。通常,两个日期或两个日期时间不能相加,但可以相减,结果是二个日期相差的天数或秒数。一个日期或日期时间可以加上或减去一个天数或秒数,得到一个新的日期或日期时间型数据。

例题1:求出今天距离北京奥运会开幕式已经过去了多少天?

?date()-{^2008/08/08}

例题2:求出从今天起,100天后的日期。

?date()+100

【提示】

虽然数值运算符、日期运算符及字符运算符都包含“+”及“-”,但其功能各不相同,在实际应用时请注意区分。

四.关系运算符及表达式

关系表达式由关系运算符、数值表达式、字符表达式或日期表达式组合而成,返回结果为逻辑值。关系运算符左右两边连接的数据必须是同种类型的数据才能进行比较。

常见的运算符包括:>、<、=、==严格相等、<>或!=或#表示不等于,<=,>=。

“=”运算符在默认的情况下为模糊相等。模糊相等的含义是:等号右边的字符串是等号左边的一个最左子串时,结果为真,反过来则为假。

“==”叫精确相等,它不受set talk on/off的影响,左右两边字符串必须都相等则结果为真。

例题1:写出下列数据比较后的结果。

Set exact on

?”bvf”=‟bv‟ &&结果是:.F.

?‟bvf‟==‟bvf‟ &&结果是:.T.

?‟bvf‟=‟v‟ &&结果是:.F.

Set exact off

?”bvf”=‟bv‟ &&结果是:.T.

?‟bvf‟=‟bvf‟ &&结果是:.T.

?‟bvf‟==‟bvf‟ &&结果是:.T.

?‟bvf‟=‟v‟ &&结果是:.F.

【说明】

●在模糊相等即set exact off状态下,“=”右边的字符串是“=”左边字符串的最左子串时则结果为真,否则为假。

●在set exact on 状态下,等号两边的数据必须要一致结果才为真。

例题2:写出下列数据比较后的结果。

Set collate to “pinyin”

?‟12‟>‟123‟ &&结果:.F.

?”张三”<”李四” &&结果:.F.

?”张三丰”<”张三” &&结果:.F.

?‟bu‟>”Bas” &&结果:.T.

?‟abc‟<‟A‟ &&结果:.F.

相关文档
最新文档