VFP数值和数值运算.ppt_第1页
VFP数值和数值运算.ppt_第2页
VFP数值和数值运算.ppt_第3页
VFP数值和数值运算.ppt_第4页
VFP数值和数值运算.ppt_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章 数值和 数值运算,计算机应用技术基础,VFP第二章 张胜光制作,2,本章目录,第一节数据类型、常量和变量,VFP第二章 张胜光制作,4,5-1-1 数据类型,在Visual FoxPro中所有的数据都具有类型,数据类型决定数据的存储方式和使用方式,即数据的取值范围和可以进行的操作。 Visual FoxPro6.0的数据类型分为两大类,一种适用于变量和数组,另一种适用于数据表中的字段。Visual FoxPro定义了13种字段类型和7种数据类型。,VFP第二章 张胜光制作,5,数据类型、常量和变量,字段类型是: 字符型、数值型、浮动型、双精度型、整型、货币型、日期型、日期时间型、逻辑型

2、、备注型、通用型、二进制字符型和二进制备注型。 数据类型是: 字符型、数值型、货币型、日期型、日期时间型、逻辑型和通用型。,VFP第二章 张胜光制作,6,5-1-2 常量,常量:在程序的运行过程中不改变其值的量 常量的种类: 数值型常量 字符型常量 逻辑型常量 日期型常量 货币型常量,VFP第二章 张胜光制作,7,1.数值型常量,用整数、小数、科学计数法表示的数 举例: 85,-56.2, 1.256E3, 3.8E-2 等,R=THISFORM.TEXT1.VALUETHISFORM.TEXT2.VALUE=3.14159*R*R,VFP第二章 张胜光制作,8,2. 字符型常量,由一串字符组

3、成的字符串 表示:用“”(双引号)、 (单引号)、 (方括号)括起来 举例: 副教授、”boy”、 数据库系统是合法常量,而”I am a boy”、Its abest是非法常量。 注意:最长只能为254个字符,VFP第二章 张胜光制作,9,3.逻辑型常量,表示“真”或“假”的量 表示方法: “真”.T.、.Y.、.t.、.y. “假”.F.、.N.、.f.、.n. 注意:两边的点不能少,VFP第二章 张胜光制作,10,作业7 标签和按钮隐藏按钮,thisform.label1.visible = mand1.visible = mand2.visible = .t.,VFP第二章 张胜光制作

4、,11,4.货币型常量,表示货币值的量 表示:以$开头,4舍5入到小数点4位 举例: $123.456789结果为123.4568,VFP第二章 张胜光制作,12,5.日期型常量,日期时间常量也必须用花括号括起来, 格式为: YYYY-MM-DDhh:mm:ss a|p 例如:2005/05/19 10:04am、 2005-05-21 11:32:14pm。 但必须注意日期和时间之间必须有空格。,6.日期时间型常量,在Visual FoxPro6.0中日期型常量用花括号“ ”作为定界符括起来,格式为: YYYY-MM-DD 例如:2005/05/18,或2005-05-18。,VFP第二章

5、张胜光制作,13,5-1-3 变量,在命令操作和程序运行过程中其值允许变化的量称变量。 在Visual FoxPro6.0中使用的变量分为字段变量、内存变量两种。 每个变量都必须有一个变量名,变量名是由字母、汉字、数字和下划线组成,但必须以字母或汉字打头。 变量可以理解为在计算机内存中装数据的盒子,盒子的名字就叫变量名,而盒子里可以装各种各样的数据。数据的值与盒子的名字无关。,A1,VFP第二章 张胜光制作,14,1字段变量,字段变量是数据表结构中的任意一个数据项。在一个数据表中,一个字段就是一个字段变量。字段变量在建立表结构时定义,修改表结构时可重新定义,或增删字段变量。字段变量的类型有13

6、种。字段变量是一种多值变量,假设一个数据表中有10条记录,那么该数据表的每一字段就有10个取值,当用字段作变量时,它的当前值随着记录指针的移动而不断变化。,VFP第二章 张胜光制作,15,字段变量,VFP第二章 张胜光制作,16,2内存变量,内存变量是表结构之外独立存在于内存中的变量。 内存变量可用来存储数据,定义内存变量时需为它取名并赋初值,内存变量建立后存储于内存中。 Visual FoxPro6.0中共定义了6种类型的内存变量:数值型、字符型、日期型、日期时间型、逻辑型和货币型。可分为简单变量和数组变量。,VFP第二章 张胜光制作,17,变量名与变量值,形象化地理解,单个的内存变量就是一

