590 likes | 833 Views
第 3 章 常量、变量、表达式、函数. 数据类型. 数据描述:类型、值。 数据类型:是数据的基本属性。字符,数值 数据运算:必须在相同类型的数据之间进行 类型划分:字段类型(描述表),数据类型 13 种字段类型、 7 种数据类型。. 下一张. 常用数据类型. 字符型:西文、中文、数字、符号。 数值型:数字、 + 、 - 、 . 。 日期型:年月日。 逻辑型:逻辑真、逻辑假。 备注型:(字段)变长。. 下一张. 常量与变量. 应用系统 :程序 + 数据。 内存中保存数据的位置(空间)被称作“ 量 ”。 常量 :“量”中的数据不可以改变。
E N D
数据类型 数据描述:类型、值。 数据类型:是数据的基本属性。字符,数值 数据运算:必须在相同类型的数据之间进行 类型划分:字段类型(描述表),数据类型 13种字段类型、7种数据类型。 下一张
常用数据类型 字符型:西文、中文、数字、符号。 数值型:数字、+、-、.。 日期型:年月日。 逻辑型:逻辑真、逻辑假。 备注型:(字段)变长。 下一张
常量与变量 应用系统:程序+数据。 内存中保存数据的位置(空间)被称作“量”。 常量:“量”中的数据不可以改变。 变量:“量”中的数据可以改变(读、写)。 变量名:为读写变量(内存)中的数据,给内存变量空间起一个名字,通过对变量名引用、赋值实现读写变量内容。 下一张
常量定界符 数值型常量:无定界符,0 – 9,+,-,小数点 字符型常量:“ ” ,‘ ’ ,[ ] 逻辑型常量:.t. .T. .y. .Y. 逻辑真, .f. .F. .n. .N. 逻辑假。 日期型常量:{^ } {^2005/09/01} 下一张
变量 变量名:以字母开头最多不超过10个字母、下划线、数字。不能使用foxpro保留字。list 系统变量:用户可以引用,不能修改,以下划线开头。 字段变量:数据表文件结构中的数据项。随着数据指针的指向不同,字段内容也不同。打开数据表时可以引用,关闭数据表则不能引用。 下一张
变量 内存变量:在程序运行时独立存在于内存中的数据变量,程序结束,内存变量消失,内容丢失,占用的空间被释放。 内存变量作用:保存中间结果,控制程序运行。 内存变量类型:取决于赋值时的数据类型。 下一张
变量 数组变量:有组织的结构化内存变量。 数组定义:开辟一个结构化的内存空间,一维a(6),二维b(3,4)。 数组使用:与普通的内存变量使用一样。 使用方式:数组名(下标值),下标可以是常量也可以是变量。 下一张
内存变量赋值(写) 等号=赋值格式:(变量名=数据) 常量赋值:va=123.5,vb=“刘华” 变量赋值:vc=va 表达式赋值:vd=10+24,st=“abc”+”def” gg=vd-4 下一张
内存变量赋值(写) Store 语句赋值:将一个数据同时赋值给一组变量。 格式:Store 表达式 to 变量表 Store 3 to vk, hi, name (常量) Store vk to pl, age (变更量) Store age+4 to vg (表达式) 下一张
内存变量赋值(写) 定义数组格式:dime ma(3,2), nb(4) Dimension Declare Public 数组元素赋值:数组元素名(下标值)=数值 Ma(1,1)=10 (数值常量) Nb(2)=“刘华” (常量) Ma(1,2)=nb(2) (字符变量) Ma(2,2)=ma(1,1) (数值变量) Va=2 (常量) Ma(1,2)=va+4 (表达式,类型改变) Nb=0 (赋值0给所有元素) 下一张
数组及数组元素 一维数组 X[5] 两维数组 X[3,4] X(1,1) X(1,2) X(1,3) X(1,4) X(2,1) X(2,2) X(2,3) X(2,4) X(3,1) X(3,2) X(3,3) X(3,4) X(1) X(2) X(3) X(4) X(5) 返回
内存变量赋值(写) i=2 J=3 Ma(j,i)=4 ma(3,2)=4 i=1 J=2 Ma(j,i)=10 (下标为变量)等价于ma(2,1) Store 1+2 to va,ma(i,j),nb 下一张
变量引用(读) 等号赋值语句等号右边出现的变量为引用读。 内存变量引用:va=vn 数组变量引用:vc=ma(1,2) 字段变量引用:vname=姓名 系统变量引用:vb=_browser store语句变量引用位置? Store vs to nm, ku 引用与字段变量同名的内存变量:m->内存变量名 下一张
显示内存中的存储内容 连续显示内存内容:List memo 分页显示内存内容:Display memo 显示A开头的内存变量内容:Disp memo a* 显示内存状态:List status 下一张
表达式 表达式结构:运算对象+运算符+运算对象 运算对象:常量、变量、函数、表达式。 运算符:算数运算符、字符运算符、关系运算符、逻辑运算符。 显示表达式的值:?表达式 表达式赋值:va=表达式 下一张
表达式 算术运算符: 最好使用()明确运算的分级 下一张
算术运算 表达式结果类型为数值型 运算对象为常量:va=10+4 运算对象为变量:vb=va%9 运算对象为函数:vc=int(12.56)取整 运算对象为表达式:vd=va-vc%8 下一张
关系运算 关系运算符: 下一张
关系运算 表达式结果类型为逻辑值,比较大小、包含判断 数值比较:12<18 结果为真,12>18结果为假 西文比较:”a”>”b”结果为假,”a”<“b”结果为真 汉字比较:”刘”>”王”为假, ”刘”<”王”为真 符号比较:”#”>”$”为假, ”#”<”$”为真 日期比较:{^2005/09/01}>{^2004/10/03}为真 精确比较:”AB”=“A”为真,”AB”==“A”为假 包含判断:”A”$”CA”为真,”C”$”AB”为假 问:”A”=“AB” “CA”$”A” set exact on|off 注:比较的实质是符号的ASCII码之间的比较 下一张
逻辑运算 逻辑运算符: 下一张
逻辑运算 表达式结果类型为逻辑值,运算对象的数据类型必须为逻辑型。 用于组织条件表达式,控制数据的处理 下一张
字符串运算 字符串运算符: 下一张
日期运算 日期运算: 下一张
函数 函数定义:是一段为实现一定功能已经编写好的可以直接调用的程序模块。 系统函数:由VISUAL FOXPRO提供 自定义函数:自己编写的函数。 函数的构成:输入数据->处理->输出数据。 函数调用:变量=函数名(参数列表) 参数列表为接受输入的数据 函数的返回值为处理后输出的数据 函数的返回值有类型之分。 下一张
常用函数 数学运算函数 字符和字符串处理函数 转换函数 日期函数 其他函数 下一张
数学函数INT() 语法:INT(数值表达式) 取整函数:将数值型表达式的结果中的整数部分取出 返回值类型:数值型 例: ?INT(44.17) => 44 下一张
数学函数ROUND() 语法:ROUN(数值表达式1,数值表达式2) 四舍五入函数:对数值表达式按指定位置(数值表达式2)进行四舍五入处理 返回值类型:数值型 例: 舍入位>0,?ROUND(1254.678,2)=>1254.68 舍入位=0,?ROUND(1254.678,0)=>1255 舍入位<0,?ROUND(1254.678,-2)=>1300 下一张
数学函数ABS() 语法:ABS(数值表达式) 取绝对值函数:取数值表达式的绝对值 返回值类型:数值型 例: ?ABS(-128.6) => 128.6 下一张
数学函数PI() 语法:PI() 求圆周率函数:取圆周率 返回值类型:数值型 例: ?PI() =>3.1415926538 下一张
数学函数MOD() 语法:MOD(数值表达式1,数值表达式2) 求余函数:求数值表达式1除以数值表达式2(两个数相除)后的余数 返回值类型:数值型 例: ?MOD(19,8) => 3 下一张
字符函数SUBSTR() 语法:SUBSTR(字符表达式,数值表达式1,数值表达式2) 截取子串函数:在字符表达式中,从数值表达式1(起始位置)开始截取数值表达式2(截取长度)个的字符(被截取部分字符表达式的子串) 返回值类型:字符型 例: ?SUBSTR(“ABCDEFG”,3,2) => “CD” 下一张
字符函数?TRIM()向下兼容 语法:TRIM(字符表达式) 删除尾部空格 RTRIM (字符表达式) 删除右边空格 LTRIM (字符表达式) 删除左边空格 ALLTRIM (字符表达式) 删除两端空格 删除空格函数:删除一个字符串的前导(左边)或尾部(右边)的空格 返回值类型:字符型 例: ?”12”+RTRIM(“ ABD “)+”34” => “12 AB34” 下一张
字符函数SPACE() 语法:SPACE(数值表达式) 空格函数:生数值表达式指定长度的空格组成的字符串 返回值类型:字符型 例: ?”1”+SPACE(15)+”2” => “1 2” 下一张
字符函数LEN() 语法:LEN(字符表达式) 求字符串长度函数:计算字符表达式中的字节个数 返回值类型:数值型 例: ?LEN(“中国”) => 4 下一张
字符函数LOWER()UPPER() 语法:LOWER(西文字符表达式)大写转小写 UPPER(西文字符表达式)小写转大写 大小写转换函数:将西文字符表达式中的大写字符转小写字符,或小写字符转大写字符 返回值类型:字符型 例: ?LOWER(“AbcDe”) => “abcde” ?UPPER(“AbcDe”) => “ABCDE” 下一张
字符函数AT() 语法:AT(字符表达式1,字符表达式2,数值表达式) 子串位置函数:求字符表达式1(子串)在另一个字符表达式2中第(数值表达式)次出现的位置 返回值类型:数值型 例: ?AT(“cd”,”abcdecdf”) =>3 ?AT(“cd”,”abcdecdf”,2) =>6 ?AT(“cd”,”acbde”) =>0 未出现 下一张
字符函数LEFT(),RIGHT() 语法:LEFT(字符表达式,数值表达式) RIGHT(字符表达式,数值表达式) 截取字符串函数:LEFT从字符表达式的左边截取数值表达式表示的字节长度的字符串 函数返回值:字符型 例: ?LEFT(“abcdefgh”,4) =>”abcd” ?RIGHT(“abcdefgh”,4) =>”efgh” 下一张
转换函数STR() 语法:STR(数值表达式1,数值表达式2,数值表达式3) 数值转字符函数:将数值表达式1转换成字符串,字符串长度等于数值表达式2,其中小数位长度等数值表达式3 返回值类型:字符型 例: ?STR(1234.567,7,2) =>”1234.57” ?STR(1234.567,8,2) =>”_1234.57” 下一张
转换函数VAL() 语法:VAL(字符表达式) 字符转数值函数:将字符表达式左边开始的数字转换成数值 返回值类型:数值型 例: ?VAL(“123.4A809”) =>123.4 ?VAL(“A123.4B809”) =>0 下一张
转换函数CTOD() 语法:CTOD(字符表达式) 字符转日期函数:将字符表达式转换成日期型数据 返回值类型:日期型 例: ?CTOD(“1995.09.21”) =>{^1995.09.21} SET DATE TO YMD(ANSI) SET CENTUR ON 下一张
转换函数DTOC() 语法:DTOC(日期型表达式) 日期转字符函数:将日期表达式转换成字符型数据 返回值类型:字符型 例: ?DTOC({^1995.08.17}) =>”1995/08/17” 下一张
转换函数ASC() 语法:ASC(字符表达式) 字符转ASCII码函数:将字符表达式的第一个字(节)表示成ASCII码值 返回值类型:数值型 例: ?ASC(“Teacher”) =>84 ?ASC(“中国”) =>54992 下一张
转换函数CHR() 语法:CHR(数值表达式) ASCII码转字符函数:将ASCII码值转换成字符(汉字) 返回值类型:字符型 例: ?CHR(97) =>”a” ?CHR(53994) =>”谊” 下一张
日期函数DATE() 语法:DATE() 年月日函数:返回系统当前日期 返回值类型:日期型 例: ?DATE() =>{^2005/09/24} SET DATE TO ANSI (YMD) SET CENT ON YYYY 下一张
日期函数YEAR() 语法:YEAR(日期表达式) 年函数:返回日期表达式中的4位年份 返回值类型:数值型 例: ?YEAR({^1995.08.17}) =>1995 ?YEAR(DATE()) =>当前日期年份数 下一张
日期函数MONTH() 语法:MONTH(日期表达式) 月函数:返回日期表达式中的月份数 返回值类型:数值型 例: ?MONTH({^2005.10.21}) =>10 ?MONTH(DATE()) =>当前日期月份数 下一张
日期函数CMONTH() 语法:CMONTH(日期表达式) 月函数:返回日期表达式中的西文月份 返回值类型:字符型 例: ?MONTH({^2005.10.21}) =>”October” ?MONTH(DATE()) =>当前日期中西文月份 下一张
日期函数DAY() 语法:DAY(日期表达式) 日函数:返回日期表达式中日数 返回值类型:数值型 例: ?DAY({^1993.12.27}) =>27 ?DAY(DATE()) =>当前日数 下一张
日期函数DOW() 语法:DOW(日期表达式) 星期函数:返回日期表达式中对应的星期数 返回值类型:数值型 例: ?DOW({^1996.08.13}) =>3 ?DOW(DATE()) =>当前日中对应的星期数 下一张