版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章数值与数值运算3-1数据类型、常量和变量3-2VisualFoxPro6.0的常用函数3-3操作符及表达式3-4小结第3章数据与数据运算3-1数据类型、常量和变量3-1-1数据类型在VisualFoxPro中所有的数据都具有类型,数据类型决定数据的存储方式和使用方式,即数据的取值范围和可以进行的操作。VisualFoxPro6.0的数据类型分为两大类,一种适用于变量和数组,另一种适用于数据表中的字段。VisualFoxPro定义了13种字段类型和7种数据类型。字段类型是:字符型、数值型、浮动型、双精度型、整型、货币型、日期型、日期时间型、逻辑型、备注型、通用型、二进制字符型和二进制备注型。数据类型是:字符型、数值型、货币型、日期型、日期时间型、逻辑型和通用型。
3-1-2常量常量:在程序的运行过程中不改变其值的量常量的种类:数值型常量字符型常量逻辑型常量日期型常量货币型常量1.数值型常量用整数、小数、科学计数法表示的数举例:85,-56.2,1.256E3,3.8E-2等
2.字符型常量由一串字符组成的字符串表示:用“”(双引号)、‘’(单引号)、[](方括号)括起来举例:’副教授’、”boy”、[数据库系统]是合法常量,而””Iamaboy””、’It’sabest’是非法常量。注意:最长只能为254个字符3.逻辑型常量表示“真”或“假”的量表示方法:“真”——.T.、.Y.、.t.、.y.“假”——.F.、.N.、.f.、.n.注意:两边的点不能少4.货币型常量表示货币值的量表示:以$开头,4舍5入到小数点4位举例:$123.456789结果为123.45685.日期型常量日期时间常量也必须用花括号括起来,格式为:{^YYYY-MM-DD[hh[:mm[:ss]][a|p]]}例如:{^2005/05/1910:04am}、{^2005-05-2111:32:14pm}。但必须注意日期和时间之间必须有空格。6.日期时间型常量在VisualFoxPro6.0中日期型常量用花括号“{}”作为定界符括起来,格式为:{^YYYY-MM-DD}例如:{^2005/05/18},或{^2005-05-18}。
3-1-3变量
在命令操作和程序运行过程中其值允许变化的量称变量,在VisualFoxPro6.0中使用的变量分为字段变量、内存变量两种。每个变量都必须有一个变量名,变量名是由字母、汉字、数字和下划线组成,但必须以字母或汉字。1.字段变量
字段变量是数据表结构中的任意一个数据项。在一个数据表中,一个字段就是一个字段变量。字段变量在建立表结构时定义,修改表结构时可重新定义,或增删字段变量。字段变量的类型有13种。字段变量是一种多值变量,假设一个数据表中有10条记录,那么该数据表的每一字段就有10个取值,当用字段作变量时,它的当前值随着记录指针的移动而不断变化。2.内存变量内存变量是表结构之外独立存在于内存中的变量。内存变量可用来存储数据,定义内存变量时需为它取名并赋初值,内存变量建立后存储于内存中。VisualFoxPro6.0中共定义了6种类型的内存变量:数值型、字符型、日期型、日期时间型、逻辑型和货币型。可分为简单变量和数组变量。(1)内存变量赋值命令格式1:〈内存变量〉=<表达式〉格式2:STORE<表达式>TO<内存变量表>功能:
计算〈表达式〉,然后将计算结果赋给内存变量。
(2)表达式值显示命令格式:?/??<表达式表>功能:,将表达式的值显示在屏幕上。【说明】1.命令格式中的?/??可任选一个,它们的输出格式不同。?表示从屏幕下一行的第一列起显示结果,??表示从当前行的当前列起显示结果。例如:?Z&&在VFP主窗口中显示VFP6.0?s1&&换一行后显示28??“数据库应用”&&接着上一个命令显示结果28的后面显示“数据库应用”2.<表达式表>是表示用逗号隔开的多个表达式组,命令执行时遇逗号就空一格。例如:?“Z=”,Z&&显示Z=VFP6.03.系统内存变量由VFP自动生成和维护的变量一般以下划线开头举例:_DIARYDATE &&当前日期_CLIPTEXT &&剪贴板文本[例]通过_calcvalue系统变量将一个数字传到计算器中,激活计算器窗口并计算结果。clear_calcvalue=20activatewindowcalculator[例]往剪贴板中写入信息_CLIPTEXT="hello!“查看剪贴板数组是具有相同名字、不同下标值的一组变量。数组中的每个数据值称为数组元素,每个数组元素在数组中的位置是固定的,可以通过称为下标的编号来进行访问。数组在使用时要由DIMENSION或DECLARE命令来定义。这两个命令完全相同,都是用于建立一维或二维数组。在VisualFoxPro6.0中,同一个数组元素在不同时刻可以存储不同类型的数据,在同一数组中,每个数组元素可以被赋予不同数据类型的值。
4.数组变量数组的定义格式:DIMENSION|DECLARE
<数组名>(<下标1>)[,(<下标2>)]
[<数组名>(<下标1>)[,(<下标2>)]]…例如:DIMENSIONc(4)DIMENSIONa(3),b(2,3)数组的赋值SZ(1)=”ABCD”
&&给SZ(1)赋值,字符型,值:ABCDSZ(2)=23.45&&给SZ(2)赋值,数值型,值:23.45SZ(3)={^2005/09/02}&&给SZ(3)赋值,日期型,值:2005年9月2日SZ(4)={^2005/11/029:00am}&&给SZ(4)赋值,日期时间型,值:2005年11月2日上午9点BZ(5)=.T.&&给SZ(5)赋值,逻辑型,值:真3-2VisualFoxPro常见函数函数的概念:VisualFoxPro6.00系统为用户提供了十分丰富的函数,灵活运用这些函数,不仅可以简化许多运算,而且能够加强和完善VisualFoxPro的许多功能。函数的一般格式:<函数名>(<自变量表>)函数的三要素:函数名、参数、函数值如:ABS(-2)3-2-1数学运算函数
1.平方根函数SQRT()【格式】SQRT(〈数值表达式〉)【功能】计算并返回〈数值表达式〉的算术平方根。【例1】?SQRT(5*5)5.002.绝对值函数ABS()【格式】ABS(<数值表达式>)【功能】计算并返回〈数值表达式〉的绝对值。【例2】?ABS(-43.29)43.293.四舍五入函数ROUND()【格式】ROUND(〈数值表达式〉,〈有效位数〉)【功能】对〈数值表达式〉的值按指定的〈有效位数〉进行四舍五入。【例3】?R0UND(3.14159,4),ROUND(1234.9962,0),ROUND(1234.567,-1)3.1416123512304.取整函数INT()【格式】INT(〈数值表达式〉)【功能】计算并返回〈数值表达式〉的整数部分。【例4】?INT(-76.93)-765.求模函数MOD()【格式】MOD(<被除数>,<除数>)【功能】返回<被除数>除以<除数>得到的余数值。【说明】在求摸运算中应注意以下几点:(1)
除数不能为0。(2)
除数为正数,返回正数;如果为负数,返回负数。(3)
如果被除数与除数能够整除,结果为0。(4)
如果被除数与除数不能整除,且被除数与除数同号,则结果为被除数除以除数而得到的余数。即:MOD(X1,X2)=X1-INT(X1/X2)*X2。(5)
如果被除数与除数不能整除,且被除数与除数异号,则结果为被除数除以除数而得到的余数再加上除数。即:MOD(X1,X2)=X1-INT(X1/X2)*X2+X2。【例5】?MOD(10,3)&&结果为:1?MOD(-10,-3)&&结果为:-1?MOD(-10,3)&&结果为:2?MOD(10,-3)&&结果为:-23-2-2字符处理函数1.取子串函数SUBSTR()【格式】SUBSTR(〈字符串表达式〉,〈起始位置〉[,〈长度〉])【功能】从〈字符串表达式〉中的〈起始位置〉截取子字符串,〈长度〉为所截取的子串的长度。【例1】store”ABCDEFG”toCN?SUBSTR(CN,4,2),SUBS(CN,1,4),SUBS(CN,6,3)DEABCDFG若省略〈长度〉,或者〈长度〉超过从〈起始位置〉到末尾的长度,则截取的子字符串为从〈起始位置〉到〈字符串表达式〉末尾的所有字符。例如:?SUBSTR(”计算机程序设计教程”,11)设计教程2.求字符串长度函数LEN()【格式】LEN〈字符串表达式〉【功能】返回〈字符串表达式〉中所包含的字符个数,即字符串长度。【例2】?LEN(”VisualFoxPro6.0”)163.搜索子串位置函数AT()【格式】AT(〈字符串1〉,〈字符串2〉[,<数值表达式>])【功能】寻找〈字符串1〉在〈字符串2〉中首次出现的起始位置。若〈字符串2〉中不包含〈字符串1〉,则返回值为零。若有“数值表达式”(假设数值表达式为K),则寻找〈字符串1〉在〈字符串2〉中第K次出现的位置。【例3】X=”VisualFoxPro6.0”?AT(”Fox”,X)&&显示结果为8?AT(”fox”,X)&&显示结果为0?AT(”o”,X)&&显示结果为9?AT(”o”,X,2)&&显示结果为134.空格函数SPACE()【格式】SPACE(〈数值表达式〉)【功能】产生与〈数值表达式〉的值相同的空格数。【例4】?”学生”+SPACE(4)+”情况”学生情况在“
学生”和“情况”之间产生了4个空格字符。
5.宏代换函数&【格式】&<字符型内存变量>【功能】取“字符型内存变量”的值。【说明】
(1)
宏代换是一种间接取值的操作,在&符号后面必须紧跟(无空格)一个己被赋过值的字符型内存变量的名字。(2)若&<字符型内存变量>与后面的字符之间无空格分界时,应加上“.”符号作为分界符。(3)宏代换的使用可以嵌套另一个宏代换,但不能嵌套自己。例如,X=“&X”的写法是错误的。(4)
对于数字字符串,可以通过&函数使其与其他数字进行计算。【例5】求宏代换。<1>.CH=”X”X=9?&CH&&结果为:9<2>TT=”学生成绩”USE&TT&&结果为:打开了“学生成绩.dbf”表文件。<3>X=”2004”M=”+”Y=”&X.&M.1”?Y&&结果为:2004+1?&Y&&结果为:2005字符处理函数(补充)格式:LTRIM(<字符表达式>)功能:删除字符表达式值前的空格格式:RTRIM(<字符表达式>或TRIM(<字符表达式>)功能:删除字符表达式值后的空格格式:ALLTRIM(<字符串>)功能:将<字符串>前后的空格去掉举例?“AB”+SPACE(4)+”CD”&&返回ABCD?ALLTRIM(“ABCD”) &&返回ABCD?len(“abcd”)&&返回5?len(alltrim(“ABCD“))&&返回43-2-3转换函数1.数值转换为字符串函数STR()【格式】STR(〈数值表达式〉[,〈长度〉[,〈小数位如〉]])【功能】将〈数值表达式〉的值转换为由〈长度〉和〈小数位数〉指定的字符串。如果〈长度〉值比〈数值表达式〉的整数位数还要小,则返回由〈长度〉个“*”组成的字符串。【例1】?STR(1324.46,6,1)1324.5?STR(1324.46,3,1),STR(1324.46,8,3)***1324.4602.字符串转换为数值函数VAL()【格式】VAL(〈字符串表达式〉)【功能】将〈字符串表达式〉转换为数值型数据。【例2】?VAL(”32”+”18”)3218.00?VAL(”112GH”),VAL(”AB204”),VAL(”ASD”)112.000.000.003.字符转日期函数CTOD()【格式】CTOD(〈字符串表达式〉)【功能】将“月/日/年”格式的〈字符串表达式〉转换为日期型数据。【例3】DA=”12/12/04”?CTOD(DA)12/12/044.日期型转换为字符串函数DTOC()【格式】DTOC(〈日期〉)【功能】将〈日期〉转换为相应的字符串。【例4】D={^2004/11/24}DT=DTOC(D)?DT??LEN(DT)11/24/0483-2-4日期和时间函数格式:DATE()功能:返回系统日期格式:TIME()功能:返回系统时间格式:DATETIME()功能:返回系统日期时间格式:YEAR(<日期>)功能:返回<日期>中的年份,4位整型格式:month(<日期>)功能:返回<日期>中的月份格式:day(<日期>)功能:返回<日期>中的日期举例?YEAR({^2001-10-23}) &&返回2001?month(date()) &&返回当天的月份3-2-5测试函数1.测试文件头函数BOF()【格式】BOF()【功能】该函数用于测试指定文件中的记录指针是否指向文件头。如果是则返回真值,否则返回假值。【例】测试文件记录是否指向文件头。USE学生档案.dbf?BOF()&&显示结果为:.F.SKIP-1&&移动记录指针到上一条记录命令?BOF()&&显示结果为:.T.2.测试文件尾函数EOF()【格式】EOF()【功能】该函数用于测试指定文件中的记录指针是否指向文件尾。如果是则返回真值,否则返回假值。【例】测试文件记录是否指向文件尾。USE学生档案.dbfGOTOBOTTOM?EOF()&&显示结果为:.F.SKIP&&移动记录指针到上一条记录命令?EOF()&&显示结果为:.T.【格式】RECNO()【功能】测试指定表文件中的记录指针指向的记录号。若指定的工作区无打开的表文件,函数返回值为:0;若指定的表文件无记录或记录指针位于文件头,函数返回值为:1;若记录指针指向文件尾,函数返回值为末记录号加1。【例】测试记录指针的当前位置(假设学生档案表中有10条记录)。USE学生档案.dbfGOTOBOTTOM?RECNO()&&显示结果为:10SKIP?RECNO()&&显示结果为:11GOTOP?RECNO()&&显示结果为:1SKIP-1?RECNO()&&显示结果为:13.测试当前记录号函数RECNO()4.“空”值测试函数【格式】ISNULL(<表达式>)【功能】判断表达式的运算结果是否为NULL值,如果是,则返回逻辑真,否则返回逻辑假。【例4】STORE.NULL.TOA?A,ISNULL(A)&&结果为:.NULL..T.5.空值测试函数
【格式】EMPTY(<表达式>)【功能】根据表达式的运算结果是否为“空”值,返回逻辑真或逻辑假。【说明】(1).当表达式的结果是含有空字符串或空格时,EMPTY函数值返回为.T.,ISNULL为.F.。(2).当变量是.NULL.时,EMPTY和ISBLANK函数为.F.,ISNULL为.T.。(3).当变量是0时,EMPTY函数为.T.,ISNULL和ISBLANK为.F.。3-2-6用户定义对话框MESSAGEBOX()函数的使用MessageBox函数用于显示短信息。虽然,MessageBox显示的小窗口不具有什么功能,实际上它被认为是一个对话框。对话框是用户与应用程序之间交换信息的最佳途径之一。使用对话框函数可以得到VFP的内部对话框,这种方法具有操作简单及快速的特点。MESSAGEBOX函数在对话框中显示信息,等待用户单击按钮,并返回一个整数以标明用户单击了哪个按钮。1.格式MESSAGEBOX(CMessageText,[nDialogboxType[,CTitleBarText]])2.功能该函数用于显示一个信息框。3.说明(1)CMessageText:表示显示在信息框中的正文内容。(2)nDialogboxType:确定消息框中要显示哪些按钮和图标,一般有3个参数。其取值和含义为:
0~5:表示出现在信息框中的按钮,如表所示。值按
钮0只有“确定”按钮1具有“确定”和“取消”按钮2具有“终止”、“重试”和“忽略”按钮3具有“是”、“否”和“取消”按钮4具有“是”和“否”按钮5具有“重试”和“取消”按钮16,32,48,64:表示出现在消息框中的图标。值图标16停止图标32问号图标48感叹号图标
64信息图标l0,256,512:表示消息框中哪些是默认按钮。值默认按钮0第一个按钮256第二个按钮512第三个按钮(3)CTitleBarText:表示出现在消息框标题栏中的文本。若缺省此项,系统给出默认的标题:MicrosoftVisualFoxPro(4)MESSAGEBOX()函数的返回值是一个数值,用于确定在消息框中选择了哪个按钮。返回值图标1“确定”按钮2“取消”按钮3“终止”按钮4“重试”按钮5“忽略”按钮6“是”按钮7“否”按钮(5)如果省略了某些可选项,必须加入相应的逗号分隔符。在程序运行的过程中,有时需要显示一些简单的信息如警告或错误等,此时可以利用“信息对话框”来显示这些内容。当用户接收到信息后,可以单击按钮来关闭对话框,并返回单击的按钮值。4.举例用MESSAGEBOX()函数显示一个消息框,正文为“这是一个教师工资管理的数据库”,消息框中有“确定”,“取消”按钮,有问号图标,“取消”按钮是默认按钮,消息框标题栏中的文本为“消息框”。通过窗口显示该信息如图例。?MESSAGEBOX(“这是一个教师工资管理的数据库!”,3+64+512,”消息框”)3-3操作符及表达式操作符是表示数据之间运算方式的运算符号,一般根据处理数据类型不同可分为算术运算符、字符运算符、关系运算符、逻辑运算符四种。表达式是由常量、变量、函数、操作符及圆括号组成的算式。表达式中的操作对象必须具有相同的数据类型,如果表达式中有不同类型的操作对象,则必须将它们转换成同种数据类型。3-3-1算术表达式
算术表达式是由数值型变量、常量、函数和数值操作符组成的。用于对数值型数据进行常规的算术运算。
算术运算符举例:?5/3 结果:1.67?5%3 结果:2?-3**2-5结果:4.00?2*7%3^2+3结果:8高运算符含义优先级(
)括号
低**或^乘方*、/:乘:除%取模(或取余),取两数相除的余数+、-加、减算术运算符举例?3/2 &&返回1.5?5.5%3 &&返回2.5?Int(5/3) &&1,取得数值的整数部分?6^2 &&返回36?{^2001-12-29}+4 &&返回2002-1-2?{^2002-3-1}-{^2001-12-29} &&返回62?{^2002-3-1}–1 &&返回{^2002-2-28}?{^2000-3-1}–1 &&返回{^2002-2-29}3-3-2字符表达式:字符表达式是由字符型变量、常量、函数和字符操作符组成的。用于字符串的连接或者比较。字符串操作符为:+:连接两个字符串。-:连接两个字符串,并将第一个字符串尾部的空格移到第二个字符串的尾部。$:判断第一个字符串是否是第二个字符串的子字符串。例如:LEN1=”VisualFoxPro6.0”LEN2=”数据库教程”?LEN1+LEN2&&结果为:VisualFoxPro6.0数据库教程?LEN1-LEN2&&结果为:VisualFoxPro6.0数据库教程?len(LEN1-LEN2)&&结果为:283-3-3日期时间表达式日期时间表达式是由日期时间型变量、常量、函数和日期时间操作符组成的。日期时间操作符有:+:添加一个天数或秒数-:减少一个天数或秒数例如:?{^2005-04-04}+10&&结果为:04/14/05?{^2005-04-30}-15&&结果为:04/15/05?{^2003-08-0410:10a}+10&&结果为:08/04/0310:10:10AM?{^2003-08-0410:35p}-10&&结果为:08/04/0310:34:50PM3-3-4关系表达式
关系表达式用于数值、字符、日期型数据的比较运算。关系表达式的运算优先级相同。
关系运算符含义关系运算符含义<小于<=小于等于>大于>=大于等于=等于#,<>,!=不等于==精确相等
例如:?”xyz”#”XYZ”&&值为.T.?”abcd”=”abc”&&值为.T.?”abc”=”abcd”&&值为.F.?”abcd”==”abc”&&值为.F.逻辑表达式是由逻辑型变量、常量、函数和字符运算符组成的。用来对逻辑型数据进行各种逻辑运算,形成各种简单的逻辑结果。
3-3-5逻辑表达式高运算符含义优先级()分组符号
低.NOT.逻辑非.AND.逻辑与.OR.逻辑或例如?17>33.AND.34>12&&值为.F.?16/2>7.0R.”abc”#”ABC”.AND.NOT.F.&&值为.T.在多个逻辑值中进行判断,一般用于判断某几个条件是否满足运算对象和运算结果均为逻辑型运算符OR或.OR.:逻辑或,只有两个运算对象均为.F.时,返回.F.;其余均返回.T.AND或.AND.:逻辑与,只有两个运算对象均为.T.时,返回.T.;其余均返回.F.NOT或.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东科贸职业学院《工作坊交流》2023-2024学年第一学期期末试卷
- 广东警官学院《急诊与急救》2023-2024学年第一学期期末试卷
- 广东江门中医药职业学院《计算机网络安全B》2023-2024学年第一学期期末试卷
- 广东技术师范大学《藏汉古代文化对比研究专业选修》2023-2024学年第一学期期末试卷
- 广东工商职业技术大学《短距离无线通信技术》2023-2024学年第一学期期末试卷
- 焖渣罐事故培训课件
- 《海航筹资之路与资》课件
- 广安职业技术学院《数字逻辑设计及应用》2023-2024学年第一学期期末试卷
- 保健老师培训课件
- 赣西科技职业学院《英语中级听力》2023-2024学年第一学期期末试卷
- 反意疑问句完
- 《大数据安全技术》课后题答案
- 一号检察建议课件
- 肌理课件完整
- 法院安检、保安服务投标方案(技术标)
- “约会”的DFMEA与PFMEA分析
- 教师朗诵稿《幸福》(7篇)
- 数据安全应急响应与处置
- 2023汉邦高科安防产品技术参数和检测报告
- 急诊课件:急性呼吸困难完整版
- 分布式光伏项目施工合同
评论
0/150
提交评论