《数值与数值运算.ppt》由会员分享,可在线阅读,更多相关《数值与数值运算.ppt(50页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第3章章 数值与数值运算数值与数值运算第 2 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3-1 数据类型、常量和变量3-2 Visual FoxPro6.0的常用函数3-3 操作符及表达式3-4 小结第第3章章 数据与数据运算数据与数据运算第 3 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3-1 数据类型、常量和变量3-1-1 数据类型 在VisualFoxPro中所有的数据都具有类型,数据类型决定数据的存储方式和使用方式,即数据的取值范围和可以进行的操作。可以把数据存入各种类型的数据表、数组和内存变量中。VisualFoxPro6.0的数据类型分为两大类
2、,一种适用于变量和数组,另一种适用于数据表中的字段。VisualFoxPro定义了13种字段类型和7种数据类型。13种字段类型是:字符型、数值型、浮动型、双精度型、整型、货币型、日期型、日期时间型、逻辑型、备注型、通用型、二进制字符型和二进制备注型。其中7种数据类型是:字符型、数值型、货币型、日期型、日期时间型、逻辑型和通用型。第 4 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3-1-2 常量常量常量:在程序的运行过程中不改变其值的量常量的种类:数值型常量字符型常量逻辑型常量日期型常量货币型常量第 5 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录1.数值型常量
3、数值型常量用整数、小数、科学计数法表示的数举例:85,-56.2,1.256E3,3.8E-2等 第 6 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录2.字符型常量字符型常量由一串字符组成的字符串表示:用“”(双引号)、(单引号)、(方括号)括起来举例:副教授、”boy”、数据库系统是合法常量,而”I am a boy”、Its abest是非法常量。注意:最长只能为254个字符第 7 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3.逻辑型常量逻辑型常量表示“真”或“假”的量表示方法:“真”.T.、.Y.、.t.、.y.“假”.F.、.N.、.f.、.n.注意:
4、两边的点不能少第 8 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录4.货币型常量货币型常量表示货币值的量表示:以$开头,4舍5入到小数点4位举例:$123.456789结果为123.4568第 9 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录5.日期型常量日期型常量日期时间常量也必须用花括号括起来,格式为:YYYY-MM-DDhh:mm:ss a|p例如:2005/05/19 10:04am、2005-05-21 11:32:14pm。但必须注意日期和时间之间必须有空格。6.日期时间型常量日期时间型常量在Visual FoxPro6.0中日期型常量用花括号“”作
5、为定界符括起来,格式为:YYYY-MM-DD例如:2005/05/18,或2005-05-18。第 10 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3.1.3 变量变量 在命令操作和程序运行过程中其值允许变化的量称变量,在Visual FoxPro6.0中使用的变量分为字段变量、内存变量两种。每个变量都必须有一个变量名,变量名是由字母、汉字、数字和下划线组成,但必须以字母或汉字。1字段变量 字段变量是数据表结构中的任意一个数据项。在一个数据表中,一个字段就是一个字段变量。字段变量在建立表结构时定义,修改表结构时可重新定义,或增删字段变量。字段变量的类型有13种。字段变量是一种
6、多值变量,假设一个数据表中有10条记录,那么该数据表的每一字段就有10个取值,当用字段作变量时,它的当前值随着记录指针的移动而不断变化。第 11 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录2内存变量内存变量是表结构之外独立存在于内存中的变量。内存变量可用来存储数据,定义内存变量时需为它取名并赋初值,内存变量建立后存储于内存中。Visual FoxPro6.0中共定义了6种类型的内存变量:数值型、字符型、日期型、日期时间型、逻辑型和货币型。可分为简单变量和数组变量。(1)(1)内存内存变变量量赋值赋值命令命令格式1:内存变量=表达式格式2:STORE TO 功能:计算表达式,然
7、后将计算结果赋给内存变量。第 12 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录(2)(2)表达式表达式值显值显示命令示命令格式:?/?功能:,将表达式的值显示在屏幕上。【说明】1.命令格式中的?/?可任选一个,它们的输出格式不同。?表示从屏幕下一行的第一列起显示结果,?表示从当前行的当前列起显示结果。例如:?Z&在VFP主窗口中显示VFP6.0?s1&换一行后显示28?“数据库应用”&接着上一个命令显示结果28的后面显 示“数据库应用”2.是表示用逗号隔开的多个表达式组,命令执行时遇逗号就空一格。例如:?“Z=”,Z&显示Z=VFP6.0第 13 页 共 50 页上一步上一步
8、下一步下一步关关 闭闭目目 录录3.系统内存变量系统内存变量由VFP自动生成和维护的变量一般以下划线开头举例:_DIARYDATE&当前日期_CLIPTEXT&剪贴板文本例通过_calcvalue系统变量将一个数字传到计算器中,激活计算器窗口并计算结果。clear_calcvalue=20activate window calculator例往剪贴板中写入信息_CLIPTEXT=hello!“查看剪贴板第 14 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录 数组是具有相同名字、不同下标值的一组变量。数组中的每个数据值称为数组元素,每个数组元素在数组中的位置是固定的,可以通过称为
9、下标的编号来进行访问。数组在使用时要由DIMENSION或DECLARE命令来定义。这两个命令完全相同,都是用于建立一维或二维数组。在Visual FoxPro6.0中,同一个数组元素在不同时刻可以存储不同类型的数据,在同一数组中,每个数组元素可以被赋予不同数据类型的值。4.数组变量第 15 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录 数组的定义数组的定义格式:DIMENSION|DECLARE (),()(),()例如:DIMENSION c(4)DIMENSION a(3),b(2,3)第 16 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录 数组的赋值数组
10、的赋值SZ(1)=”ABCD”&给SZ(1)赋值,字符型,值:ABCD SZ(2)=23.45&给SZ(2)赋值,数值型,值:23.45SZ(3)=2005/09/02&给SZ(3)赋值,日期型,值:2005年9月2日SZ(4)=2005/11/02 9:00am&给SZ(4)赋值,日期时间型,值:2005年11月2日上午9点BZ(5)=T&给SZ(5)赋值,逻辑型,值:真第 17 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3-2 Visual FoxPro常见函数常见函数函数的概念VisualFoxPro6.00系统为用户提供了十分丰富的函数,灵活运用这些函数,不仅可以简化
11、许多运算,而且能够加强和完善VisualFoxPro的许多功能。函数的一般格式:()函数的三要素:函数名、参数、函数值如:ABS(-2)第 18 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3-2-1 数学运算函数数学运算函数 1平方根函数SQRT()【格式】SQRT(数值表达式)【功能】计算并返回数值表达式的算术平方根。【例 1】?SQRT(5*5)5.002绝对值函数ABS()【格式】ABS()【功能】计算并返回数值表达式的绝对值。【例 2】?ABS(-43.29)43.29第 19 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3四舍五入函数ROUND()【
12、格式】ROUND(数值表达式,有效位数)【功能】对数值表达式的值按指定的有效位数进行四舍五入。【例3】?R0UND(3.14159,4),ROUND(1234.9962,0),ROUND(1234.567,-1)3.1416 1235 12304取整函数INT()【格式】INT(数值表达式)【功能】计算并返回数值表达式的整数部分。【例 4】?INT(-76.93)-76第 20 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录5求模函数MOD()【格式】MOD(,)【功能】返回除以得到的余数值。【说明】在求摸运算中应注意以下几点:(1)除数不能为0。(2)除数为正数,返回正数;如果
13、为负数,返回负数。(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)&结果为:-2第 21 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3-2-
14、2 字符处理函数1取子串函数SUBSTR()【格式】SUBSTR(字符串表达式,起始位置,长度)【功能】从字符串表达式中的起始位置截取子字符串,长度为所截取的子串的长度。【例 1】store”ABCDEFG”to CN?SUBSTR(CN,4,2),SUBS(CN,1,4),SUBS(CN,6,3)DE ABCD FG 若省略长度,或者长度超过从起始位置到末尾的长度,则截取的子字符串为从起始位置到字符串表达式末尾的所有字符。例如:?SUBSTR(”计算机程序设计教程”,11)设计教程第 22 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录2求字符串长度函数LEN()【格式】LEN
15、字符串表达式【功能】返回字符串表达式中所包含的字符个数,即字符串长度。【例 2】?LEN(”Visual FoxPro6.0”)163搜索子串位置函数AT()【格式】AT(字符串1,字符串2,)【功能】寻找字符串1在字符串2中首次出现的起始位置。若字符串2中不包含字符串1,则返回值为零。若有“数值表达式”(假设数值表达式为K),则寻找字符串1在字符串2中第K次出现的位置。【例 3】X=”Visual FoxPro 6.0”?AT(”Fox”,X)&显示结果为 8?AT(”fox”,X)&显示结果为 0?AT(”o”,X)&显示结果为 9?AT(”o”,X,2)&显示结果为 13第 23 页 共
16、 50 页上一步上一步下一步下一步关关 闭闭目目 录录4空格函数SPACE()【格式】SPACE(数值表达式)【功能】产生与数值表达式的值相同的空格数。【例 4】?”学生”+SPACE(4)+”情况”学生 情况在“学生”和“情况”之间产生了4个空格字符。第 24 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录5宏代换函数&【格式】&字符型内存变量【功能】取“字符型内存变量”的值。【说明】(1)宏代换是一种间接取值的操作,在符号后面必须紧跟(无空格)一个己被赋过值的字符型内存变量的名字。(2)若&字符型内存变量与后面的字符之间无空格分界时,应加上“”符号作为分界符。(3)宏代换的使
17、用可以嵌套另一个宏代换,但不能嵌套自己。例如,X=“&X”的写法是错误的。(4)对于数字字符串,可以通过&函数使其与其他数字进行计算。第 25 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录【例 5】求宏代换。.CH=”X”X=9?&CH&结果为:9 TT=”学生成绩”USE&TT&结果为:打开了“学生成绩.dbf”表文件。X=”2004”M=”+”Y=”&X.&M.1”?Y&结果为:2004+1?&Y&结果为:2005第 26 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3-2-3 转换函数1数值转换为字符串函数STR()【格式】STR(数值表达式,长度,小数位
18、如)【功能】将数值表达式的值转换为由长度和小数位数指定的字符串。如果长度值比数值表达式的整数位数还要小,则返回由长度个“*”组成的字符串。【例1】?STR(1324.46,6,1)1324.5?STR(1324.46,3,1),STR(1324.46,8,3)*1324.460第 27 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录2字符串转换为数值函数VAL()【格式】VAL(字符串表达式)【功能】将字符串表达式转换为数值型数据。【例2】?VAL(”32”+”18”)321800?VAL(”112GH”),VAL(”AB204”),VAL(”ASD”)112.00 0.00 0
19、.00第 28 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3字符转日期函数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/04 8第 29 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3-2-4 日期和时间函数格式:DATE()功能:返回系统日期格式:TIME
20、()功能:返回系统时间格式:DATETIME()功能:返回系统日期时间格式:YEAR()功能:返回中的年份,4位整型格式:month()功能:返回中的月份格式:day()功能:返回中的日期举例?YEAR(2001-10-23)&返回2001?month(date()&返回当天的月份第 30 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3-2-5测试函数1测试文件头函数BOF()【格式】BOF()【功能】该函数用于测试指定文件中的记录指针是否指向文件头。如果是则返回真值,否则返回假值。【例】测试文件记录是否指向文件头。USE 学生档案.dbf?BOF()&显示结果为:.F.SKI
21、P -1&移动记录指针到上一条记录命令?BOF()&显示结果为:.T.第 31 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录2测试文件尾函数EOF()【格式】EOF()【功能】该函数用于测试指定文件中的记录指针是否指向文件尾。如果是则返回真值,否则返回假值。【例】测试文件记录是否指向文件尾。USE 学生档案.dbf GOTO BOTTOM?EOF()&显示结果为:.F.SKIP&移动记录指针到上一条记录命令?EOF()&显示结果为:.T.第 32 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录【格式】RECNO()【功能】测试指定表文件中的记录指针指向的记录号。若
22、指定的工作区无打开的表文件,函数返回值为:0;若指定的表文件无记录或记录指针位于文件头,函数返回值为:1;若记录指针指向文件尾,函数返回值为末记录号加1。【例 】测试记录指针的当前位置(假设学生档案表中有10条记录)。USE 学生档案.dbf GOTO BOTTOM?RECNO()&显示结果为:10 SKIP?RECNO()&显示结果为:11 GO TOP?RECNO()&显示结果为:1 SKIP-1?RECNO()&显示结果为:13 3测试当前记录号函数测试当前记录号函数 RECNO()RECNO()第 33 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录4“空”值测试函数【格
23、式】ISNULL()【功能】判断表达式的运算结果是否为 NULL 值,如果是,则返回逻辑真,否则返回逻辑假。【例4】STORE.NULL.TO A?A,ISNULL(A)&结果为:.NULL.T.第 34 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录5 5空值测试函数空值测试函数【格式】EMPTY()【功能】根据表达式的运算结果是否为“空”值,返回逻辑真或逻辑假。【说明】(1).当表达式的结果是含有空字符串或空格时,EMPTY 函数值返回为.T.,ISNULL 为.F.。(2).当变量是.NULL.时,EMPTY 和 ISBLANK 函数为.F.,ISNULL 为.T.。(3)
24、.当变量是 0 时,EMPTY 函数为.T.,ISNULL 和 ISBLANK 为.F.。第 35 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录v字符处理函数字符处理函数(补充补充)格式:LTRIM()功能:删除字符表达式值前的空格格式:RTRIM(或TRIM()功能:删除字符表达式值后的空格格式:ALLTRIM()功能:将前后的空格去掉举例?“AB”+SPACE(4)+”CD”&返回 AB CD?ALLTRIM(“ABCD ”)&返回 ABCD?len(“abcd”)&返回5?len(alltrim(“ABCD “)&返回 4第 36 页 共 50 页上一步上一步下一步下一步
25、关关 闭闭目目 录录3-3 操作符及表达式 操作符是表示数据之间运算方式的运算符号,一般根据处理数据类型不同可分为算术运算符、字符运算符、关系运算符、逻辑运算符四种。表达式是由常量、变量、函数、操作符及圆括号组成的算式。表达式中的操作对象必须具有相同的数据类型,如果表达式中有不同类型的操作对象,则必须将它们转换成同种数据类型。3-3-1算术表达式算术表达式是由数值型变量、常量、函数和数值操作符组成的。用于对数值型数据进行常规的算术运算。第 37 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录算术运算符算术运算符举例:?5/3 结果:1.67?5%3 结果:2?-3*2-5 结果:
26、4.00?2*7%32+3 结果:8高运算符运算符含义含义优先级优先级()括号 低*或乘方*、/:乘:除%取模(或取余),取两数相除的余数+、-加、减第 38 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录算术运算符算术运算符举例?3/2&返回1.5?5.5%3&返回2.5?Int(5/3)&1,取得数值的整数部分?62&返回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第 39 页 共 50 页上一步上一步下一步下一步关关 闭闭目目
27、 录录3-3-2 字符表达式:字符表达式是由字符型变量、常量、函数和字符操作符组成的。用于字符串的连接或者比较。字符串操作符为:+:连接两个字符串。-:连接两个字符串,并将第一个字符串尾部的空格移到第二个字符串的尾部。$:判断第一个字符串是否是第二个字符串的子字符串。例如:LEN1=”Visual FoxPro6.0 ”LEN2=”数据库教程”?LEN1+LEN2&结果为:Visual FoxPro6.0 数据库教程?LEN1-LEN2&结果为:Visual FoxPro6.0数据库教程?len(LEN1-LEN2)&结果为:28第 40 页 共 50 页上一步上一步下一步下一步关关 闭闭目目
28、 录录3-3-3日期时间表达式日期时间表达式是由日期时间型变量、常量、函数和日期时间操作符组成的。日期时间操作符有:+:添加一个天数或秒数-:减少一个天数或秒数例如:?2005-04-04+10&结果为:04/14/05?2005-04-30-15&结果为:04/15/05?2003-08-04 10:10a+10&结果为:08/04/03 10:10:10 AM?2003-08-04 10:35p-10&结果为:08/04/03 10:34:50 PM第 41 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3-3-4 关系表达式关系表达式用于数值、字符、日期型数据的比较运算。关
29、系表达式的运算优先级相同。关系运算符关系运算符含含 义义关系运算符关系运算符含含 义义小于大于=大于等于=等于#,!=不等于=精确相等例如:?”xyz”#”XYZ”&值为.T.?”abcd”=”abc”&值为.T.?”abc”=”abcd”&值为.F.?”abcd”=”abc”&值为.F.第 42 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录 逻辑表达式是由逻辑型变量、常量、函数和字符运算符组成的。用来对逻辑型数据进行各种逻辑运算,形成各种简单的逻辑结果。3-3-5 逻辑表达式高运算符运算符含含 义义优先级优先级()分组符号 低.NOT.逻辑非.AND.逻辑与.OR.逻辑或例如
30、?1733 .AND3412&值为.F.?16/27.0R.”abc”#”ABC”.AND.NOT.F&值为.T.第 43 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录在多个逻辑值中进行判断,一般用于判断某几个条件是否满足运算对象和运算结果均为逻辑型运算符OR或.OR.:逻辑或,只有两个运算对象均为.F.时,返回.F.;其余均返回.T.AND或.AND.:逻辑与,只有两个运算对象均为.T.时,返回.T.;其余均返回.F.NOT或.NOT.:逻辑非,运算对象为.T.时,返回.F.;运算对象为.F.时,返回.T.ORTFTTTFTFANDTFTTFFFFNOTFTFT第 44 页
31、共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3-3-6空值(nullnull)空值是一个重要的概念。空值就是没有任何值。对数值,它非零;对字符,它非空格串;对逻辑,它非真非假。在应用中,空值的概念是十分有意义的。年龄不知道时,不能填零;姓名不知道时,不能填空字串等。1空值的表示空值的表示为:.NULL.2变量中空值的表示内存变量、数组变量、字段变量均可以赋以空值。变量赋以空值后,其类型不变。也就是说空值不是一个数据类型。例:a=&a为空格字串 b=&b为空字串 c=.null.&c赋以空值,但不改变其类型?empty(a),empty(b)&结果为:.T.T.?isblank(a)
32、,isblank(b)&结果为:.T.T.?isnull(a),isnull(b),isnull(c)&结果为:.F.F.T.?type(c)&结果为:N第 45 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3.表达式中关于空值的处理在函数的参数中(isnull()等例外)或表达式中因空值而使结果未知时,其结果就为空值。例:m=0m=.null.?m+4&结果为:.null.x=.t.?xand.null.&结果为:.null.?xor.null.&结果为:.T.?not.null.&结果为:.null.第 46 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录运算
33、符同级:从左到右运算符不同级表达式的运算顺序 括号运算或算术运算乘方乘、除、取模加、减关系运算所有关系运算同级逻辑运算非与第 47 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录表达式举例:?(SQRT(32*2)/4+6)*5-20?(SQRT(32*2)/4+6)*5-2030?“cd”$“abc”+”def”?Date()=2002-3-8A=5 b=4 c=6?ab and ac?Ab and a+bc第 48 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录3-4 小结本章简要介绍了本章简要介绍了Visual FoxPro 6.0数据库系统中数据数据库系统中数据的基础概念。这一章的内容是学习后面章节和进一步的基础概念。这一章的内容是学习后面章节和进一步开发数据库应用系统的必备的基础知识。要求读者全开发数据库应用系统的必备的基础知识。要求读者全面掌握。面掌握。l 掌握数据类型和数据存储(常量、变量、数组、字段、对象)的方法 l掌握各类型数据运算的操作符、表达式 l掌握常用系统函数的用法 l掌握NULL值的处理方法 第 49 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录第3章 课后练习 思考与练习一、1、2、3、4、5二、1、2、3、4、5 三、1、2、3、4、5第 50 页 共 50 页上一步上一步下一步下一步关关 闭闭目目 录录
限制150内