Presentation is loading. Please wait.

Presentation is loading. Please wait.

第三讲 一.VFP中表达式、常量、变量 二.变量与数组操作 三.函数与函数操作 2018/11/27 中国医科大学计算机中心 徐东雨讲师.

Similar presentations


Presentation on theme: "第三讲 一.VFP中表达式、常量、变量 二.变量与数组操作 三.函数与函数操作 2018/11/27 中国医科大学计算机中心 徐东雨讲师."— Presentation transcript:

1 第三讲 一.VFP中表达式、常量、变量 二.变量与数组操作 三.函数与函数操作 2018/11/27 中国医科大学计算机中心 徐东雨讲师

2 1.表达式 (五种) 算术表达式 字符表达式 日期表达式 关系表达式 逻辑表达式
一、VFP中的表达式、常量、变量 1.表达式  (五种) 算术表达式 字符表达式 日期表达式 关系表达式 逻辑表达式 2018/11/27 中国医科大学计算机中心 徐东雨讲师

3 算术表达式 也称数字表达式。由算术运算符、数字常量、变量、函数组成。 运算符; +、-、*、/、**或^、 ( ) 数学公式 表达式
运算符; +、-、*、/、**或^、 ( ) 数学公式 表达式 AX2+BX+C A*X^2+B*X+C              SQRT(B^2-4*A*C)  (a+b)/(c*d)*(a*b)/(c+d) 2018/11/27 中国医科大学计算机中心 徐东雨讲师

4 2. 字符表达式 字符串定界符:“abc”、 ‘abc’、[abc] 字符运算符: 有两个:+和- 运算 例如 结果
字符运算符: 有两个:+和- 运算 例如 结果 ? “abcd ”+ “efg” “abcd efg” ? “abcd ”- “efg”  “abcdefg ” 2018/11/27 中国医科大学计算机中心 徐东雨讲师

5 3.日期表达式 由算术运算符+、-,算术表达式、日期常量、变量、函数组成。 例如 ?Date() +15 ?Date() -15
  ?ctod(“01/25/2005”)-ctod(“01/10/2005”)      结果等于 15  2018/11/27 中国医科大学计算机中心 徐东雨讲师

6 4.关系表达式 由关系运算符、算术表达式、字符串表达式、变量、函数组成。关系运算符两侧的类型必须一致。
关系运算的结果为逻辑真值(.t.)或逻辑假值(.f.) 关系运算符; >   大于 >=     大于等于 <  小于 <=     小于等于 =      等于 <> 或 #  不等于 $      字符串包含 ==     字符串精确比较 2018/11/27 中国医科大学计算机中心 徐东雨讲师

7 5.逻辑表达式 由关系表达式、逻辑运算符、变量、函数组成。 一般格式为:
 <关系表达式1><逻辑运算符><关系表达式2> 结果;真值 .T. 或 假值 .F. 表示 逻辑运算符  .NOT. 逻辑非         .AND. 逻辑与         .OR 逻辑或 运算优先级 一级 算术运算、字符串运算        二级 关系运算        三级 逻辑运算  表达式运算次序          按照运算符的优先级进行运算。  2018/11/27 中国医科大学计算机中心 徐东雨讲师

8 VFP中的常量也称常数(四种) 数字常数 字符常数 逻辑常数 日期常数
2018/11/27 中国医科大学计算机中心 王世伟教授

9 2. 字符常数 用定界符括起来的字符序列称为字符串。 定界符有三种; “ ”、 ‘ ’ 、[ ] 例如 “中国” ‘医科’ [大学]
1. 数字常数 由正负号、数字、小数点组成。 例如     2. 字符常数 用定界符括起来的字符序列称为字符串。 定界符有三种; “ ”、  ‘ ’  、[ ] 例如  “中国”  ‘医科’  [大学] 2018/11/27 中国医科大学计算机中心 徐东雨讲师