7、个个的盒子,变量名写在盒子外边便于识别,而装在里边的东西才是变量的值。所以,不要把变量名与变量的值混为一谈。 变量名 变量的值,TEN,7,VFP第二章 张胜光制作,18,作业5 计算圆面积中的内存变量,R=THISFORM.TEXT1.VALUETHISFORM.TEXT2.VALUE=3.14159*R*R,R,VFP第二章 张胜光制作,19,简单变量,Visual FoxPro6.0中共定义了6种类型的内存变量:数值型、字符型、日期型、日期时间型、逻辑型和货币型。可分为简单变量和数组变量。 简单变量:可以理解为一个一个互相独立的盒子。,R,M,S,VFP第二章 张胜光制作,20,数组变量

8、,可以理解为一排排联接起来的盒子。,一维数组A,VFP第二章 张胜光制作,21,VFP的命令操作和编程操作,在VFP中进行程序调试或数据库操作时,可采用命令方式和编程方式两种方式进行操作。 命令窗口的操作:直接在VFP的命令窗口中输入命令即可。,VFP第二章 张胜光制作,22,编程方式操作,在command窗口键入MODI COMM 程序文件名,就会弹出一个编程窗口,在编程窗口写入源程序,按工具栏上的惊叹号图标即可运行。,VFP第二章 张胜光制作,23,(1) 内存变量赋值命令,格式1:内存变量= TO 功能: 计算表达式,然后将计算结果赋给内存变量。 R=THISFORM.TEXT1.VAL

9、UETHISFORM.TEXT2.VALUE=3.14159*R*R,VFP第二章 张胜光制作,24,VFP第二章 张胜光制作,25,VFP第二章 张胜光制作,26,(2) 表达式值显示命令,格式: ?/? 功能:将表达式的值显示在屏幕上。 【说明】 1.命令格式中的?/?可任选一个,它们的输出格式不同。 ? 表示从屏幕下一行的第一列起显示结果 ? 表示从当前行的当前列起显示结果。,VFP第二章 张胜光制作,27,例如: s1 = 3 ? s1 & 换一行后显示28 ? “数据库应用” & 接着上一个命令显示结果3的后面显示“数据库应用”,VFP第二章 张胜光制作,28,2.是表示用逗号隔开的

10、多个表达式组,命令执行时遇逗号就空一格。 例如: Z= VFP6.0 ? “Z=”,Z & 显示Z= VFP6.0,VFP第二章 张胜光制作,29,3.系统内存变量,由VFP自动生成和维护的变量 一般以下划线开头 举例: _DIARYDATE&当前日期 _CLIPTEXT&剪贴板文本,VFP第二章 张胜光制作,30,数组是具有相同名字、不同下标值的一组变量。数组中的每个数据值称为数组元素,每个数组元素在数组中的位置是固定的,可以通过称为下标的编号来进行访问。数组在使用时要由DIMENSION或DECLARE命令来定义。这两个命令完全相同,都是用于建立一维或二维数组。在Visual FoxPro

11、 6.0中,同一个数组元素在不同时刻可以存储不同类型的数据,在同一数组中,每个数组元素可以被赋予不同数据类型的值。,4.数组变量,VFP第二章 张胜光制作,31,一维数组和二维数组,A1,A2,A3,A4,A5,一维数组A,X(2,1),X(2,2),X(2,3),X(2,4),X(2,5),X(1,1),X(1,2),X(1,3),X(1,4),X(1,5),二维数组x,VFP第二章 张胜光制作,32,数组的定义,格式:DIMENSION |DECLARE () ,() () ,() 例如:DIMENSION c(4) DIMENSION a(3) , b(2,3),VFP第二章 张胜光制作

12、,33,数组的赋值,SZ(1)=”ABCD” & 给SZ(1)赋值,字符型,值:ABCD SZ(2)=23.45 & 给SZ(2)赋值,数值型,值:23.45 SZ(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)赋值,逻辑型,值:真,第二节VFP常见函数,VFP第二章 张胜光制作,35,5-2 Visual FoxPro常见函数,函数的概念: Visual FoxPro6.0 0系统为用户提供了十分丰富的函

