1 / 55

第二章 数据与数据运算

第二章 数据与数据运算. 第一节 数据类型 第二节 常量、变量与数组 第三节 运算符与表达式 第四节 常用函数. 学习目标之一. 知识目标 1 、掌握 VFP 的数据类型,应用范围 2 、熟练掌握各种类型常量的表示方法 3 、掌握变量的概念、声明、类型与使用 4 、明确 VFP 的运算符与表达式的构成,理解表达式的运算顺序 5 、理解函数的概念,函数的使用方法,熟悉典型的函数的运用 6 、理解数组的概念,数组的定义,数组的使用. 学习目标之二. 技能目标 1 、会根据不同的数据选择合适的数据类型

talisa
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、掌握VFP的数据类型,应用范围 • 2、熟练掌握各种类型常量的表示方法 • 3、掌握变量的概念、声明、类型与使用 • 4、明确VFP的运算符与表达式的构成,理解表达式的运算顺序 • 5、理解函数的概念,函数的使用方法,熟悉典型的函数的运用 • 6、理解数组的概念,数组的定义,数组的使用

  3. 学习目标之二 • 技能目标 • 1、会根据不同的数据选择合适的数据类型 • 2、能够理解变量与数学中的变量的区别与联系,会将一般的数学表达式转换成为合法的VFP表达式 • 3、会根据不同的要求选择不同的函数 • 4、学会利用VFP来完成数据处理的实验

  4. 重点与难点 • 一、学习重点 • 1、数据类型及其选用 • 2、常量的表示,变量的定义与应用 • 3、各种运算符的规则,表达式 • 4、数组的定义与使用 • 5、常用函数的功能与应用 • 二、学习难点 • 1、数组的定义与使用 • 2、函数的调用与返回值 • 3、复杂表达式的运算

  5. 第一节 数据类型 • 1. 数据类型 • 数据类型:数据对象的取值集合,以及对之可施行的运算集合。 • 数据结构的种类 • 说明一个数据在数据分类中的归属 • 数据的一种属性。 • 数据类型种类 • 简单的数据类型 • 构造的数据类型 • 用户自定义的数据类型 • VFP中数据类型:变量数据类型、字段数据类型

  6. 第一节 数据类型 • 2、VFP中的数据类型 • (1)字符型(Character) 可变 • (2)数值型(Numberic) 可变 • (3)货币型(Currency Y) 8 • (4)日期型(Date) 8 • (5)日期时间型(DateTime) 8 • (6)逻辑型(Logic) 1 • (7)浮点型(Float) 可变 • (8)双精度型(Double) 8 • (9)整型(Integer) 4 • (10)备注型(Memo) 4 • (11)通用型(General) 4

  7. 第一节 数据类型 • 3、VFP数据类型说明 • 前6种为通用的数据类型,后5种仅用于表 • 数据类型的选择要根据语义,而不能根据其构成的字符类型 • 长度是指在表中所占的长度

  8. 第二节 常量、变量与数组 • 一、常量 • 数据处理过程中,值固定不变的量称为常量 • 1、数值型常量 • 组成:数字、小数点、正负号) • 表示:一般表示法、浮点表示法 • 示例:10、-12.3、3.1E12(即3*1012) • 2、货币型常量 • 组成:同数值型 • 表示:$加货币值 • 示例:$12、$5699.98、$23.23

  9. 2.2.1 常量 • 一、常量 • 字符型常量 • 组成:任意字符 • 表示:用定界符将字符串括起 • 示例:’12’、“ABC”、[中国]、[/“] • 注意: • 逻辑型常量 • 组成:真、假 • 表示:.t. .f. .y. .n. (也可以是大写) • 注意: 1、定界符不能是中文符号 2、定界符必须成对出现 3、字符串含定界符时,必须采用另一种定界符 4、空串与空格字符串不同 5、字母大小写不同 6、字符串与其他类型常量的区别如:’12’与12、‘.T.’与.T. 1、表示逻辑值的字母前后的点不能缺少

  10. 2.2.1 常量 • 一、常量 • 日期型与日期时间型常量 • 组成:数字、分隔符(如:/ - :) • 表示 • 传统格式:{mm/dd/yy [hh[:mm[:ss]]] [a|p]} 示例:{16-02-04}表示2004年2月16日 • 严格格式:{^ yyyy/mm/dd [hh[:mm[:ss]]] [a|p]} 示例:{^2004-02-16 12:10}表示2004年2月16日12时10分 • 注意 1、不同版本VFP对日期格式处理的差别 2、传统日期格式受SET DATE、SET CENTURY命令限制 3、空日期表示{}、{//}等

  11. 2.2.2 数据存储—变量 • 名称命名规则 • 可用字符集 • 字母、数字、下划线、汉字 • 首字符限制 • 不能使用数字开头 • 长度规则 • 表字段名、索引名:1-10个字符 • 其他1-128个字符 • 不能使用的名称 • 系统保留字 • 示例 合法名称:lcString、nLenth、Average_of_gz 不合法名称:2abc、x#y、 x-y

  12. 2.2.2 数据存储—变量 • 2、内存变量的创建 • 直接建立 • STORE或= • 示例:STORE 5 TO x或x=5 • 使用关键字创建 • LOCAL • 示例:LOCAL cX,nX • PRIVATE • 示例:PRIVATE cY,nY • PUBLIC • 示例:PUBLIC cZ,nZ

  13. 2.2.2 数据存储—变量 • 3、内存变量的访问 • 使用内存变量名可以对内存变量进行访问,当字段变量与内存变量同名时,在变量名前加“m.”即可 • 示例: • STORE 5 TO a,b • C=a+b • ?a • ?b • ?m.c • 内存变量的显示:list ,display

  14. 2.2.2 数据存储—变量 • 4、内存变量的的保存与恢复 • SAVE TO FileName [ALL LIKE Skeleton|ALL EXCEPT Skeleton] • 示例:SAVE TO mVar ALL LIKE c* • RESTORE FROM FileName [ADDITIVE]

  15. 2.2.3 数组 • 1、数组定义 • 定义:存储在一个变量中由单个变量名引用的有序数据集合,它们在内存中占用一片连续的存储单元 • 数组的声明 • DECLARE—私有数组 • DIMENSION—私有数组 • PUBLIC—全局数组 • LOCAL—局部数组 • 命令格式: • 命令动词 数组名(行数[,列数]) • 默认值(.f.) • 示例:DECLARE|DIMESION X[5]

  16. 2.2.3 数组 • 2、数组的访问 • 数组元素的访问 • 使用下标标识数组元素,首元素的下标为1,下标值不能超过数组的大小 • 注意不带下标(包括括号)时的情况 • 赋值:给该数组所有元素赋给相同的值 • 访问:获得该数组首元素的值 • 举例 • DIMENSION ARRY1(4) • ARRY1(1) = "990103" ARRY1(2) ="张山" ARRY1(3) ="男" ARRY1(4) = .T .?Arry(1), Arry(2),Arry(3),Arry(4)

  17. 2.3 运算符 • 数值运算符

  18. 2.3.1 运算符与优先级 • 字符运算符 注意:$运算结果为逻辑值

  19. 2.3.1 运算符与优先级 • 日期和日期时间运算符 注意:两个日期不能相加;日期与日期时间型不能相减

  20. 2.3.1 运算符与优先级 • 关系运算符 注意:==只能用于字符串比较;字符串(字符)比较时与 COLLATE设置有关:Machine、PinYin、Stroke

  21. 2.3.1 运算符与优先级 • 字符串的比较问题 • 字符序列的设置问题 • COLLATE设置有关:Machine、PinYin、Stroke • 精确比较问题(相等比较) • EXACT • ON:长度相等的条件下进行比较 • OFF:以右边为准,左边取与右边等长,然后进行比较。

  22. 2.3.1 运算符与优先级 • 逻辑运算符 注意:参加逻辑运算的各目必须是逻辑值

  23. 2.3.1 运算符与优先级 • 运算符的优先级

  24. 2.3.2 表达式 • 表达式是通过运算符将常量、变量、字段名等组合起的可以运算的式子。 • 表达式具有单个的结果值 • VFP表达式分类 • 算术表达式 • 字符表达式 • 日期表达式 • 关系表达式 • 逻辑表达式 • 名称表达式

  25. 2.3.2 表达式 • 算术表达式 • 由数值类型数据和算术运算符组成的式子 • 计算结果为数值型数据 • 示例: • #DEFINE PI=3.14 • R=10 • S=PI*R*R

  26. 2.3.2 表达式 • 字符表达式 • 由字符类型的数据和字符连接符组成 • 计算结果为字符型 • 示例: • “姓名:”+TRIM(js.xm) • LEFT(“中华人民共和国”,4)

  27. 2.3.2 表达式 • 日期表达式 • 由日期或日期时间型数据和日期运算符组成 • 计算结果为日期型或日期时间型或数值型 • 示例: • DATE()-{^2004-02-10} • {^2004-02-10}+10

  28. 2.3.2 表达式 • 关系表达式 • 同种类型数据用关系运算符进行比较的式子 • 结果为逻辑值 • 示例: • 30>30 • ‘A’==‘a’ • DATE()-10>{^2004-02-10}

  29. 2.3.2 表达式 • 逻辑表达式 • 由逻辑型数据(也可以是关系表达式)与逻辑运算符组成的式子 • 运算结果为逻辑型 • 示例: • NOT (50>300) • ‘A’=‘a’ AND .F. • .T. OR .F.

  30. 2.3.2 表达式 • 名称表达式 • 由圆括号括起来的字符表达式 • 作用:替换命令或函数中的名称 • 示例: • nVar=‘x’ • STORE 5 TO (nVar) • 注意: • 上述命令不能用 (nVar)=5 代替 • 在上述命令执行后 (nVar)+5 也不能使用

  31. 2.3.2 表达式 • 名称表达式 • 使用方法 • 1、替换命令中的变量名 • 2、替换文件名 • 3、作为函数的参数 • 使用过程 cVa=“x” stor 0 to (cVa) ?cVa ?x dbf_name=“js.dbf” dir (dbf_name) cVa cVa=“x” x x stor 0 to (cVa)) 0

  32. 2.3.2 表达式 • 宏替换 • 用“&”放在字符变量名前,“.”放在变量名后,VFP会将此变量的值作为名称使用 • 示例: • Var_name=‘nX’ • STORE 12 TO &Var_name • STORE 12 TO &Var_name.b • 名称表达式与宏替换的比较 1、凡是使用名称表达式的地方都可以使用宏替换 2、名称表达式不能作为表达式的组成部分 3、在某些命令和函数中不能使用名称表达式

  33. 2.3.2 表达式 • NULL的处理 • NULL(.NULL.)指空值即没有任何值 • 与0、“”、“”不同 • 排序优先 • 会影响命令、函数、逻辑表达式等的行为 • 可以用ISNULL()测试变量、字段或逻辑表达式的值是否为.NULL.

  34. 2.4 函数 • 函数是一种预先编制好的程序代码,可供用户调用。 • 函数可以接受0或多个参数。 • 函数只能有一个返回值。 • 函数的使用的语法格式: 函数名([参数1[,参数2[,……]]])

  35. 2.4.1 系统函数的分类 • 数据类型类 • 数据库类 • 环境类 • 输入输出类 • 程序设计类

  36. 2.4.2 常用函数简介 • 数值函数 • ABS()* • 格式: ABS(nExpression) • 示例: ABS(-5) • MAX()* • 格式: MAX(nExpression1,nExpression2[,……]) • 示例: MAX(10,5,-2)

  37. 2.4.2 常用函数简介 • 数值函数 • MIN() • 格式:MIN(eExpression1,eExpression2[,……]) • 示例:MIN(10,5,-2) • INT()* • 格式:INT(nExpression) • 示例:INT(12.5),INT(-12.5)

  38. 2.4.2 常用函数简介 • 数值函数 • MOD()* • 格式:MOD(nDividend,nDivisor) • 示例:MOD(36,5),MOD(12.6,5) • ROUND()* • 格式:ROUND(nExpression,nDecimalPlaces) • 示例:ROUND(12.345678,3)

  39. 2.4.2 常用函数简介 • 数值函数 • SQRT() • 格式:SQRT(nExpression) • 示例:SQRT(16) • RAND()* • 格式:RAND() • 示例:INT(1+RAND()*10)

  40. 2.4.2 常用函数简介 • 字符函数 • ALLTRIM() • 格式:ALLTRIM(cExpression) • 示例:ALLTRIM(“中国 ”) • TRIM()* • 格式:TRIM(cExpression) • 示例:TRIM(“中国 ”)

  41. 2.4.2 常用函数简介 • 字符函数 • LEN()* • 格式:LEN(cExpression) • 示例:LEN(“中国 ”) • AT() • 格式AT(cExpression,cExpression2[,nOccurrence]) • 示例 AT(‘b’,’abcabc’), AT(‘b’,’abcabc’,2)

  42. 2.4.2 常用函数简介 • 字符函数 • SUBSTR()* • 格式:SUBSTR(cExpression,nStartosition,nLen) • 示例:SUBSTR(“伟大的中国共产党”,7,4) • LEFT()* • 格式: LEFT(cExpression, nLen) • 示例:LEFT(“中国共产党”,4)

  43. 2.4.2 常用函数简介 • 字符函数 • RIGHT() • 格式: RIGHT(cExpression, nLen) • 示例: RIGHT(“伟大的中国”,4) • SPACE() • 格式:SPACE(nExpression) • 示例:SPACE(5)

  44. 2.4.2 常用函数简介 • 时间/日期函数 • DATE()* • 格式:DATE() • 示例:DATE() • DATETIME() • 格式:DATETIME() • 示例:DATETIME()

  45. 2.4.2 常用函数简介 • 时间/日期函数 • DOW() • 格式:DOW(dExpression|tExpression) • 示例:DOW(DATE()) • DAY()* • 格式:DAY(dExpression|tExpression) • 示例:DAY(DATE())

  46. 2.4.2 常用函数简介 • 时间/日期函数 • MONTH() • 格式:MONTH(dExpression|tExpression) • 示例:MONTH(DATE()) • YEAR()* • 格式:YEAR(dExpression|tExpression) • 示例:YEAR(DATE())

  47. 2.4.2 常用函数简介 • 时间/日期函数 • TIME() • 格式:TIME() • 示例:TIME()

  48. 2.4.2 常用函数简介 • 类型转换函数 • ASC()* • 格式:ASC(cExpression) • 示例:ASC(‘a’) • CHR()* • 格式:CHR(nExpression) • 示例:CHR(97)

  49. 2.4.2 常用函数简介 • 类型转换函数 • VAL()* • 格式:VAL(cExpression) • 示例:VAL(“1983年”) • DTOC()、TTOC()* • 格式:DTOC(dExpression)、TTOC(tExpression) • 示例:DTOC(DATE())

  50. 2.4.2 常用函数简介 • 类型转换函数 • CTOD()、CTOT() • 格式:CTOD(cExpression)、CTOT(cExpression) • 示例:CTOD(“04-01-20”) • STR()* • 格式:STR(nExpression[,nLength[,nDecimal]]) • 示例:STR(12.456),STR(12.456,5,3) 默认为10 默认为0

More Related