
2.4 实验指导
(一)实验目的
1.理解数据类型的含义。
2.掌握常量类型及表示方式,变量的定义、赋值和显示方法。
3.掌握各种表达式的计算和书写。
4.掌握常用函数的功能和使用方法。
(二)实验内容
1.变量的赋值与输出显示。
2.各种常量的表示及其输入/输出方法。
3.运算符的使用及表达式求值。
4.数值处理函数、字符处理函数、日期时间函数、类型转换函数等函数的用法。
(三)实验步骤
【实验2-1】在命令窗口中通过STORE命令为变量X、Y、Z赋相同的值;用“=”命令为变量A、B、C、D分别赋值"李四"、"男"、20和当前日期,并用“?”命令显示上述变量的值。
步骤如下:
(1)在“命令”窗口中用STORE命令为变量X、Y、Z赋相同的值。
在“命令”窗口中输入:STORE VAULE TO X,Y,Z
其中,各内存变量须用逗号分隔,其中VALUE表示具体的值,如STORE 5 TO X,Y,Z。
(2)为变量A、B、C、D分别赋值"李四"、"男"、20和当前日期。
在“命令”窗口中依次按行输入:

(3)用“?”命令显示上述变量的值。
在“命令”窗口中输入:?X,Y,Z,A,B,C,D
【实验2-2】若有变量NAME="张三",SEX="男",OLD=19,DEPT="软件工程系",BIRTH={^1976/09/21},结合“?”显示命令完成下述实验任务:
输出字符表达式"学生:"+ NAME +""+ DEPT的值;
输出算术表达式35-OLD的值;
根据BIRTH值判断是否是1980年以前出生;
输出逻辑表达式OLD >20 AND SEX<>"女"的值。
步骤如下:
(1)在“命令”窗口中分别输入以下命令:

(2)在“命令”窗口中分别输入以下语句,会输出相应的结果:

【实验2-3】验证算术运算、字符运算、日期运算、日期时间运算、关系运算、逻辑运算等运算符的功能,并进行比较分析。
步骤如下:
在“命令”窗口中依次输入以下命令:

提示:运算符“-”可以作算术减法,字符连接运算、日期时间运算等多种用法。可在“命令”窗口中依次输入:


【实验2-4】各种类型的常用函数功能分析。
1.常用数值函数
(1)对数函数
在“命令”窗口中输入:
?LOG(10) &&表示以e为底的自然对数
则在工作区窗口会显示:2.30
在“命令”窗口中输入:
?LOG10(2) &&表示以10为底的对数
则在工作区窗口会显示:0.30
(2)指数函数
在“命令”窗口中输入:
?EXP(5) &&表示以自然数e为底,参数值为指数的指数值
则在工作区窗口会显示:148.41
(3)取余数函数
格式:MOD(<数值表达式1>,<数值表达式2>)
说明:若表达式同号,函数值为两个数相除的余数;符号相反时,函数值是余数加上除数的值,符号与表达式2相同。
在“命令”窗口中输入:
?MOD(18,5)
则在工作区窗口会显示:3
在“命令”窗口中输入:
?MOD(18,-5)
则在工作区窗口会显示:-2
在“命令”窗口中输入:
?MOD(-18,5)
则在工作区窗口会显示:2
在“命令”窗口中输入:
?MOD(-18,-5)
则在工作区窗口会显示:-3
提示:请分析上述输入命令的显示结果。
(4)最大值函数
格式:MAX(<表达式1>,<表达式2>[,<表达式3>…])
在“命令”窗口中输入:
?MAX(12,36)
则在工作区窗口会显示:36
在“命令”窗口中输入:
?MAX(11,3,-10)
则在工作区窗口会显示:11
(5)最小值函数
格式:MIN(<表达式1>,<表达式2>[,<表达式3>…])
在“命令”窗口中输入:
?MIN(12,36)
则在工作区窗口会显示:12
(6)开平方函数
在“命令”窗口中输入:
?SQRT(144) &&求144的算术平方根
则在工作区窗口会显示:12.00
在“命令”窗口中输入:
?SQRT(57)
则在工作区窗口会显示:7.55
(7)取小数位数函数
格式:ROUND(<数值表达式1>,<数值表达式2>)
说明:对<数值表达式1>的值进行四舍五入,其中<数值表达式2>决定其保留的小数位数;当数值表达式2大于或等于零时,表示要保留的小数位数,小于零时,表示整数部分的四舍五入位数。
在“命令”窗口中输入:
?ROUND(12345.6789,3)
则在工作区窗口会显示:12345.679
在“命令”窗口中输入:
?ROUND(12345.6789,0)
则在工作区窗口会显示:12346
在“命令”窗口中输入:
?ROUND(12345.6789,-3)
则在工作区窗口会显示:12000
(8)随机数函数
格式:RAND([N])
说明:产生[0,1]之间的随机数
在“命令”窗口中输入:
?RAND() &&在工作区窗口显示[0,1]之间的随机数
?INT(RAND()*10)+1 &&在工作区窗口显示[1,10]之间的随机数
2.常用字符处理函数
(1)删除空格函数
格式:

所有函数值返回类型均为字符型。
在“命令”窗口中输入:
?ALLTRIM("□□计算机设计□□□") &&删除首尾空格,□代表空格,下同
则在工作区窗口会显示:计算机设计
在“命令”窗口中输入:
?LTRIM("□□计算机设计□□□") &&删除前面空格
则在工作区窗口会显示:计算机设计□□□
在“命令”窗口中输入:
?RTRIM("□□计算机设计□□□") &&删除尾部空格
则在工作区窗口会显示:□□计算机设计
(2)左取子串函数
格式:LEFT(<字符表达式>,<数值表达式>)
说明:从<字符表达式>值左边取<数值表达式>个字符作为函数值。
在“命令”窗口中输入:
?LEFT("计算机设计",6)
则在工作区窗口会显示:计算机
(3)右取子串函数
格式:RIGHT(<字符表达式>,<数值表达式>)
说明:从<字符表达式>值右边取<数值表达式>个字符作为函数值。
在“命令”窗口中输入:
?RIGHT("计算机设计",4)
则在工作区窗口会显示:设计
(4)任意取子串函数
格式:SUBSTR(<字符表达式>,<数值表达式1>,<数值表达式2>)
说明:在<字符表达式>中从<数值表达式1>值处开始取<数值表达式2>个字符,若<数值表达式2>省略,则从起始位置开始直到所有字符个数。返回值类型为字符型。
在“命令”窗口中输入:
?SUBSTR("计算机设计",5,4)
则在工作区窗口会显示:机设
(5)产生空串函数
格式:SPACE(<数值表达式>)
说明:产生<数值表达式>值所给定的空格字符串。
在“命令”窗口中输入:
?"Visual"+SPACE(2)+"FoxPro 6.0"
则在工作区窗口会显示:Visual□□FoxPro 6.0
在“命令”窗口中输入:
?LEFT("计算机设计",6)+SPACE(2)+SUBSTR("计算机设计",7,4)
则在工作区窗口会显示:计算机□□设计
(6)英文大小写转换函数
格式:LOWER(<字符表达式>)
说明:把<字符表达式>中的大写字母变成小写。
格式:UPPER(<字符表达式>)
说明:把<字符表达式>中的小写字母变成大写。
在“命令”窗口中输入:
?LOWER("I am student!")
则在工作区窗口会显示:i am student!
在“命令”窗口中输入:
?UPPER("I am student!")
则在工作区窗口会显示:I AM STUDENT!
(7)求长度函数
格式:LEN(<字符表达式>)
说明:计算<字符表达式>的长度,其中一个汉字占两个字节的长度,当为空串时长度是0,返回值是数值型N。
在“命令”窗口中输入:
?LEN("I amstudent")
则在工作区窗口会显示:12
在“命令”窗口中输入:
?LEN("2008北京奥运会!")
则在工作区窗口会显示:15
在“命令”窗口中输入:
?LEN("") &&求空串的长度
则在工作区窗口会显示:0
(8)宏代换函数
格式:&<字符型内存变量>[. <字符型表达式>]
说明:用于代换<字符型内存变量>的内容。若有可选项,将其与代换的内容连接起来。
在“命令”窗口中依次输入如下命令:
姓名="李四"
STORE"姓名" TO name
?&name
则在工作区窗口会显示:李四
3.常用类型转换函数
(1)字符转日期函数
格式:CTOD(<字符表达式>)
说明:将<字符表达式>的值转换为相应的日期,函数值为日期型D。
在“命令”窗口中输入:
?CTOD("1949-10-01")
则在工作区窗口会显示:1949/10/01
(2)日期转字符函数
格式:DTOC(<日期表达式>)
说明:把<日期表达式>的值转换为相应的字符型数据,函数值为字符型C。
在“命令”窗口中输入:
?DTOC({^1949-10-01})
则在工作区窗口会显示:1949/10/01
(3)字符转数值函数
格式:VAL(<字符表达式>)
说明:将<字符表达式>转换为数值,函数值为数值型N。转换时从字符串最左边开始,若第一个字符为非数字字符,则值为0,否则一直到非数字字符为止。
在“命令”窗口中输入:
?VAL("123.4C5")
则在工作区窗口会显示:123.40
在“命令”窗口中输入:
?VAL("a123.45")
则在工作区窗口会显示:0.00
(4)数值转字符函数
格式:STR(<数值表达式1>[,<数值表达式2>[,<数值表达式3>]])
说明:将<数值表达式1>的值转换为总长度等于<数值表达式2>,小数位数等于<数值表达式3>的字符串,根据需要自动进行四舍五入,函数值为字符C。
在“命令”窗口中输入:
?STR(12345.6789,10,4)
则在工作区窗口会显示:12345.6789
在“命令”窗口中输入:
?STR(12345.6789,7,4)
则在工作区窗口会显示:12345.7
在“命令”窗口中输入:
?STR(12345.6789,12,2)
则在工作区窗口会显示:□□□□12345.68
在“命令”窗口中输入:
?STR(12345.6789,10) &&省略数值表达式3,转换后无小数部分
则在工作区窗口会显示:□□□□□12346
在“命令”窗口中输入:
?STR(12345.6789) &&省略表达式2和表达式3,转换后长度为10,无小数部分,不足补空格
则在工作区窗口会显示:□□□□□12346
在“命令”窗口中输入:
?STR(12345.6789,2) &&表达式2的值小于表达式1的长度,则函数值由“*”组成
则在工作区窗口会显示:**
(5)字符转ASCII码值函数
格式:ASC(<字符串表达式>)
说明:返回字符串表达式左边第一个字符的ASCII码值,函数值为数值型N。
在“命令”窗口中输入:
?ASC("STUDENT")
则在工作区窗口会显示:83
(6)ASCII码值转字符函数
格式:CHR(<数值表达式>)
说明:将<数值表达式>值作为ASCII码值,并返回相对应的字符,函数值为字符型C。
在“命令”窗口中输入:
?CHR(83)
则在工作区窗口会显示:S
4.日期时间函数
(1)系统日期和时间函数
DATE():返回系统当前日期,函数值为日期型D。
TIME():返回系统当前时间,函数值为字符型C。
DATETIME():返回系统当前日期、时间,函数值为日期时间型T。
(2)取年份函数
格式:YEAR(<日期型表达式>>)
说明:返回四位数字表示年份,函数值为数据型N。
在“命令”窗口中输入:
?YEAR({^2016/06/17})
则在工作区窗口会显示:2016
(3)取月份函数
格式:MONTH(<日期型表达式>)
说明:返回月份,函数值为数据型N。
在“命令”窗口中输入:
?MONTH({^2016/06/17})
则在工作区窗口会显示:6
(4)取天数函数
格式:DAY(<日期型表达式>)
说明:返回天数,函数值为数据型N。
在“命令”窗口中输入:
?DAY({^2016/06/17})
则在工作区窗口会显示:17
(5)取星期函数
格式:WEEK(<日期型表达式>)
说明:返回当前日期所在周数,函数值为数据型N。
在“命令”窗口中输入:
?WEEK({^2016/06/17})
则在工作区窗口会显示:25