Visual FoxPro程序设计实践教程(第3版)
上QQ阅读APP看书,第一时间看更新

实验二 常量、变量和表达式

【实验目的】

1.掌握Visual FoxPro常量的表示形式。

2.掌握Visual FoxPro运算符的运算规则。

3.掌握Visual FoxPro的变量的赋值、显示。

4.掌握如何使用表达式来表示条件。

【实验内容】

1.判断下列表达式的正误

如果是正确的表达式则写出表达式的值,如果是错误的则指出错误的原因。

(1)123+456

(2)123+'456'

(3)"123"+"456"

(4)'abc'+'def' (abc后面有空格)

(5)'abc'-'def' (abc后面有空格)

(6){^2014-10-1}+{^2014-5-1}

(7){^2014-10-1}-{^2014-5-1}

(8){^2014-10-1 8:30:0 }+10000

(9)3>2>1

(10)'abc' $'a' and 5^2>5*2 or 'abc'>'acb'

(11){^2014-6-1}<{^2013-8-1} or 'abc'='a' and '张三'>'李四'

2.写出下列对应的VFP命令

(1)定义两个数组A(10)、B(2,3)。

(2)将数组B中各元素的值均赋值为数值0。

(3)将数组变量A(1)赋值为10。

(4)将数组变量A(2)赋值为以A(1)的值为半径的圆面积。

(5)将数组变量A(3)赋值为2014年6月1日。

(6)将数组变量A(4)赋值为字符串湖南长沙。

(7)将数组变量A(5)赋值为逻辑真值。

(8)将数组变量A(6)赋值为分式,分子为10*5+4,分母为1+22。

(9)将数组变量A(7)赋值为中国连接上A(4)。

(10)将数组变量A(8)赋值为A(3)与2014年元旦相差的天数。

(11)将数组变量A(9)赋值为A(3)过100天后的日期。

(12)将以上定义的各个变量显示在屏幕上。

3.写出下列VFP的逻辑表达式

判断以下条件是否成立。

(1)A(1)是小于100的非负数。

(2)A(3)是2014年下半年的日期。

(3)A(4)包含湖南或者湖北。

(4)A(5)为逻辑假值。

【实验步骤】

1.启动VFP,在命令窗口中写出?命令和表达式,按回车键执行该命令。

若是正确的表达式,在主窗口中将显示表达式的值。若是错误的表达式,系统会弹出提示窗口,如图2.1所示。

图2.1 执行显示表达式的值的命令

2.在命令窗口中首先执行Dimension命令定义数组,然后使用赋值语句对数组元素赋值。

赋值后可通过?数组元素列表命令或display memory like数组名命令查看数组元素的值。

注意

在输入完一条命令后,必须按回车键,该命令才能执行。不能在输入多条命令后再按回车键,此时执行的是光标所在行的命令。

3.在命令窗口中输入?命令和逻辑表达式,按回车键执行。

若条件成立,则表达式的结果为逻辑真。

【答案解析】

1.判断下列表达式的正误

如果是正确的表达式则写出表达式的值,如果是错误的则指出错误的原因。

(1)123+456 &&数值型数据相加,表达式的值为579

(2)123+'456' &&错误 数值型与字符型不能执行+操作

(3)"123"+"456" &&字符串连接,表达式的值为123456

(4)'abc'+'def' (abc后面有空格) &&字符串连接,表达式的值为abc def

(5)'abc'-'def' (abc后面有空格) &&字符串连接,表达式的值为abcdef,空格移到f的后面

(6){^2014-10-1}+{^2014-5-1} &&错误,日期型不能相加

(7){^2014-10-1}-{^2014-5-1} &&两个日期之间相差的天数,表达式的值为153

(8){^2014-10-1 8:30:0 }+10000 &&时间加上秒数,表达式的值为2014/10/1 11:16:40

(9)3>2>1 &&错误 3>2为.t.,逻辑型.t.与数值型1不能比较

(10)'abc' $'a' and 5^2>5*2 or 'abc'>'acb'&& .f. and .t. or .f. 表达式的值为.f.

(11){^2014-6-1}<{^2013-8-1} or 'abc'='a' and '张三'>'李四'&& .f. or .t. and .t.表达式的值为.t.

2.写出下列对应的VFP命令

(1)定义两个数组A(10)、B(2,3)。

Dimension A(10),B(2,3)

(2)将数组B中各元素的值均赋值为数值0。

B=0

(3)将数组变量A(1)赋值为10。

A(1)=10

(4)将数组变量A(2)赋值为以A(1)的值为半径的圆面积。

A(2)=A(1)**2*3.14

(5)将数组变量A(3)赋值为2014年6月1日。

A(3)={^2014-6-1}

(6)将数组变量A(4)赋值为字符串湖南长沙。

A(4)='湖南长沙'

(7)将数组变量A(5)赋值为逻辑真值。

A(5)=.T.

(8)将数组变量A(6)赋值为分式,分子为10*5+4,分母为1+22。

A(6)=(10*5+4)/(1+22)

(9)将数组变量A(7)赋值为中国连接上A(4)。

A(7)='中国'+A(4)

(10)将数组变量A(8)赋值为A(3)与2014年元旦相差的天数。

A(8)=A(3)-{^2014-1-1}

(11)将数组变量A(9)赋值为比A(3)晚100天的日期。

A(9)=A(3)+100

(12)将以上定义的各个变量显示在屏幕上。

DISPLAY MEMORY LIKE *

3.写出下列VFP的逻辑表达式

判断以下条件是否成立。

(1)A(1)是小于100的非负数。

A(1)<100 and A(1)>0 表达式结果为.t.

(2)A(3)是2014年下半年的日期。

A(3)>={^2014/7/1} AND A(3)<={^2014/12/31} 表达式结果为.f.

(3)A(4)包含湖南或者湖北。

‘湖南’$A(4) or ‘湖北’$A(4) 表达式结果为.t.

(4)A(5)为逻辑假值。

A(5)=.f. 表达式结果为.f.

(注意:在命令? A(5)=.f.中,=为关系运算符,由于A(5)为真值,所以表达式的结果为假。而在命令A(5)=.f.中,=为赋值语句,将变量A(5)赋值为逻辑假值。)

【实验作业】

1.定义数组m(4),对m数组的各个元素进行赋值。

(1)m(1)赋值为字符串201221120108。

(2)m(2)赋值为数值10。

(3)m(3)赋值为日期2014年10月1日。

(4)m(4)赋值为日期时间2014年10月1日上午10点半。

2.计算出下列VFP的表达式(设目前exact状态为off)。

(1)m(1)='2012'

(2)'2012' =m(1)

(3)m(1) =='2012'

(4)'2012' $ m(1)

(5)m(1) $ '2012'

(6)m(1)>= '2011' and m(1)<= '2013'

(7)'学号'+m(1) (学号前后各有一空格)

(8)'学号'-m(1)

(9)5*m(2)**3/(m(2)+10)

(10)m(2)%3+m(2)/3

(11)m(3)-{^2014-1-1}

(12)m(4)-36000

(13)m(3)>m(4)

(14).t. or notm(5) and m(5)

(15)(.t. or notm(5)) and m(5)

3.写出下列VFP的逻辑表达式。

(1)m(1)的起始字符是否为2011或2012。

(2)m(2)是否大于等于1且小于等于10。

(3)比m(3)前100天的日期是否属于2014年。

(4)m(4)与2014年10月31日午夜12时相差的小时数。