1 / 161

第二章 数据类型表达式和函数

封面. 第二章 数据类型表达式和函数. 1 常量与变量. 2. 运算符与表达式. 3. 常用函数. 2.1 常量与变量. 2.1.1 常量. 常量 是指操作过程中其值固定不变的数据,是一个具体的数据内容。 例如字符串、常数或具体的日期。. 数值型常数. 由数字 0-9 、小数点及正负号构成 可用科学计数法表示 : 1.2345E+3 表示 1.2345×103 ,即 1234.5 ; 2.45E-4 表示 2.45×10-4 ,即 0.000245. 货币型常数. 货币型常量表示货币在数值前加上一个货币符号 ($) 。

giulia
Download Presentation

第二章 数据类型表达式和函数

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 封面

  2. 第二章 数据类型表达式和函数 1 常量与变量 2. 运算符与表达式 3. 常用函数

  3. 2.1 常量与变量

  4. 2.1.1 常量 常量是指操作过程中其值固定不变的数据,是一个具体的数据内容。例如字符串、常数或具体的日期。

  5. 数值型常数 • 由数字0-9、小数点及正负号构成 • 可用科学计数法表示:1.2345E+3表示1.2345×103,即1234.5;2.45E-4表示2.45×10-4,即0.000245

  6. 货币型常数 • 货币型常量表示货币在数值前加上一个货币符号($)。 • 货币型常量在存储和计算时,采用4位小数。当货币型常量超过4位小数时,多余的小数位将四舍五入

  7. 字符常数 • 字符型常量是用英文的单引号、双引号或方括号括起来的一串字符,也称为字符串。 • 字符可以是英文字母、数字、标点符号等所有ASCII码字符及汉字。 • 例如:’’湖南长沙’’、’0731-8821234’、[smith]都是字符串。

  8. 字符常数 • 单引号、双引号或方括号是字符串的定界符,它们用来规定字符串的起始和终止界限,不作为字符串本身的内容。 • 字符串的定界符必须成对匹配,即当一边以单引号作为定界符时,另一边也必须以单引号作为定界符。 • 此外,如果字符串本身含有作为定界符的字符,则必须用另一种符号作为定界符。

  9. 字符常数 • 字符串的长度是指字符串中所含字符的个数,其中,每个汉字相当于2个字符。字符串的最大长度不能超过254。 • 只有定界符没有任何字符的字符串称为空串,其长度为0。

  10. 日期型常数 • 默认情况下,日期型常量要使用严格的日期格式{^yyyy-mm-dd}。 • 以花括号{ }作为定界符,花括号内第一个符号是^,年份必须为四位,年月日的次序不能颠倒或缺省。 • 年月日的分隔符可以为/(斜杠)、_(下划线)、.(圆点)或空格。例如,{^2008-8-1} {^2008/08/01} {^2008.8.1} {^2008 8 1}均表示2008年8月1日。

  11. 日期型常数 • 若要设置传统的日期格式,则应执行SET STICTDATE TO 0命令。 • 默认用{mm/dd/yy}或{mm/dd/yyyy}表示日期常量。例如,{6/25/08}或{6/25/2008}均表示2008年6月25日。 • 若要恢复为严格的日期格式,执行SET STICTDATE TO 1命令

  12. 提示 • 本书在介绍命令时,约定方括号[]中的内容表示可选,竖杠|分隔的内容表示任选其一,尖括号<>中的内容由用户提供。

  13. 设置日期显示的格式 SET DATE TO [AMERICAN |ANSI |BRITISH| FRENCH|GERMAN|ITALIAN|JAPAN|USA| MDY|DMY|YMD] 设置日期的显示格式 ,缺省格式为AMERICAN,即mm/dd/yy。

  14. 设置日期格式的参数

  15. 设置是否显示世纪值 SET CENTURY ON/OFF 设置显示日期时是否显示世纪值。当使用ON,显示世纪值,即年号以4位显示;使用OFF,不显示世纪值,即年号以2位显示。

  16. 例题 SET CENTURY OFF&&设置2位数字年份 SET DATE TO YMD&&设置年月日格式 ?{^2008-6-1}&&显示结果为08/06/01 SET STRICTDATE TO 0 &&设置不进行严格的日期格式检查 SET CENTURY ON&&设置4位数字年份 SET DATE TO DMY&&设置日月年格式 ? {^2008-6-1},{1/7/08} &&显示结果为01/06/2008和01/07/2008

  17. 日期时间型常数 • 日期时间型常量包括日期和时间两部分{日期,时间}。 • 日期部分的格式和日期型常量相似,时间部分的格式为HH:MM:SS [A|P]。HH、MM、SS分别表示时、分、秒,A、P分别表示上午和下午。 • 时、分、秒可以缺省,默认值为12、0、0。A、P可以缺省,默认为上午。 • 注意:日期和时间之间必须用逗号或空格隔开。

  18. 日期时间型常数 {^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秒

  19. 工具(T) 选项(O) 设置日期格式 区域选项卡

  20. 逻辑常数 • 逻辑型常量只有逻辑真和逻辑假两个值。 • 逻辑真值用.t.,.T.,.y.,.Y.表示,逻辑假值用.f.,.F.,..n,.N. 表示 • 注意:圆点作为逻辑型常量的定界符,必不可少。

  21. 2.1.2 内存变量 • 分为字段变量和内存变量 • 内存变量:独立于数据表而存在,通常用来存放命令操作或程序运行过程中的一些中间结果。 • 内存变量的值在操作过程中可以被改变。退出VFP后,内存变量将被自动释放。

  22. 变量命名规则 变量名以字母、汉字或下划线开头,由数字、字母、汉字或下划线组成。名称最长可达254个字符。A 、Class_2、年龄 合法的变量名3Grade、b* 非法的变量名 不要使用VFP的保留字作为变量名。

  23. 内存变量的赋值 <内存变量>=<表达式> STORE <表达式> TO<内存变量列表> 计算表达式的值,再将该值赋给内存变量。

  24. 内存变量的赋值 • 等号=一次只能给一个变量赋值,Store可同时给多个变量赋同一个值。多个变量之间用逗号隔开。 • 简单变量赋值时无需事先声明或定义。当变量被赋值时,若该变量此时还不存在,系统将建立此变量,即在内存中为其定义一个存储区域。 • 变量的值和数据类型由最后赋予它的表达式决定。当变量被重新赋值时,其值发生改变。若新值为其他数据类型,则变量的数据类型也相应地发生改变。

  25. 例题 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是逻辑 型内存变量

  26. 例题 n2=n1 &&计算表达式n1的值为3,将n2赋值为3 n1的值不受影响 n2=n2+1 &&计算表达式n2+1的值为4,将n2赋值为4 n2=‘n2+1’ &&将字符串n2+1赋值给变量n2, n2是字符型内存变量

  27. 显示表达式的值 ? [<表达式表> ] ?? [<表达式表> ] 计算表达式的值,将其显示在窗口工作区。 ?命令首先换行,在当前行的下一行显示表达式的值。 ??命令不换行,在当前行的光标处显示表达式的值。 ?/??可接多个表达式,表达式之间用逗号隔开。

  28. 例题 ?’n1=’,n1 &&’n1=’为字符型常量,n1为变量,窗口工作区显示n1=3 ?n2 &&窗口工作区另起一行,显示n2+1 ??name &&窗口工作区在n2+1的后面显示王波

  29. 内存变量的显示 LIST/DISPLAY MEMORY [ LIKE <通配符>] [ TO PRINTER| TO FILE <文件名>] 显示内存变量的当前信息,包括变量名、作用域、类型、取值。

  30. 内存变量的显示 • 使用LIST MEMORY,在屏幕上以滚动方式显示,不分屏显示; • 使用DISPLAY MEMORY,分屏显示,即显示了一屏后,显示暂停,提示“按任意键继续”,按下任意键后,继续显示下一屏。

  31. 内存变量的显示 • LIKE通配符表示只显示与通配符相匹配的内 存变量。通配符*表示任一串字符,?表示任一个字符。 • VFP有74个系统变量。如果用户只要求显示所有自定义变量,可以使用命令DISPLAY MEMORY LIKE *。

  32. 内存变量的显示 TO PRINTER子句,表示将显示的信息同时送打印机打印。 TO FILE <文件名>子句,表示将显示的信息存入指定的文本文件,文件的扩展名为txt。

  33. 例题 display memo like * &&显示用户定义的全部内存变量 display memo like n* &&显示以字母n开头的所有内存变量,即n1,name和n2 display memo like n?&&显示以字母n开头,且名称不多于两个字符组成的内存变量 即n1和n2

  34. 内存变量的清除 CLEAR MEMORY RELEASE <变量名表>] RELEASE <变量名表>] ALL[LIKE <通配符>| EXCEPT<通配符>] 清除内存变量

  35. 提示 • 在输入命令时,命令中的保留字可只输入前4个字符。例如display memory 可简化为disp memo

  36. 内存变量的清除 • CLEAR MEMORY和RELEASE ALL清除内存中所有内存变量。 • RELEASE内存变量名表清除指定的内存变量。 • 使用LIKE子句,清除符合通配符的变量;使用EXCEPT子句,清除不符合通配符的变量。

  37. 例题 Release 日期1,日期2 &&清除变量日期1和日期2 Release all like n* &&清除所有变量名以n开始的变量,即n1,n2和name。 Disp memo like * &&此时,显示的变量有l

  38. 2.1.3 数组 • 内存变量又分为简单内存变量和数组。 • 每一个简单变量只占用内存中的一个存储区域,存储一个值。 • 而一个数组在内存中占用连续的一组存储区域,由多个数组元素组成。每个数组元素占用一个存储区域,相当于一个简单变量。用户通过数组名和下标来访问数组元素。

  39. 数组的创建 DIMENSION <数组名>(<下标上限1>[, <下标上限2>])[,……] DECLARE <数组名>(<下标上限1>[, <下标上限2>])[,……] DIMENSION和DECLARE两种命令的功能相同,定义多个一维数组或二维数组 数组的下标下限规定为1,一维数组的元素个数为下标上限1,二位数组的元素个数为下标上限1*下标上限2。

  40. 例题 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)。 可以用一维数组的形式访问二维数组。例如二维数组n如果用一维数组表示,依次为n(1)、n(2)、n(3)、n(4)、n(5)、n(6)。即n(4)和n(2,1)是同一个数组元素。

  41. 数组的赋值 • 数组创建后,系统自动给每个元素赋以逻辑值假。 • 通过对数组名赋值,可以将同一个值同时赋给全部的数组元素。 • 每个数组元素可分别赋值,同一数组中各数组元素类型可以不同

  42. 例题 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)=1 n(1,2)=‘中国’ n(1,3)={^2008/10/1} &&每个数组元素可分别赋值,数据类型可以不同

  43. 运算符 变量 常量 函数 2.2 运算符与表达式 • 表达式是由常量、变量、函数通过特定的运算符连结起来的有意义的式子。 • 每一个表达式经过运算,将得到一个具体的结果,称为表达式的值。 n1*0.85 + sqrt(9)

  44. 表达式 • 根据表达式值的类型,可将表达式分为数值表达式、字符表达式、日期表达式和逻辑表达式。 • 单个的常量、变量和函数,也可以看作一种特殊的表达式。

  45. 2.2.1 数值型表达式

  46. 先 级 算数运算符 ( ) **或^ (乘方) 2**4表示24 值为16 * / %(求余) 10%3表示10除3的余数值为1 + —

  47. 用表达式表示 2*32 +1.2 4+ 4 5 例题 ?1+5^2*2 &&结果为51。首先进行乘方运算,再进行乘法运算,最后进行加法。 ?(2*3^2+1.2)/(4+4/5) &&对于某些数学算式,注意利用括号来改变优先级

  48. -3 10 -3 10 例题 对于求余运算,余数的正负号与除数相同 ? ?10%3,10%(-3),-10%3,-10%-3 &&结果为1,-2,-1,2 4 -3 余数为1 余数为-2 &&表达式的值为-2

  49. 2.2.2 字符型表达式

  50. 字符型运算符 连接运算符 +号:将前后两个字符串连接起来,形成一个新的字符串。 —号:将前后两个字符串连接起来,若第一个字符串的尾部有空格,则将空格移到合并后字符串的尾部,其他位置的空格不改变位置。

More Related