数据类型表达式和函数.ppt
《数据类型表达式和函数.ppt》由会员分享,可在线阅读,更多相关《数据类型表达式和函数.ppt(161页珍藏版)》请在三一办公上搜索。
1、封面,第二章 数据类型表达式和函数,1 常量与变量,2.运算符与表达式,3.常用函数,2.1 常量与变量,2.1.1 常量,常量是指操作过程中其值固定不变的数据,是一个具体的数据内容。例如字符串、常数或具体的日期。,数值型常数,由数字0-9、小数点及正负号构成可用科学计数法表示:1.2345E+3表示1.2345103,即1234.5;2.45E-4表示2.4510-4,即0.000245,货币型常数,货币型常量表示货币在数值前加上一个货币符号($)。货币型常量在存储和计算时,采用4位小数。当货币型常量超过4位小数时,多余的小数位将四舍五入,字符常数,字符型常量是用英文的单引号、双引号或方括号
2、括起来的一串字符,也称为字符串。字符可以是英文字母、数字、标点符号等所有ASCII码字符及汉字。例如:湖南长沙、0731-8821234、smith都是字符串。,字符常数,单引号、双引号或方括号是字符串的定界符,它们用来规定字符串的起始和终止界限,不作为字符串本身的内容。字符串的定界符必须成对匹配,即当一边以单引号作为定界符时,另一边也必须以单引号作为定界符。此外,如果字符串本身含有作为定界符的字符,则必须用另一种符号作为定界符。,字符常数,字符串的长度是指字符串中所含字符的个数,其中,每个汉字相当于2个字符。字符串的最大长度不能超过254。只有定界符没有任何字符的字符串称为空串,其长度为0。
3、,日期型常数,默认情况下,日期型常量要使用严格的日期格式yyyy-mm-dd。以花括号 作为定界符,花括号内第一个符号是,年份必须为四位,年月日的次序不能颠倒或缺省。年月日的分隔符可以为/(斜杠)、_(下划线)、.(圆点)或空格。例如,2008-8-1 2008/08/01 2008.8.1 2008 8 1均表示2008年8月1日。,日期型常数,若要设置传统的日期格式,则应执行SET STICTDATE TO 0命令。默认用mm/dd/yy或mm/dd/yyyy表示日期常量。例如,6/25/08或6/25/2008均表示2008年6月25日。若要恢复为严格的日期格式,执行SET STICTD
4、ATE TO 1命令,提示,本书在介绍命令时,约定方括号中的内容表示可选,竖杠|分隔的内容表示任选其一,尖括号中的内容由用户提供。,SET DATE TO AMERICAN|ANSI|BRITISH|FRENCH|GERMAN|ITALIAN|JAPAN|USA|MDY|DMY|YMD,设置日期的显示格式,缺省格式为AMERICAN,即mm/dd/yy。,设置日期显示的格式,设置日期格式的参数,SET CENTURY ON/OFF,设置显示日期时是否显示世纪值。当使用ON,显示世纪值,即年号以4位显示;使用OFF,不显示世纪值,即年号以2位显示。,设置是否显示世纪值,SET CENTURY O
5、FF&设置2位数字年份SET DATE TO YMD&设置年月日格式?2008-6-1&显示结果为08/06/01SET STRICTDATE TO 0&设置不进行严格的日期格式检查SET CENTURY ON&设置4位数字年份SET DATE TO DMY&设置日月年格式?2008-6-1,1/7/08&显示结果为01/06/2008和01/07/2008,例题,日期时间型常数,日期时间型常量包括日期和时间两部分日期,时间。日期部分的格式和日期型常量相似,时间部分的格式为HH:MM:SS A|P。HH、MM、SS分别表示时、分、秒,A、P分别表示上午和下午。时、分、秒可以缺省,默认值为12、
6、0、0。A、P可以缺省,默认为上午。注意:日期和时间之间必须用逗号或空格隔开。,2008-6-1,表示2008年6月1日上午12点(午夜)时间部分可以采取24小时制,当时间大于或等于12,则自然表示下午。例如,2008-6-1 1:20:30 P和2008-6-1 13:20:30均表示2008年6月1日下午1点20分30秒,日期时间型常数,区域选项卡,设置日期格式,逻辑常数,逻辑型常量只有逻辑真和逻辑假两个值。逻辑真值用.t.,.T.,.y.,.Y.表示,逻辑假值用.f.,.F.,.n,.N.表示注意:圆点作为逻辑型常量的定界符,必不可少。,2.1.2 内存变量,分为字段变量和内存变量内存变
7、量:独立于数据表而存在,通常用来存放命令操作或程序运行过程中的一些中间结果。内存变量的值在操作过程中可以被改变。退出VFP后,内存变量将被自动释放。,变量命名规则,变量名以字母、汉字或下划线开头,由数字、字母、汉字或下划线组成。名称最长可达254个字符。A、Class_2、年龄 合法的变量名3Grade、b*非法的变量名 不要使用VFP的保留字作为变量名。,=STORE TO,计算表达式的值,再将该值赋给内存变量。,内存变量的赋值,等号=一次只能给一个变量赋值,Store可同时给多个变量赋同一个值。多个变量之间用逗号隔开。简单变量赋值时无需事先声明或定义。当变量被赋值时,若该变量此时还不存在,
8、系统将建立此变量,即在内存中为其定义一个存储区域。变量的值和数据类型由最后赋予它的表达式决定。当变量被重新赋值时,其值发生改变。若新值为其他数据类型,则变量的数据类型也相应地发生改变。,内存变量的赋值,n1=3&把数值3赋给内存变量n1,n1是数值型内存变量,name=王波&把字符串赋给内存变量name,name是字符型内存变量,例题,store 2008/6/1 to 日期1,日期2&把日期常量2002年9月12日同时赋给内存变量日期1和日期2,日期1和日期2是日期型内存变量,l=.t.&把逻辑真值.t.赋给内存变量l,l是逻辑 型内存变量,n2=n1&计算表达式n1的值为3,将n2赋值为3
9、n1的值不受影响n2=n2+1&计算表达式n2+1的值为4,将n2赋值为4n2=n2+1&将字符串n2+1赋值给变量n2,n2是字符型内存变量,例题,?,计算表达式的值,将其显示在窗口工作区。?命令首先换行,在当前行的下一行显示表达式的值。?命令不换行,在当前行的光标处显示表达式的值。?/?可接多个表达式,表达式之间用逗号隔开。,显示表达式的值,?n1=,n1&n1=为字符型常量,n1为变量,窗口工作区显示n1=3?n2&窗口工作区另起一行,显示n2+1?name&窗口工作区在n2+1的后面显示王波,例题,LIST/DISPLAY MEMORY LIKE TO PRINTER|TO FILE,
10、显示内存变量的当前信息,包括变量名、作用域、类型、取值。,内存变量的显示,使用LIST MEMORY,在屏幕上以滚动方式显示,不分屏显示;使用DISPLAY MEMORY,分屏显示,即显示了一屏后,显示暂停,提示“按任意键继续”,按下任意键后,继续显示下一屏。,内存变量的显示,LIKE 通配符表示只显示与通配符相匹配的内 存变量。通配符*表示任一串字符,?表示任一个字符。VFP有74个系统变量。如果用户只要求显示所有自定义变量,可以使用命令DISPLAY MEMORY LIKE*。,内存变量的显示,TO PRINTER子句,表示将显示的信息同时送打印机打印。TO FILE 子句,表示将显示的信
11、息存入指定的文本文件,文件的扩展名为txt。,内存变量的显示,display memo like*&显示用户定义的全部内存变量display memo like n*&显示以字母n开头的所有内存变量,即n1,name和n2 display memo like n?&显示以字母n开头,且名称不多于两个字符组成的内存变量 即n1和n2,例题,RELEASE,清除内存变量,内存变量的清除,RELEASE ALL LIKE|EXCEPT,CLEAR MEMORY,提示,在输入命令时,命令中的保留字可只输入前4个字符。例如display memory 可简化为disp memo,CLEAR MEMORY
12、和RELEASE ALL清除内存中所有内存变量。RELEASE内存变量名表清除指定的内存变量。使用LIKE子句,清除符合通配符的变量;使用EXCEPT子句,清除不符合通配符的变量。,内存变量的清除,Release 日期1,日期2&清除变量日期1和日期2Release all like n*&清除所有变量名以n开始的变量,即n1,n2和name。Disp memo like*&此时,显示的变量有l,例题,2.1.3 数组,内存变量又分为简单内存变量和数组。每一个简单变量只占用内存中的一个存储区域,存储一个值。而一个数组在内存中占用连续的一组存储区域,由多个数组元素组成。每个数组元素占用一个存储区
13、域,相当于一个简单变量。用户通过数组名和下标来访问数组元素。,DIMENSION(,),DECLARE(,),DIMENSION和DECLARE两种命令的功能相同,定义多个一维数组或二维数组数组的下标下限规定为1,一维数组的元素个数为下标上限1,二位数组的元素个数为下标上限1*下标上限2。,数组的创建,DIMENSION m(4),n(2,3)命令定义了数组m和n。&m是一维数组,4个数组元素:m(1)、m(2)、m(3)、m(4)。&n是二维数组,有6个数组元素:n(1,1)、n(1,2)、n(1,3)、n(2,1)、n(2,2)、n(2,3)。可以用一维数组的形式访问二维数组。例如二维数组
14、n如果用一维数组表示,依次为n(1)、n(2)、n(3)、n(4)、n(5)、n(6)。即n(4)和n(2,1)是同一个数组元素。,例题,数组创建后,系统自动给每个元素赋以逻辑值假。通过对数组名赋值,可以将同一个值同时赋给全部的数组元素。每个数组元素可分别赋值,同一数组中各数组元素类型可以不同,数组的赋值,DIMENSION m(4),n(2,3)&定义了一维数组m和二维数组n。?m(1),n(1,1)&数组创建后,每个数组元素的初值为逻辑值假。m=5&通过对数组名赋值将所有数组元素赋值为5?m(1),m(2),m(3),m(4)n(1,1)=1n(1,2)=中国n(1,3)=2008/10/
15、1&每个数组元素可分别赋值,数据类型可以不同,例题,2.2 运算符与表达式,表达式是由常量、变量、函数通过特定的运算符连结起来的有意义的式子。每一个表达式经过运算,将得到一个具体的结果,称为表达式的值。,n1*0.85+sqrt(9),表达式,根据表达式值的类型,可将表达式分为数值表达式、字符表达式、日期表达式和逻辑表达式。单个的常量、变量和函数,也可以看作一种特殊的表达式。,2.2.1 数值型表达式,()*或(乘方)2*4表示24 值为16*/%(求余)10%3表示10除3的余数值为1+,算数运算符,?1+52*2&结果为51。首先进行乘方运算,再进行乘法运算,最后进行加法。,例题,?(2*
16、32+1.2)/(4+4/5)&对于某些数学算式,注意利用括号来改变优先级,例题,对于求余运算,余数的正负号与除数相同?10%3,10%(-3),-10%3,-10%-3&结果为1,-2,-1,2,4,余数为-2,-3,余数为1,&表达式的值为-2,2.2.2 字符型表达式,连接运算符+号:将前后两个字符串连接起来,形成一个新的字符串。号:将前后两个字符串连接起来,若第一个字符串的尾部有空格,则将空格移到合并后字符串的尾部,其他位置的空格不改变位置。,字符型运算符,?“This“+”is”&表达式的结果为“This is”保留前一字符串的尾部空格?“This“-”is”&表达式的结果为“Thi
17、sis”将前一字符串的尾部空格移到最后?“This is“-”a book”&表达式的结果为“This isa book”,例题,?“2+3”,2+3,“2”+“3”&字符常量2+3 2与3相加为5 字符2连接字符3结果为23,例题,2.2.3 日期型表达式,日期1+天数 日期2 或天数+日期1 日期2 将日期向后推整数的天数得到新的日期,日期1天数 日期2将日期向前推整数的天数得到新的日期,日期1日期2 整数+1将两个日期相减得到相差的天数排在后面的日期大于排在前面的日期,日期型运算符,日期时间1+秒数 日期时间2 秒数+日期时间1 日期时间2 将日期时间向后推整数的秒数得到新的日期时间,日
18、期时间1秒数 日期时间2 将日期时间向前推整数的秒数得到新的日期时间,日期时间1日期时间2 整数+1将两个日期时间相减得到相差的秒数排在后面的日期大于排在前面的日期,日期型运算符,?2008/10/1+7&表达式的值为2008/10/8,将2008年10月1日向后推7天?2008/10/1-7&表达式的值为2008/9/24,将2008年10月1日向前推7天?2008/10/1-2008/5/1&表达式的值为153,两个日期相差的天数,例题,?2008-8-8 8 am+10000&表达式的值为2008年8月8日8点46分40秒,将2008年8月8日上午8时向后推10000秒的时间,例题,注意
19、:+和-运算符必须遵循以上规则。例如,日期+日期就是一个非法的表达式。,2.2.4 逻辑型表达式,大于=大于等于 或!=或#不等于$子串包含测试=精确等于,比较两个类型相同的数据(数值型、货币型、字符型、日期型、逻辑型)是否符合关系运算符规定的关系,若符合,返回逻辑真值,否则返回逻辑假值,关系型运算符,两个数值型数据或货币型数据比较时,按数值的大小比较。两个日期型数据比较时,越早的日期越小,越晚的日期越大。两个逻辑型数据比较时,逻辑真值.T.大于逻辑假值.F.。,关系型运算符,?1214&表达式的结果为逻辑假值.F.?5=5&表达式的结果为逻辑真值.T.=即大于或等于?5!=5&表达式的结果为
20、逻辑假值.F.,例题,?2008/5/12008/10/1&表达式的结果为.F.&因为2008年10月1日晚于2008年5月1日,故2008/10/1大于2008/5/1?(98).F.&表达式的值为.T.&因为98的结果为逻辑真值.T.,大于逻辑假值.F.。,例题,字符型数据比较时,先比较第一个字符的大小,若第一个字符大,则该串大;若第一个字符相同,则比较第二个字符,直到比较出大小,字符的比较次序,VFP规定了Machine机内码、PinYin拼音、Storke笔画三种字符的排序次序,默认为拼音次序。PinYin拼音次序:汉字按照拼音顺序排列。西文字符中空格最小,小写abcd字母序列排在前面
21、,大写ABCD字母序列排在后面。Machine机内码次序:汉字按照国标码顺序排列;西文字符按照字符的ASCII码值大小排列。Storke笔画次序:无论中文西文,按笔划多少的顺序排列。,字符的比较次序,数据选项卡,字符的排序次序,SET COLLATE TO,次序名为“MACHINE”或“PINYIN”或“STROKE”,字符比较次序,SET COLLATE TO MACHINE&按机内码排序?acbabc,a江苏&表达式的值为.T.F.T.SET COLLATE TO PINYIN&按拼音排序?acbabc,a江苏&表达式的值为.T.T.T.SET COLLATE TO STROKE&按笔画排
22、序?acbabc,a江苏&表达式的值为.T.T.F.,例题,运算符=只能用于字符型数据的运算,当=两旁的字符串完全相同时,返回逻辑真值,否则返回逻辑假值。,字符型精确比较与EXACT设置,使用等于运算符=比较两个字符串时,运算结果与SET EXACT ON|OFF设置有关。系统默认EXACT状态为OFF。若=两旁字符串的字符个数不同,则只要=右边字符串与=左边字符串的前面部分相同,结果就为.T.。当设置EXACT状态为ON时,若=两旁字符串的字符个数不同,系统将在较少字符的字符串尾部添加空格,使两个字符串字符个数相同,再来进行比较。在“选项”对话框的“数据”选项卡,可设置EXACT状态。,字符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型 表达式 函数
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6185955.html