13、数,灵活运用这些函数,不仅可以简化许多运算,而且能够加强和完善Visual FoxPro的许多功能。 函数的一般格式: () 函数的三要素:函数名、参数、函数值 如:ABS(-2),VFP第二章 张胜光制作,36,5-2-1 数学运算函数,1平方根函数SQRT() 【格式】 SQRT(数值表达式) 【功能】 计算并返回数值表达式的算术平方根。 【例 1】 ? SQRT(5*5) 5.00,VFP第二章 张胜光制作,37,5-2-1 数学运算函数,2绝对值函数ABS() 【格式】 ABS() 【功能】 计算并返回数值表达式的绝对值。 【例 2】 ? ABS(-43.29) 43.29,VFP第二

14、章 张胜光制作,38,3四舍五入函数ROUND() 【格式】 ROUND(数值表达式,有效位数) 【功能】 对数值表达式的值按指定的有效位数进行四舍五入。 【例3】 ? R0UND(3.14159,4), ROUND(1234.9962,0), ROUND(1234.567,-1) 3.1416 1235 1230,VFP第二章 张胜光制作,39,4取整函数INT() 【格式】 INT(数值表达式) 【功能】 计算并返回数值表达式的整数部分。 【例 4】 ? INT(-76.93) -76,VFP第二章 张胜光制作,40,5求模函数MOD() 【格式】 MOD(,) 【功能】 返回除以得到的余

15、数值。 【说明】 在求摸运算中应注意以下几点: (1) 除数不能为0。 (2) 除数为正数,返回正数;如果为负数,返回负数。 (3) 如果被除数与除数能够整除,结果为0。 (4) 如果被除数与除数不能整除,且被除数与除数同号,则结果为被除数除以除数而得到的余数。即:MOD(X1,X2)=X1-INT(X1/X2)*X2 。 (5) 如果被除数与除数不能整除,且被除数与除数异号,则结果为被除数除以除数而得到的余数再加上除数。 即: MOD(X1,X2)=X1-INT(X1/X2)*X2+X2 。,VFP第二章 张胜光制作,41,5求模函数MOD() 【格式】 MOD(,) 【功能】 返回除以得到

16、的余数值。 【例 5】 ? MOD(10,3) &结果为:1 ? MOD(-10,-3) &结果为:-1 ? MOD(-10,3) &结果为:2 ? MOD(10,-3) &结果为:-2,VFP第二章 张胜光制作,42,3-2-2 字符处理函数,1取子串函数SUBSTR() 【格式】 SUBSTR(字符串表达式,起始位置 ,长度) 【功能】 从字符串表达式中的起始位置截取子字符串,长度为所截取的子串的长度。,VFP第二章 张胜光制作,43,3-2-2 字符处理函数,【例 1】store ”ABCDEFG” to CN ? SUBSTR(CN,4,2),SUBS(CN,1,4),SUBS(CN,

17、6,3) DE ABCD FG 若省略长度,或者长度超过从起始位置到末尾的长度,则截取的子字符串为从起始位置到字符串表达式末尾的所有字符。例如: ? SUBSTR(”计算机程序设计教程”,11) 设计教程,VFP第二章 张胜光制作,44,2求字符串长度函数LEN() 【格式】 LEN字符串表达式 【功能】 返回字符串表达式中所包含的字符个数,即字符串长度。 【例 2】 ? LEN(”Visual FoxPro6.0”) 16,VFP第二章 张胜光制作,45,3搜索子串位置函数AT() 【格式】 AT(字符串1,字符串2,) 【功能】 寻找字符串1在字符串2中首次出现的起始位置。若字符串2中不包

18、含字符串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,VFP第二章 张胜光制作,46,4空格函数SPACE() 【格式】 SPACE(数值表达式) 【功能】 产生与数值表达式的值相同的空格数。 【例 4】 ? ”学生”+SPACE(4)+”情况” 学生 情况 在“ 学生”和“情况”之间产生了

19、4个空格字符。,VFP第二章 张胜光制作,47,5宏代换函数 & 【格式】&字符型内存变量 【功能】取“字符型内存变量”的值。 【说明】 (1) 宏代换是一种间接取值的操作,在符号后面必须紧跟(无空格)一个己被赋过值的字符型内存变量的名字。 (2)若&字符型内存变量与后面的字符之间无空格分界时,应加上“”符号作为分界符。 (3)宏代换的使用可以嵌套另一个宏代换,但不能嵌套自己。例如,X=“&X”的写法是错误的。 (4) 对于数字字符串,可以通过&函数使其与其他数字进行计算。,VFP第二章 张胜光制作,48,【例 5】求宏代换。 . CH=”X” X=9 ? &CH &结果为:9 TT=”学生成