10 3.逻辑常数 4.日期常数 一般格式 {月/日/年} 例如 {04/12/2005} 由真值和假值组成。
由真值和假值组成。    .y. .Y. .T. .t. 代表真值   .n. .N. .F. .f. 代表假值 4.日期常数  一般格式  {月/日/年}   例如 {04/12/2005} 2018/11/27 中国医科大学计算机中心 徐东雨讲师

11 三、变量与数组操作 字段变量 内存变量 数组变量 变量(3种) 变量名;字母或汉字开头,后跟字母、数字、符号等组成,
  运算中可以改变的量称为变量,用变量名来标识。 变量名;字母或汉字开头,后跟字母、数字、符号等组成, 最多不超10个字符,中间不能有空格。 字段变量 内存变量 数组变量 2018/11/27 中国医科大学计算机中心 王世伟教授

12 VFP有三种变量 字段变量;是数据库处理的最基本的变量,用字段名表示,有五种类型,C、N、L、D、M。
内存变量:是独立于表的临时工作单元。可随时给变量赋值或释放。由名字、类型、宽度组成。类型分N、C、D、L、M。 数组变量:也称下标变量,由数组名和括号内的下标组成。其中下标也可以是变量或表达式. 例如 A(20)  B(5,10)  C( 2+8) D(x) 2018/11/27 中国医科大学计算机中心 徐东雨讲师

13 内存变量的操作 1. 内存变量的赋值操作; 命令格式一 STORE <表达式> TO <变量名表>
例 STOR 3*5 TO A,B,C,D STOR “中国医大” to xm 命令格式二   <变量名> = <表达式> name=“张山”   aa=12 b=aa+15 c=.t. d=ctod(“03/15/2005”) 2018/11/27 中国医科大学计算机中心 徐东雨讲师

14 内存变量的操作 2. 内存变量的显示; 命令格式一 LIST MEMO [ TO PRINT]
DISPLAY MEMO [ TO PRINT] 例 list memo 命令格式二   ? <变量名表> ?? <变量名表> 例如   name=“张山”      nl=12 ? “姓名”,Name,“年龄”,nl 2018/11/27 中国医科大学计算机中心 徐东雨讲师

15 内存变量的操作 3. 内存变量的删除; 命令格式一 CLEAR MEMO (清除全部变量)
命令格式二 RELEASE <内存变量名表> 命令格式三  RELEASE ALL [LIKE/EXCEPT <通配变量名表>] 例如   name=“张山”      nl=12 rele nl disp memo 2018/11/27 中国医科大学计算机中心 徐东雨讲师

