计算机2级课件第3章.doc
《计算机2级课件第3章.doc》由会员分享,可在线阅读,更多相关《计算机2级课件第3章.doc(7页珍藏版)》请在冰豆网上搜索。
![计算机2级课件第3章.doc](https://file1.bdocx.com/fileroot1/2022-10/22/429ceacb-a5c8-4baa-8bac-daec0e375f81/429ceacb-a5c8-4baa-8bac-daec0e375f811.gif)
第3章数据、函数与表达式
数据是计算机程序处理的对象,也是运算产生的结果,所以我们首先应该认识VFP能处理哪些数据,掌握各种形式数据的表示方法。
可以从不同的角度对数据进行分类。
从数据类型来分,数据可以分为数值型数据、字符型数据、逻辑型数据等。
从数据的存处方式来分,数据可分为常量和变量。
3·1VisualFoxpro常用数据类型P37表3-1
3·2常量与变量
在程序运行过程中,我们把需要处理的数据存放在内存中,称始终保持不变的数据为“常量”,称存放可变数据的存储单元为“变量”,其中的数据称为变量的值。
一、常量是一个具体的数据项,在整个操作过程中其值保持不变。
VFP支持以下6种类型的常量。
1·数值型常量
2·货币型常量
前置的符号($),采用4位小数。
3·字符型常量
单引号、双引号或方括号称为定界符。
4·日期型常量
定界符是一对花括号。
1)传统的日期格式{mm-dd-yy}
2)严格的日期格式
{^yyyy-mm-dd}
设置不同的日期格式
1)在命令窗口键入如下4条命令,并分别回车执行:
SETCENTURYON&&设置4位数字年份
SETMARKTO&&恢复系统默认的斜杠日期分配符
SETDATETOYMD&&设置年月日格式
?
{^2002-11-26}
2)在命令窗口键入如下4条命令,并分别回车执行:
SETCENTURYOFF&&设置2位数字年份
SETMARKTO"."&&设置日期分隔符为西文句号
SETDATETOMDY&&设置月日年格式格式
?
{^2002-11-26}
5·日期时间型常量
在命令窗口键入如下2条命令,并分别回车执行:
SETHOURSTO24
?
{^2002-11-268:
30:
00P}
6·逻辑型常量
只有“真”和“假”两种值,通常用.T.表示逻辑真,用.F.表示逻辑假。
注意T和F两边的圆点不可少,否则会出错。
二、变量
1·字段变量
2·简单内存变量(系统内存变量)
3·数组变量
定义:
DIMENSION<数组名>(<下标上限1>[,<下标上限2>])[,……]
DECLARE<数组名>(<下标上限1>[,<下标上限2>])[,…¨刀
例DIMENSIONa(3),b(2,3)
此例定义了一个一维数组a,并且有3个元素,分别为a
(1),a
(2),a(3);
数组b为二维数组,分别是b(1,1),b(1,2),b(1,3),b(2,1),b(2,2),b(2,3)。
数组一旦被定义后没个元素的初值为逻辑假,可以使用赋值命令给不同的元素赋不同的数据类型的值。
三、内存变量常用命令
内存的命名规则:
以字母(可以用汉字做变量名,但不提倡)开头,只能由字母、数字、或下划线组成。
1·内存变量的赋值
格式l:
STORE〈表达式〉TO〈变量名表〉
格式2:
〈内存变量名〉=〈表达式〉
2·表达式值的显示
格式1:
?
[〈表达式表〉]
格式2:
?
?
〈表达式表〉
第1条命令把结果在下一行最左边的位置输出;第2条则将结果在光标的当前位置输出。
3·内存变量的显示
格式l:
LISTMEMORY[LIKE<通配符>][TOPRINTER/TOFILE<文件名>]
格式2:
DISPLAYMEMORY[LIKE<通配符>][TOPRINTER/TOFILE<文件名>]
通配符当中“?
”代表内存变量中的任意一个字符。
“*”代表内存变量中的任意一个或多个字符。
4·内存变量的删除
格式1:
CLEARMEMORY
格式2:
RELEASE〈内存变量名表〉
格式4:
RELEASEALL[LIKE〈通配符〉]
例:
在命令窗口中依次输入下列命令,命令格式及屏幕显示如下:
CLEARMEMORY
DIMENSIONy(2,2)
STORE‘xxx’TOx1,y(1,1)
y(3)={^2002-11-23}
x2=$123.23
DISPLAYMEMOLIKEy*
RELEASEALLLIKEy*
X={^2002-11-23,11:
30p}
DISPLAYMEMOLIKEX
RELEASEX
3·3常用函数
函数是用程序来实现的一种数据运算或转换。
每一个函数都有特定的数据运算或转换功能,它往往需要若干个自变量,即运算对象,但只能有一个运算结果,称为函数值或返回值。
VFP中的函数有两种,用户自定义函数和系统函数。
函数可用函数名加一对圆括号加以调用,自变量放在圆括号里,如LEN(x)。
函数调用可以出现在表达式里,表达式将函数的返回值作为自己运算的对象。
一、数值函数P45表3-2
数值函数是指函数值为数值的一类函数,它们的自变量和返回值往往都是数值型数据。
1·绝对值和符号函数
ABS(<数值表达式>)返回指定的数值表达式的绝对值
SIGN(<数值表达式>)返回指定数值表达式的符号。
当表达式的运算结果为正、负和零时,函数值分别为1、-1和0。
例:
STORE10TOX
?
ABS(5-X),ABS(X-5),SIGN(5-X),SIGN(X-10)
2·求平方根函数
SQRT(<数值表达式>)返回指定表达式的平方根。
表达式的值不能为负。
例:
?
SQRT
(2),
(2)^(1/2)
STORE–100TOX
?
SIGN(X)*SQRT(ABS(X))
3·圆周率函数
PI()返回圆周率π(数值型),该函数没有自变量。
4·求整数函数*
INT(<数值表达式>)返回指定数值表达式的整数部分
CEILING(<作数值表达式>)返回大于或等于指定数值表达式最小整数。
FLOOR(<数值表达式>)返回小于或等于指定数值表达式最大整数。
例:
STORE5.8TOX
?
INT(X),INT(-X),CEILING(X),CEILING(-X),FLOOR(X),FLOOR(-X)
5·四舍五入函数*
ROUND(<数值表达式1>,<数值表达式2>)
返回指定表达式在指定位置四舍五入后的结果。
<数值表达式2>指明四舍五入的位置。
若
<数值表达式2>大于等于0,表示要保留的小数位数
<数值表达式2>小于0,表示整数部分的舍入位数。
例:
X=345.345
?
ROUND(X,2),ROUND(X,1),ROUND(X,0),ROUND(X,-1)
6·求余数函数*
MOD(<数值表达式l>,<数值表达式2>)
返回两个数值相除后的余数。
<数值表达式1>是被除数,<数值表达式2>是除数。
函数返回值的符号与<数值表达式2>相同。
例:
?
MOD(10,3),MOD(10,-3),MOD(-10,3),MOD(-10,-3)
7·求最大值和最小值函数
MAX(<数值表达式l>,<数值表达式2>[,<数值表达式3>,……])
计算各自变量表达式的值,并返回其中的最大值。
MIN(<数值表达式l>,<数值表达式2>[,<数值表达式3>,……])
计算各自变量表达式的值,并返回其中的最小值。
自变量表达式的类型可以是数值型、字符型、货币型、双精度型、浮点型、日期时间型,但所有表达式的类型必须相同。
例:
?
MAX("2","12","05"),MAX(2,12,05),MIN("汽车","飞机","轮船")
?
MAX({^2005-05-10},{^2004-12-03},{^2006-01-01})
8·随机函数RAND()
反回一个0~1的随机数,其值不确定。
二、字符函数P46表3-3
指自变量一般是字符型数据的函数。
1·求字符串长度函数
LEN(〈字符表达式〉)
返回指定字符表达式值的长度,即所包含的字符个数(一个汉字占两个字符)。
函数值为数值型。
例:
X="中文visualFoxPro6.0"
?
LEN(X)
2·大小写转换函数
LOWER(<字符表达式>)大写字母转换成小写字母,其他字符不变
UPPER(<字符表达式>)小写字母转换成大写字母,其他字符不变
例:
?
LOWER(‘Xly2A*’),UPPER(‘n=l’)
3·空格字符串生成函数
SPACE(<数值表达式>)返回由指定数目的空格组成的字符串。
?
”ab”+SPACE(3)+”cd”
4·删除前后空格函数*
TRIM(〈字符表达式〉)返回字符表达式值去掉尾部空格后形成字符串。
LTRIM(〈字符表达式〉)返回字符表达式值去掉前导空格后形成字符串。
ALLTRIM(〈字符表达式〉返回字符表达式值去掉前导和尾部空格后形成
的字符串。
例:
STORESPACE
(1)+"TEST"+SPACE(3)TOSS
?
TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)
TESTTESTTEST
?
LEN(SS),LEN(TRIM(SS)),LEN(LTRIM(SS)),LEN(ALLTRIM(SS))
5·取子串函数*
LEFT(〈字符表达式〉,〈长度〉)
从表达式值的左端取一个指定长度的子串作为函数值
RIGHT(〈字符表达式〉,〈长度〉)
从表达式值的右端取一个指定长度的子串作为函数值
SUBSTR(〈字符表达式〉,〈起始位置〉[,<长度>])
从表达式值的指定起始位置取指定长度的子串作为函数值,若缺省第三
个自变量之长度,,则从指定位置一直取到最后一个字符。
例:
STORE"GOODBYE!
"TOX
?
LEFT(X,2),SUBSTR(X,6,2)+SUBSTR(X,6),RIGHT(X,3)
6·计算子串出现次数函数*
OCCURS(<字符表达式1>,<字符表达式2>)
返回第一个字符串在第二个字符串中出现的次数,函数值为数值型,若第一个字符串不是第二个字符串的子串,函数值为0。
例:
STORE‘abracadabra’TOS
?
OCCURS('a',S),OCCURS('b',S),OCCURS('c',S),OCCURS('e',S)
7·求子串位置函数*
AT(〈字符表达式1〉,〈字符表达式2〉[,<数值表达式>])
ATC(〈字符表达式1〉,〈字符表达式2〉[,<数值表达式>])
函数值为数值型。
如果<字符表