数据与数据运算_第1页
数据与数据运算_第2页
数据与数据运算_第3页
数据与数据运算_第4页
数据与数据运算_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据与数据运算第一页,共四十五页,编辑于2023年,星期三数据与数据运算数据类型、常量、变量、表达式和函数是计算机程序设计语言的基础。数据类型决定了数据的存储方式、取值范围、表示形式和运算方式;常量、变量是计算机承载数据的形式,是数据加工处理的基本对象;表达式和函数体现了语言对数据进行运算和处理的能力。本节学习常量、变量、运算符和表达式。第二页,共四十五页,编辑于2023年,星期三VisualFoxPro的数据类型类型说明字符型(C)字符型数据是描述不具有数值计算能力的文字型数据,是常用的数据类型之一。字符型数据是由汉字和ASCII字符集中可打印字符(英文字母、数字符号、空格及其他专用字符)组成,长度范围在0-254个之间。常用描述姓名、单位、地址等信息。数值型(N)数值型数据是描述数量的数据类型,常用于表示某一个量的大小。数值型数据由数字0-9、正负号(+或-)、小数点(.)等组成,长度为1-20个字节,宽度和小数点的位置由用户指定,宽度包括小数点和小数位数。整型(I)不带小数点的数值,占4个字节第三页,共四十五页,编辑于2023年,星期三VisualFoxPro的数据类型浮点型(F)按浮点数的形式存储数值数据,用较精确的位数存储数据,与数值型完全等价双精度型(B)用于替代一般的数值类型,以便提供更高的数值精度,占8个字节日期型(D)用于保存日期类型数据,存储格式为“YYYYMMDD”,需要8个字节。显示格式有多种,受SETDATE、SETMARK、SETCENTURY等设置命令的影响,“MM/DD/YY”是常见的格式,取值范围{^0001-01-01}~{^9999-12-31}日期时间型(T)用于存储日期和时间值,存储格式为“YYYYMMDDHHMMSS”,占8个字节。时间部分的显示格式受SETHOURS和SETSECONDS命令的控制,取值范围00:00:00AM~11:59:59PM第四页,共四十五页,编辑于2023年,星期三VisualFoxPro的数据类型逻辑型(L)逻辑型数据描述的是客观事物的真假,用于表示或存储只有两个值即真(.T.)和假(.F.)的数据,其长度固定为一个字节。例如,已婚或未婚等货币型(Y)用于存储货币金额数据,有4位小数,占8个字节备注类型(M)用于数据块的存储,宽度固定位4个字节。字段内容并不存储在记录中,而是保存在系统为每个含有备注型字段的表自动建立的一个和表同名的备注文件(.FPT)中,记录中仅存储指向备注文件中相应内容的指针通用型(G)用于存储OLE对象,其中包含对OLE对象的引用,字段类型的长度为4个字节。一个OLE对象的具体内容可以是一个电子表格或一个字处理器文档、图片、声音等,OLE对象往往由其他应用程序建立第五页,共四十五页,编辑于2023年,星期三VisualFoxPro常量常量用以表示一个具体的不变的值。(1)数值型常量(N):即常数。由数字0~9,小数点、正负号和E组成。【例】100、-88、3.14159、1.23E6、2.34E-4

数值型数据在内存中用8个字节表示。以下不是数值型常量:

15%、3,324,567、2/5第六页,共四十五页,编辑于2023年,星期三VisualFoxPro常量(2)字符型常量(C):也称字符串,是用定界符双引号(”

”)、单引号(’

’)或方括号([])括起来的字符串。定界符必须成对匹配,当字符串本身包含由某种定界符,应当使用另外一种定界符为字符串定界。【例】“It’sacat.”、[青岛大学]、‘1200’

、[‘abc’

“ABC”]、””、“

”第七页,共四十五页,编辑于2023年,星期三VisualFoxPro常量(3)货币型常量(Y):用“$”加上数值表示货币值。货币数据在内存中占用8个字节,存储和计算时采用4位小数。没有科学计数法形式。可以通过“SetCurrency”命令设置货币符号。【例】?$1200?用以在下一行显示表达式的值

??$1200.56789??用以在同行显示表达式的值第八页,共四十五页,编辑于2023年,星期三VisualFoxPro常量(4)逻辑型常量(L):只有逻辑真和逻辑假两个值。逻辑真的常量表示形式有.T.、.t.、.Y.、.y.

。逻辑假的常量表示形式有.F.、.f.、.N.、.n.