16 内存变量的操作 4. SAVE TO <文件名> [ all LIKE / EXCEPT 通配变量名表]
功能:将变量保存到磁盘文件中,扩展名为. Mem. 例如  save to blk   save to blk all like A* (保存所有A字母开头的变量到名为BLK的文件中,将产生blk.mem的磁盘文件。 2018/11/27 中国医科大学计算机中心 徐东雨讲师

17 内存变量的操作 5. 内存变量的恢复; disp memo (显示50个变量) restore from blk addi (有50个变量)
5. 内存变量的恢复;    命令格式 RESTORE FROM <文件名> [ADDITIVE] 功能;打开磁盘上的变量文件,将变量恢复并替换到内存变量中。如用ADDITIVE参数则全部追加到内存变量 例如 现有内存变量5个;   restore from blk (有50个变量)   disp memo (显示50个变量) restore from blk addi (有50个变量) disp memo (显示55个变量) 2018/11/27 中国医科大学计算机中心 徐东雨讲师

18 数组变量的操作 数组的定义; dimension <数组名>(数字表达式), <数组名>(数字表达式)…
功能 定义数组名,维数及各维的大小。 例如 dime a(20), b(3,4) 说明 定义了一维数组A数组    A(1), A(2), a(3) , a(4), a(5)  … a(20)    定义了二维数组B数组     b(1,1), b(1,2), b(1,3), b(1,4)     b(2,1), b(2,2), b(2,3), b(2,4)     b(3,1), b(3,2), b(3,3), b(3,4) 2018/11/27 中国医科大学计算机中心 徐东雨讲师

19 数组变量的操作 数组的赋值; store <表达式> to 数组名(下标) 数组名(下标) = <表达式>
例如 dime a(4), b(3,4) A(1)=12 A(2)=“ok” store 3*5 to b(1,1) , b(2,1)  ? A(1),A(2),B(1,1),B(2,1)  2018/11/27 中国医科大学计算机中心 徐东雨讲师

20 三、 VFP的函数操作 VFP中函数是一种可以运行的特殊运算,并立即给出函数值。 函数的一般形式;函数名(自变量表)
如开平方   ? SQRT (123)  输出结果    vfp提供六大类73个函数 算术运算函数、字符函数、日期时间函数 类型转换函数、测试函数、标识函数 。 2018/11/27 中国医科大学计算机中心 徐东雨讲师

21 算术运算函数 1.取绝对值函数 ABS( N) 例 ? ABS(-123) 123 2.指数函数 EXP( N) 求eX值
3.取整函数 INT(N) (不4舍5入)  例?Int(123.67) 4.自然对数LOG(N) 求e为底的对数 例?LOG(10) 5.平方根函数SQRT(N) 例 ? SQRT(123) 2018/11/27 中国医科大学计算机中心 徐东雨讲师

22 6.最大值函数 MAX(N1,N2) 求两个数字表达式中最大值,也可以比较字符型或日期型值。 ?max(123,342) 342
?Max(“fish”,“cat”) fish 7.最小值函数 MIN(N1,N2) 求两个数字表达式中最小值,也可以比较字符型或日期型值。      ?min(123,342)   123   ?Min (“fish”,“cat”) cat 8.求余数函数 MOD(N1,N2) 求n1/n2的余数 ?MOD(10,3) 1 9.舍入函数ROUND(N,M) 求对N保留M位小数,有4舍5入  ?Round(1.5678,2)   1.57 2018/11/27 中国医科大学计算机中心 徐东雨讲师

23 2. 字符操作函数 宏替换函数 &<字符变量> 例如 km=“stu” use &km 打开了名为stu的表 例如 h=“好”
2. 字符操作函数 宏替换函数  &<字符变量>    例如   km=“stu”     use &km 打开了名为stu的表   例如  h=“好”       ?“您&h.!” 您好! 子字符串检索函数 AT(串1,串2) 给出串1在串2中的开始位置数,无则给出0。 例如?At(“is”, “it is a cat”)      ?At(“中医”, “中国医科大学”) 0 2018/11/27 中国医科大学计算机中心 徐东雨讲师

24 生成空格函数 SPACE(N) 产生N个空格 ?“同学们”+SPACE(3)+”大家好!” 同学们 大家好!
4. 左字符串截取函数left(串,n) 对串从左截取n个字符   ?Left(“abcdefghij”,4) abcd 右字符串截取函数 right(串,n)  对串从右截取n个字符   ?right(“abcdefghij”,4) ghij 中间截取子字符串 substring(串,m,n) 对串从m位起截取n个字符。   ?Subs(“abcdefghij”,5,4)    efgh ? Subs(“ 中国医科大学”,5,4)   医科 2018/11/27 中国医科大学计算机中心 徐东雨讲师

25 删除字符串尾空格函数 rtrim ( 串) / trim (串) 例如 a=“abc ” b=“xyz”
? Trim(a)+b abcxyz ? a+b abc xyz 删除字符串前面空格函数 ltrim(串)    例如  a=“  abc”        b=“xyz”        ? Ltrim(a)+b abcxyz ? a+b abcxyz 字符重复函数 replicate(串,n) 重复产生n个串    ?Repl(“*”,5) ***** 2018/11/27 中国医科大学计算机中心 徐东雨讲师

26 3. 日期和时间函数 时间函数 time() 给出hh:mm:ss格式的时间 ?Time( ) 18:25:35
日期函数 date( )   给出系统当前日期   ?Date() /09/05 求年份函数 year(d) 求出日期D的年份数值   ?Year(date( )) 求月份函数 MONTH(D)求出日期D的月份数值   ?Month(date( )) 2018/11/27 中国医科大学计算机中心 徐东雨讲师

27 CMONTH(D) 求出日期D的月份文字值 ?CMonth(date()) September 求日期函数 day(d) 求出日期D的天数值
求文字月份函数    CMONTH(D) 求出日期D的月份文字值   ?CMonth(date())  September 求日期函数 day(d) 求出日期D的天数值   ?Day (date() ) 求星期函数 dow(d )求出d日期的星期数   ?Dow(date()) (星期日为1) 求文字星期函数 cdow( ) 求文字星期值    ? cdow(date()) Friday 2018/11/27 中国医科大学计算机中心 徐东雨讲师

28 4. 转换函数 字符转换ASCII数值函数 ASC(“数值串”) 例如 ?Asc(“123”) 49 ? ASC(“ABC”) 65
ASCII数值转换字符函数 CHR(N) ? CHR(66)  B 字符转换日期函数  ctod(“mm/dd/yy”) a=ctod(“02/25/05”) 日期转换字符函数  dtoc( d ) ? “今天是”+Dtoc(date())  今天是03/14/05 给出第一个字符的ASCII码值 2018/11/27 中国医科大学计算机中心 徐东雨讲师

29 大写转换小写函数 lower( 串) ?Lower(“ABCD”) abcd 小写转换大写函数 Upper( 串)
    ?upper(“abcd”) ABCD 数值转成字符函数 STR(N,长度,小数位) ? Str(12. 57,2,0)+ “班”    13班 ? Str( ,2,0)+ “班”   **班 字符转换成数值函数 VAL(数值串)     ?Val(“2005.3a16”) 2018/11/27 中国医科大学计算机中心 徐东雨讲师

30 5. 测试函数 数据类型测试函数 TYPE( 字符表达式) ? Type(“12+5”) N ? Type (“[abc]”) C
5. 测试函数 数据类型测试函数  TYPE( 字符表达式) ? Type(“12+5”) N ? Type (“[abc]”)   C ? Type(“ctod(“03/14/05”)”)   D ? Type ([‘A’>‘B’]) L ? Type (123) U 2018/11/27 中国医科大学计算机中心 徐东雨讲师

31 ?File(“d:\vfp\stu.dbf”) .T. 工作区测试函数 SELECT( ) ? SELE( ) 1
表内记录数测试函数  RECCOUNT( ) ? RECC( ) 表结构字段数测试函数  FCOUNT( )   ?FCOUNT( ) 串首字母测试函数    ISALPHA( 串) ? ISALPHA(“I am a thacher.”) T. ? ISALPHA(“123.5”) F. 串首小写字母测试函数  ISLOWER(串)   ? Islower(“abcd”) T. 2018/11/27 中国医科大学计算机中心 徐东雨讲师

32 串首大写字母测试函数 ISUPPER(串) ?Isupper(“abcd”) .F. 记录长度测试函数 RECSIZE( )
字符串长度测试函数  len( 串) ? Len(“abc ”) 表文件起始测试函数   BOF( ) .T. / .F. 表文件结束测试函数   EOF( ) .T. / .F. 当前记录号测试函数  RECNO( ) ? RECNO() 检索测试函数    FOUND( ) .T. / .F. 测试检索命令FIND、SEEK、LOCATE是否成功 2018/11/27 中国医科大学计算机中心 徐东雨讲师

33 再见 2018/11/27 中国医科大学计算机中心 王世伟教授


Download ppt "第三讲 一.VFP中表达式、常量、变量 二.变量与数组操作 三.函数与函数操作 2018/11/27 中国医科大学计算机中心 徐东雨讲师."

Similar presentations


Ads by Google