20、绩” USE &TT &结果为:打开了“学生成绩.dbf”表文件。 X=”2004” M=”+” Y=”&X.&M.1” ? Y &结果为:2004+1 ? &Y &结果为:2005,VFP第二章 张胜光制作,49,3-2-3 转换函数,1数值转换为字符串函数STR() 【格式】 STR(数值表达式,长度,小数位如) 【功能】 将数值表达式的值转换为由长度和小数位数指定的字符串。如果长度值比数值表达式的整数位数还要小,则返回由长度个“*”组成的字符串。 【例1】 ? STR(1324.46,6,1) 1324.5 ? STR(1324.46,3,1),STR(1324.46,8,3) * 13

21、24.460,VFP第二章 张胜光制作,50,2字符串转换为数值函数VAL() 【格式】 VAL(字符串表达式) 【功能】 将字符串表达式转换为数值型数据。 【例2】 ? VAL(”32”+”18”) 321800 ? VAL(”112GH”),VAL(”AB204”),VAL(”ASD”) 112.00 0.00 0.00,VFP第二章 张胜光制作,51,3字符转日期函数CTOD() 【格式】 CTOD(字符串表达式) 【功能】 将“月/日/年”格式的字符串表达式转换为日期型数据。 【例3】 DA=”12/12/04” ? CTOD(DA) 12/12/04,VFP第二章 张胜光制作,52,