。说明:书写时不分大小写。定界符(.)不可缺少。逻辑型常量只占用一个字节。第九页,共四十五页,编辑于2023年,星期三VisualFoxPro常量(5)日期型常量(D):用定界符“{^”

和“

}”括起来,表示某一具体的日期。日期型常量的格式有两种:严格的日期格式(建议使用)输入格式为:{^yyyy//mm/dd}、{^yyyy-mm-dd}或{^yyyy.mm.dd}。默认返回的日期型常量格式为:mm/dd/yy。{}:为空日期传统的日期格式(兼容早期版本,不建议使用)年份可以为两位,也可以为四位;月、日各两位。如{10/08/01}、{10082001}等。传统的日期格式受命令SETDATETO和SETCENTURYTO的影响。只在SETSTRICTDATETO0状态下使用。第十页,共四十五页,编辑于2023年,星期三影响日期格式的设置命令

命令约定:[]:内容可选;

|:两侧内容任选其一;

<>:内容由用户提供。

SETMARKTO[日期分隔符]

指定日期分隔符,如“-”、“.”等。缺省表示恢复系统默认的斜杠分隔符。

SETCENTURYON|OFF|TOON设置年份用4位数字表示;

OFF设置年份用2位数字表示。第十一页,共四十五页,编辑于2023年,星期三影响日期格式的设置命令短语格式短语格式AMERICANMM/DD/YYANSIYY.MM.DDBRITISH/FRENCHDD/MM/YYGERMANDD.MM.YYITALIANDD-MM-YYJAPANYY/MM/DDUSAMM-DD-YYMDYMM/DD/YYDMYDD/MM/YYYMDYY/MM/DD

SETDATE[TO]<日期格式短语>

功能:设置日期显式格式。默认为American。第十二页,共四十五页,编辑于2023年,星期三影响日期格式的设置命令【例】SETCENTURYON&&设置4位数字年份

SETMARKTO“;” &&设置日期分隔符为“;”

SETDATETOYMD &&设置年月日格式

?{^2001-08-26}2001;08;26SETCENTURYOFF &&设置2位数字年份

SETMARKTO &&恢复系统默认斜杠日期分隔符

SETDATETOMDY &&设置年月日格式

?{^2001-08-26}08/26/01第十三页,共四十五页,编辑于2023年,星期三影响日期格式的设置命令

SETSTRICTDATETO[0|1|2]0表示不进行严格的日期格式检查,目的是与早期版本兼容。1表示进行严格的日期格式检查,是系统默认格式。2表示进行严格的日期格式检查,并对CTOD()和DTOC()函数有效。

【例】SETMARKTO?{^2001-08-26},{01.09.22}

提示:不明确的日期/日期时间

SETSTRICTDATETO0&&不进行严格的日期格式检查

?{^2001-08-26},{09.22.01}2001/08/262001/09/22第十四页,共四十五页,编辑于2023年,星期三VisualFoxPro常量(6)日期时间型常量(T):使用定界符“{^”和“

}”括起来的日期时间数据。输入格式为:{^yyyy/mm/ddhh:mm:ss[am|pm]},日期和时间之间用空格隔开。{/:}:是空日期时间型数据【例】SETMARKTO?{^2008-2-26,10:5:10},{^2008-2-2610:5p}。日期时间型数据用8个字节存储。日期部分的与日期型数据相同;时间部分的取值范围是:00:00:00AM~11:59:59PM。第十五页,共四十五页,编辑于2023年,星期三VisualFoxPro变量变量的类型第十六页,共四十五页,编辑于2023年,星期三VisualFoxPro变量变量是指程序在运行过程中其值可能会发生变化的量。在VisualFoxPro系统中,变量分为字段变量、内存变量、数组变量和系统变量四大类。1、字段变量字段变量是在数据表中定义的变量,随着表的打开而自动生成,字段变量的变量名即表中字段的字段名,随着表的关闭而自动清除。字段变量的值取决于当前打开表中的当前记录,随着表中当前记录的变化而改变。第十七页,共四十五页,编辑于2023年,星期三VisualFoxPro变量2、内存变量内存变量是用户通过命令或在程序中临时定义的变量,每个变量对应系统内存的一段存储空间。变量不需要事先说明其类型,其数据类型由当前所存储数据的类型决定。但必须首先给所需要使用的内存变量赋一个值,变量才可以使用。内存变量有数值型、字符型、逻辑型、货币型、日期型和时间型6种。第十八页,共四十五页,编辑于2023年,星期三VisualFoxPro变量3、变量的命名的命名规则字母、汉字或下划线开头,后跟若干个字符;长度不超过128个字符;不区分大小写;为避免混淆,不应使用VFP的保留字。4、变量的引用通过变量名引用,但是必须先定义;若与字段变量同名,则加上前缀M.或M->。第十九页,共四十五页,编辑于2023年,星期三内存变量常用命令5、内存变量常用命令变量建立与赋值格式1:<变量名>=<表达式>例如:nSum=12*3 cNumber=”编号”格式2:STORE<表达式>TO<内存变量名表>例如:STORE3*6TOA1,A2?nSum,cNumber,A1,A2第二十页,共四十五页,编辑于2023年,星期三内存变量常用命令内存变量的显示LIST|DISPLAYMEMORY[LIKE<通配符>][TOPRINTER][TOFILE<文件名>]功能:显示内存变量当前信息。LIST自动滚动显示,DISPLAY分屏显示。保存内存变量至内存变量文件(.mem)中格式:SAVETO<内存变量文件名>[ALLLIKE<通配符>|ALLEXCEPT<通配符>]从内存变量文件中恢复内存变量格式:RESTOREFORM<内存变量文件名>第二十一页,共四十五页,编辑于2023年,星期三设置默认目录文件保存在默认目录中;打开文件时,首先在默认目录中搜索,然后再到指定路径中搜索。默认目录是“C:\Programfiles\Microsoftvisualstudio\VFP98”。设置默认目录的方法:

执行“工具”“选项”“文件位置”

SETDEFAULTTO[路径名]功能:指定默认目录。

SETPATHTO[路径名]功能:指定文件搜索路径。第二十二页,共四十五页,编辑于2023年,星期三内存变量的清除格式1:CLEARMEMORY

清除所有内存变量格式2:RELEASE<内存变量名表>

清除指定内存变量格式3:RELEASEALL[LIKE<通配符>|EXCEPT<通配符>]LIKE短语清除与通配符相匹配的内存变量;EXCEPT短语清除与通配符不相匹配的内存变量。内存变量常用命令第二十三页,共四十五页,编辑于2023年,星期三VisualFoxPro变量6、数组变量数组是内存中连续的一片存储区域,它由一系列元素组成。每个数组元素就相当于一个内存变量。同一数组的数组元素可以是不同的数据类型,并可以在运行过程中发生改变。数组元素的引用是通过数组元素的下标来进行的。

VFP6.0只支持1维和2维数组第二十四页,共四十五页,编辑于2023年,星期三数组变量数组的定义DIMENSION|DECLARE<数组名1>(<expN1>[,expN2>])[,<数组名2>(<expN3>[,<expN4>])…expN1,expN2…expNn是数组的下标上界。数组的下标下界规定为1。(不同的程序设计语言规定不同)数组的赋值和引用赋值:同内存变量。引用:数组名(下标1[,下标2])第二十五页,共四十五页,编辑于2023年,星期三一维数组变量【例】DIMENSIONE(5) E(1)=78E(2)=65 E(3)=92 E(4)=56 E(5)=86数组E的元素如下:E(1)E(2)E(3)E(4)E(5)7865925686【例】?E(1)+E(2) 143X=E(3)-E(4)?x36第二十六页,共四十五页,编辑于2023年,星期三二维数组变量【例】DIMENSIONA(2,3) A(1,1)=5 A(1,2)=3 A(1,3)=7 A(2,1)=2 A(2,2)=9 A(2,3)=8数组A的元素如下:【例】DECLAREA(2,3) A(1)=5 A(2)=3 A(3)=7 A(4)=2 A(5)=9 A(6)=8A(1,1)A(1,2)A(1,3)A(2,1)A(2,2)A(2,3)537298A(1)A(2)A(3)A(4)A(5)A(6)第二十七页,共四十五页,编辑于2023年,星期三VisualFoxPro变量7、系统变量系统变量是由VFP系统提供的内存变量,用来设置和保存系统的状态信息。

系统变量名以下划线开始,使用方法与一般内存变量相同。显示系统变量的命令:

LISTMEMORY

DISPLAYMEMORY&&满屏暂停第二十八页,共四十五页,编辑于2023年,星期三VisualFoxPro变量7、系统变量【例】_CLIPTEXT

剪贴板的内容

_CALCVALUE

计算器(Calculator)显示的数值

【例】activatewindowcalculator?_calcvalue

_DIARYDATE

日历/日记(Calendar/Diary)附件中的当前日期第二十九页,共四十五页,编辑于2023年,星期三表达式根据操作数类型的不同,表达式可分为数值表达式字符表达式日期(日期时间)表达式关系表达式逻辑表达式第三十页,共四十五页,编辑于2023年,星期三1、数值表达式运算符功能表达式举例运算结果优先级别()圆括号(2-5)*(3+2)-15最高||||最低-取相反数-(3-8)5**、^乘幂2**5、3^232、9*、/乘、除2*10、25/520、5%取余数23%423%-43-1+、-加、减36+19、29-4755、-18表3-2算术运算符第三十一页,共四十五页,编辑于2023年,星期三VFP表达式的书写规则表达式中所有的字符必须写在同一水平线上,每个字符占一格,不能在右上角或右下角写方次或下标。

【例】23可表示为2^3或2**3Xl十X2可表示为X1+X2。要根据运算符运算的优先顺序合理地加括号“()”,以保证运算顺序的正确性,只能用小括号“()”,且括号必须配对。

【例】3[x+2(y+z)]应表示为3*(x+2*(y+z))。某些在数学表达式中省略的内容不能漏掉。

【例】2X可表示为2*X。第三十二页,共四十五页,编辑于2023年,星期三运算符功能表达式举例运算结果+串1+串2:两串顺序相连接’12‘+’56’’1256’-串1-串2:串1尾空格移到串2尾后再顺序连接’12‘-‘56’‘1256’2、字符表达式表3-3字符运算符第三十三页,共四十五页,编辑于2023年,星期三运算符举例结果<日期>+<天数>{^2002/12/16}+10{^2002/12/26}<日期时间>+<秒数>{^2002/12/168:20:40}+10{^2002/12/168:20:50}<日期>-<天数>{^2002/12/16}-10{^2002/12/6}<日期时间>-<秒数>{^2002/12/168:20:40}-10{^2002/12/168:20:30}<日期1>-<日期2>{^2002/12/16}-{^2002/12/26}-10<日期时间1>-<日期时间2>{^2002/12/168:20:40}-{^2002/12/168:20:30}103、日期(日期时间)表达式第三十四页,共四十五页,编辑于2023年,星期三4、关系表达式操作符描述举例说明举例结果<小于?23<45.T.>大于?45>78.F.=等于?3=5、"a"="A".F.,.F.<>、#、!=不等于?.T.!=.F..T.<=小于等于?{^1970/10/17}<={^1970/10/04}.F.>=大于等于?32>=12.T.==字符串精确比较?"Status"=="Save".F.$子串包含测试?"Base+"$"FoxBASE+".F.表3-5关系运算符第三十五页,共四十五页,编辑于2023年,星期三关系运算规则数值型和货币型数据比较按数值的大小比较,例如,0>-1$150<$160日期或日期时间型数据比较越早的日期或时间越小,越晚的日期或时间越大。例如,{^2006-01-10}>{^2005-12-28}逻辑型数据比较

.T.大于.F.字符型数据比较两个字符串自左向右逐个字符比较,直到对应位置的字符不相等或比较运算符右侧的字符串结束为止。执行“工具”“选项”“数据”“排序序列”

SETCOLLATETOMachine|PinYin|Stroke

功能:设置排序次序。第三十六页,共四十五页,编辑于2023年,星期三关系运算规则字符型数据比较Pinyin(拼音): 空格<0<1<…<9<a<A<b<B…<z<Z<汉字Machine(机器码): 空格<0<1<…<9<A<B<…<Z<a<b<…<z<汉字Stroke(笔画): 无论中文、西文,一律按照书写笔画的多少排序第三十七页,共四十五页,编辑于2023年,星期三关系运算规则字符串精确比较在用双等号运算符==比较两个字符串时,只有当两个字符串完全相同(包括空格以及各字符的位置),运算结果才会是.T.,否则为.F.。在用单等号运算符=比较两个字符串时,运算结果与SETEXACTON|OFF设置有关。OFF状态:只要右边的字符串与左边字符串的前面部分内容相匹配,结果即为.T.。字符串的比较以右面的字符串为目标,右字符串结束即中止比较。ON状态:比较到两个字符串全部结束,先在较短的字符串尾部加上若干个空格,然后再进行比较。第三十八页,共四十五页,编辑于2023年,星期三关系运算规则比较=(EXACTOFF)=(EXACTON)==(EXACTON或OFF)“abc”=“abc”.T..T..T.“ab”=“abc”.F..F..F.“abc”=“ab”.T..F..F.“abc”=“ab”.F..F..F.“ab”=“ab”.F..T..F.“ab”=“ab”.T..T..F.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论