22、4日期型转换为字符串函数DTOC() 【格式】 DTOC(日期) 【功能】 将日期转换为相应的字符串。 【例4】 D=2004/11/24 DT=DTOC(D) ? DT ? LEN(DT) 11/24/04 8,VFP第二章 张胜光制作,53,字符处理函数(补充),格式:LTRIM() 功能:删除字符表达式值前的空格 格式:RTRIM(或TRIM() 功能:删除字符表达式值后的空格 格式:ALLTRIM() 功能:将前后的空格去掉 举例 ?“AB”+SPACE(4)+”CD” &返回 AB CD ? ALLTRIM(“ ABCD ”) &返回 ABCD ?len(“ abcd”) &返回5

23、?len(alltrim(“ ABCD “) &返回 4,VFP第二章 张胜光制作,54,3-2-4 日期和时间函数,格式:DATE() 功能:返回系统日期 格式:TIME() 功能:返回系统时间 格式:DATETIME() 功能:返回系统日期时间 格式:YEAR() 功能:返回中的年份,4位整型,VFP第二章 张胜光制作,55,格式:month() 功能:返回中的月份 格式:day() 功能:返回中的日期,举例 ? YEAR(2001-10-23)&返回2001 ? month(date()&返回当天的月份,VFP第二章 张胜光制作,56,3-2-5 测试函数,1测试文件头函数BOF() 【

24、格式】 BOF() 【功能】 该函数用于测试指定文件中的记录指针是否指向文件头。如果是则返回真值,否则返回假值。,VFP第二章 张胜光制作,57,3-2-5 测试函数,【例】 测试文件记录是否指向文件头。 USE 学生档案.dbf ? BOF() & 显示结果为:.F. SKIP -1 & 移动记录指针到上一条记录命令 ? BOF() & 显示结果为:.T.,VFP第二章 张胜光制作,58,2测试文件尾函数EOF() 【格式】 EOF() 【功能】 该函数用于测试指定文件中的记录指针是否指向文件尾。如果是则返回真值,否则返回假值。 【例】 测试文件记录是否指向文件尾。 USE 学生档案.dbf

25、 GOTO BOTTOM ? EOF() & 显示结果为:.F. SKIP & 移动记录指针到上一条记录命令 ? EOF() & 显示结果为:.T.,VFP第二章 张胜光制作,59,【格式】 RECNO() 【功能】 测试指定表文件中的记录指针指向的记录号。若指定的工作区无打开的表文件,函数返回值为:0;若指定的表文件无记录或记录指针位于文件头,函数返回值为:1;若记录指针指向文件尾,函数返回值为末记录号加1。 【例 】 测试记录指针的当前位置(假设学生档案表中有10条记录)。 USE 学生档案.dbf GOTO BOTTOM ? RECNO() & 显示结果为:10 SKIP ? RECNO

26、() & 显示结果为:11 GO TOP ? RECNO() & 显示结果为: 1 SKIP -1 ? RECNO() & 显示结果为: 1,3测试当前记录号函数 RECNO(),VFP第二章 张胜光制作,60,4“空”值测试函数 【格式】 ISNULL() 【功能】 判断表达式的运算结果是否为 NULL 值,如果是,则返回逻辑真,否则返回逻辑假。 【例4】 STORE .NULL. TO A ? A,ISNULL(A) &结果为:.NULL. .T.,VFP第二章 张胜光制作,61,5空值测试函数 【格式】 EMPTY() 【功能】 根据表达式的运算结果是否为 “ 空 ” 值, 返回逻辑真或

27、逻辑假。 【说明】 (1).当表达式的结果是含有空字符串或空格时, EMPTY 函数值返回为 .T. , ISNULL 为 .F. 。 (2).当变量是 .NULL. 时, EMPTY 和 ISBLANK 函数为 .F.,ISNULL 为 .T. 。 (3).当变量是 0 时, EMPTY 函数为 .T. , ISNULL 和 ISBLANK 为 .F. 。,第三节操作符与表达式,VFP第二章 张胜光制作,63,3-3 操作符及表达式,操作符是表示数据之间运算方式的运算符号,一般根据处理数据类型不同可分为算术运算符、字符运算符、关系运算符、逻辑运算符四种。表达式是由常量、变量、函数、操作符及圆

28、括号组成的算式。表达式中的操作对象必须具有相同的数据类型,如果表达式中有不同类型的操作对象,则必须将它们转换成同种数据类型。,VFP第二章 张胜光制作,64,3-3-1算术表达式,算术表达式是由数值型变量、常量、函数和数值操作符组成的。用于对数值型数据进行常规的算术运算。,VFP第二章 张胜光制作,65,算术运算符,举例: ? 5/3 结果:1.67 ? 5%3 结果:2 ? -3*2-5 结果:4.00 ? 2*7%32+3 结果:8,高,VFP第二章 张胜光制作,66,算术运算符,举例 ? 3/2&返回1.5 ? 5.5%3&返回2.5 ? Int(5/3)& 1,取得数值的整数部分 ?

29、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,VFP第二章 张胜光制作,67,3-3-2 字符表达式:,字符表达式是由字符型变量、常量、函数和字符操作符组成的。用于字符串的连接或者比较。 字符串操作符为: +:连接两个字符串。 -:连接两个字符串,并将第一个字符串尾部的空格移到第二个字符串的尾部。 $:判断第一个字符串是否是第二个字符串的子字符串。,VFP第二章 张胜光制作,68,例如: LEN1=”Visual Fo

30、xPro6.0 ” LEN2=”数据库教程” ? LEN1+LEN2 & 结果为:Visual FoxPro6.0 数据库教程 ? LEN1-LEN2 & 结果为:Visual FoxPro6.0 数据库教程 ? len(LEN1-LEN2) & 结果为:28,VFP第二章 张胜光制作,69,3-3-3 日期时间表达式,日期时间表达式是由日期时间型变量、常量、函数和日期时间操作符组成的。 日期时间操作符有: +:添加一个天数或秒数 -:减少一个天数或秒数,VFP第二章 张胜光制作,70,3-3-3 日期时间表达式,例如:? 2005-04-04+10 &结果为:04/14/05 ? 2005-

31、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,VFP第二章 张胜光制作,71,3-3-4 关系表达式,关系表达式用于数值、字符、日期型数据的比较运算。关系表达式的运算优先级相同。,例如: ? ”xyz”#”XYZ” & 值为.T. ? ”abcd”=”abc” & 值为.T. ? ”abc”=”abcd” & 值为.F. ? ”abcd”=”abc” & 值为.F.,VFP第二章 张胜光制作,72,逻辑表达式是由逻辑型变量、常量、函数和字符运算符组成的。用来对逻辑型数据进行各种逻辑运算,形成各种简单的逻辑结果。,3-3-5 逻辑表达式,高,例如 ? 1733 .AND3412 & 值为.F. ? 16/27 .0R. ”abc”#”ABC” .AND. NOT.F & 值为.T.,VFP第二章 张胜光制作,73,在多个逻辑值中进行判断,一般用于判断某几个条件是否满足 运算对象和运算结果均为逻辑型 运算符 OR或.OR.:逻辑或,只有两个运算对象均为.F.时,返回.F.;其余均返回.T. AND或.AND.:逻辑与,只有两个运算对象均为.T.时,返回.T.;其余均返回.F. N

温馨提示

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

评论

0/150

提交评论