您好,欢迎来到宣城市机械电子工程学校!

第二节
常量、变量和表达式

【文章来源:】 【发布人:徐征然】 【发布时间: 】 【点击量:

数据库基础—Visual FoxPro 教案

授课章节

名    称

第二节 常量、变量和表达式

学时分配

讲课

8学时

实验

4学时

习题

2学时

其它

学时

教学目的

知识目标:

1、掌握VFP的数据类型,应用范围

2、熟练掌握各种类型常量的表示方法

3、掌握变量的概念、声明、类型与使用

4、明确VFP的运算符与表达式的构成,理解表达式的运算顺序

5、理解函数的概念,函数的使用方法,熟悉典型的函数的运用

6、理解数组的概念,数组的定义,数组的使用

技能目标:

1、会根据不同的数据选择合适的数据类型

2、能够理解变量与数学中的变量的区别与联系,会将一般的数学表达式转换成为合法的VFP表达式

3、会根据不同的要求选择不同的函数

4、学会利用VFP来完成数据处理的实验

 

教学重点

1、数据类型及其选用

2、常量的表示,变量的定义与应用

3、各种运算符的规则,表达式

4、数组的定义与使用

5、常用函数的功能与应用

教学难点

1、数组的定义与使用

2、函数的调用与返回值

3、复杂表达式的运算

更新、补充

删节内容

教学方法

与手段

讲授,多媒体演示,上机实验

课外作业

 

本章小结

本章概念:

1、数据与数据类型,数据类型的含义与应用

2、常量的性质,常量的类型,不同类型常量的表示方法

3、变量的含义,变量的命名,变量类型的确定

4、数组的定义,数组与变量的联系与区别

5、运算符类型及运算规则,运算符的优先级顺序

6、表达式的构成,运算与运算结果

7、函数的概念,函数的格式,典型的VFP函数及其应用,函数的调用方法与返回值

本章程序:

1、变量的命名、赋值与显示

2、数组的声明,数组的赋值与显示

3、各种表达式的验证与应用

4、典型函数的应用

教学过程

※本章内容简介

※学习目标

※学习重点与难点

引言:数据库是用来处理数据的,数据是广义的。VFP中可以处理不同类型的数据,可以对数据进行各种运算。所有这些都是VFP程序的基础。

第二节 常量、变量和表达式

2.1 数据类型

※本节内容、学习目标与重点难点介绍

讲解的思路:从一个实际的表格数据入手(如学生基本信息表),介绍不同语义的数据,由不同语义的数据引出数据类型,进而介绍VFP的数据类型

一、数据类型

不同语义的数据使用不同的表示方法,举例说明。

例如:学生姓名,学生学号,学生成绩

强调:任何一种计算机语言所支持的数据类型是大同小异的。

二、VFP的数据类型

1、分类:两大类

(1)只能用于数据表中的数据类型

(2)既可以用于数据表,也可以用于内存中的数据类型

2、重点分析VFP中几种常用的数据类型

字符型、数值型、逻辑型、日期型、备注型

举例说明:不同场合下的数据类型选择

 

对其它几种类型只作简单介绍,不作要求。

 

2.2 常量、变量与数组

※本节内容、学习目标与重点难点介绍

※讲解思路:本节内容与数学联系较多,讲解中要特别注意与数学之间的关系、区别

从数学中的PI引入常量的概念,从解方程中的未知量引出变量的概念。

一、常量

程序运行过程中始终不变的量,显然也有不同类型的常量。

介绍几种典型的常量类型及其表示方法。

(1)字符类型:定界符

(2)逻辑类型:.t.,.f.

(3)日期类型:日期定界符,严格的日期格式表示

举例说明各种常量的表示,特别注意字符型与日期型常量的表示方法。

二、变量

引例:一个生活中的事例:一个盒子里面可以存放不同类型的物品。盒子的名称就是变量,其中的物品就是变量的值。

引入变量的概念:程序运行过程中其值可变的量

1、变量名:含义,命名规则

2、变量的种类:

(1)内存变量:在程序中或命令代码中使用

  • 自定义变量的类型与应用(数值、字符、日期、逻辑、货币、日期时间)
  • 系统变量

(2)字段变量:在数据表中使用的变量

强调:字段变量与内存变量的不同(保存位置、生命周期、类型等)

3、变量的赋值与显示

(1)变量的赋值

通过实例讲解赋值号的含义,与数学中等于号的区别

赋值的两种方式:=、Store命令

(2)变量的显示

LIST命令与Display命令

  • 两个命令的最简单用法 ,区别
  • 显示指定变量的值
  • 显示一批变量的值:使用匹配模板

4、变量的输出(含义,与显示的区别)

?命令

??命令

 

三、数组

1、数组的概念

引例:将变量中的引例扩展,在一个盒子中有许多方格,每个方格可以存放一个数据,不同的方格可以存放不同类型的数据。

盒子的名字:数组名

每个方格:数组元素,用不同的下标表示。

存储:一批连续的存储单元

一维数组与二维数组的引出

2、数组的定义

定义的目的:分配存储单元

定义的方式:dime 数组名(维定义)

(1)数组名的命名规则

(2)下标起始:1

(3)二维数组的定义

(4)数组元素的初始值:.F.

(5)数组元素的个数:

3、数组元素的赋值与引用(与变量类似,只是带有下标)

赋值:特别注意整体赋值

引用:数组元素下标的说明

特别注意:学会区分何时代表数组,何时代表数组元素

4、数组内容的显示与输出

(1)显示:display|list

(2)输出:?|??

 

 

2.3 运算符与表达式

※本节内容、学习目标与重点难点介绍

引入:数学表达式及其构成(常量、变量、函数、运算符),数据运算离不开表达式

一、算术(数值)运算符及其表达式

1、类型

2、与数学符号的不同

3、优先顺序

4、运算结果与类型

4、数学表达式与VFP表达式的相互转换

举例说明

二、字符串运算符及表达式

主要是连接与查找

1、连接:

(1)方式:+、-

(2)结果:字符串

2、查找:在字符串中查找指定的子串

返回结果:逻辑值

3、优先级说明

三、关系运算符及表达式

引例:4>3?、"北京">"上海"?、3.14<="PI"?

设问:如何比较?参与比较的数据有何要求?比较的结果?

1、关系运算符:含义、运算结果

特别:<=、>=、<>与数学中运算符的区别

2、关系运算的要求

(1)参与比较的数据类型必须相同

(2)比较的依据:数值型、字符型(汉字)、日期型等的相关规定

(3)字符串的模糊比较与精确比较

?"AB"="ABC"

?"ABC"="AB"

?"ABC"=="AB"

结果分析?

(4)关系运算与数值运算的复合

举例:

优先级的确定:数值运算高于关系运算

四、逻辑运算符及表达式

引例:如何表达“年龄大于20岁的女同学”?

分析:(1)分解:年龄大于20岁(年龄>20)、女同学(性别="女")

(2)两个简单条件之间的关系?不仅…而且

即:如何表达两个以上关系运算之间的关系?

1、逻辑运算符

种类、含义、运算规则分析、运算结果

举例说明:

2、逻辑运算表达式:用于表达复杂条件

(1)优先级规定:

(2)关系运算的复合

举例说明:

(3)数值运算、关系运算、逻辑运算的复合

举例:3+4>7 .and. .not. (总成绩/课程数>75) .or. 姓名 = "李"

运算规则、运算顺序分析

优先级结论:数值运算>关系运算>逻辑运算

 

五、日期运算符及表达式

基本原则:要使得运算有意义

+运算:

-运算:

举例

 

2.4 函数

※本节内容、学习目标与重点难点介绍

※讲解思路:由于VFP的函数较多,不可能逐一介绍。重点在于讲解函数的使用方法与规则,在现场演示中培养学生查阅联机帮助的能力。

    一、函数的概念

1、函数概念:从数学中使用的函数引入

共同点:函数名、参数、返回值、出现在表达式中

不同点:参数加括号、可以没有参数、种类繁多

2、函数的分类简介

(1)标准函数:六大类

(2)用户自定义函数

3、函数的应用

二、VFP函数应用

1、VFP函数使用的一般规则

(1)了解VFP有哪些函数?功能?函数名?参数要求?返回值?

(可以配合联机帮助文件,了解函数的相关用法)

(2)针对功能要求选择相应的函数

(3)根据函数的要求准备必要的参数

(4)调用函数,得到返回值。

(5)函数的使用是可以嵌套的,例如:?DtoC(Date())

2、常用典型函数的使用,粗体为重点讲解

(1)INT

(2)ROUND:指定四舍五入的位数

(3)MOD:取模运算的结果

(4)RAND:重点生成指定范围的随机数,生成公式

(5)LEFT/RIGHT:取左子串与右子串

(6)SUBSTR:取子串

(7)LEN:注意西文字符与中文字符的长度区别

(8)LTRIM/RTRIM/ALLTRIM

(9)CTOD/DTOC:日期与字符的转换

(10)STR/VAL:字符与数值的转换,参数要求

(11)DATE:取当前日期

3、含有函数的表达式运算举例(函数优先)

 

※本章内容总结、实验要求、作业要求

 

 

本章实验

一、实验课时

3学时        

二、实验目的

1.掌握常量、变量的定义和使用。

2.掌握各种表达式的使用方法。

3.掌握常用函数的用法。

三、实验要求

1.进一步熟悉VFP的界面和环境。

2.掌握变量的定义和使用(在命令窗口中使用命令并写出结果)。

3.了解数组的概念、定义,掌握数组的基本操作。

4.掌握运算符和表达式的使用(在命令窗口中使用命令并写出结果)。

5.掌握函数使用方法,主要有一般数值函数、字符函数、转换函数、测试函数等。

四、上机实例

【例2.1】掌握变量的定义和使用(在命令窗口中使用命令并写出结果)。

ABOUT=8,AMOUNT=“18”,BOOK=10,ROOT=“HAPPY”,A=123,B= ‘Hangzhou’,C=‘VFP’

1.实现对上述变量赋值并显示内存变量。

2.把上述变量保存到A1.MEM文件中。

3.把第3个字母为O的变量保存到A2.MEM文件中。

4.把所有第1个字母不是A的变量保存到A3.MEM文件中。

5.恢复A1.MEM文件中变量(不加additive)。

6.清除以A开头的内存变量。

7.清除所有第3个字母不为O的内存变量。

8.清除所有内存变量。

9.新增变量A2=200,B2=50

10.恢复A1.MEM文件中内存变量(带additive)

11.显示内存变量

【命令与结果】:

1.本题主要考查的是赋值命令STORE和“=”。第2、3、4题主要考查的是内存变量保存命令SAVE的使用。具体命令为:

2.SAVE TO A1

3.SAVE TO A2 ALL LIKE ??O*

4.SAVE TO A3 ALL EXCEPT A*

5.本题主要考查的是内存变量恢复命令RESTORE的使用。具体命令为:

RESTORE FROM A1

第6、7、8题主要考查的是内存变量清除命令RELEASE的使用。具体命令为:

6.RELEASE ALL LIKE A*

7.RELEASE ALL EXCEPT ??O?

8.RELEASE ALL或CLEAR MEMORY

9.在命令窗口定义变量A2=200,B2=50

10.本题主要考查的是内存变量恢复命令RESTORE的使用。具体命令为:

RESTORE FROM A1 ADDITIVE

11.本题主要考查的是内存变量显示命令DISPLAY或LIST的使用,具体命令为:

DISP/LIST MEMO

【例2.2】掌握数组变量的使用(在命令窗口中使用命令并写出结果)。

1.定义数组X(3,4),Y(8)

2.写出下列命令的运行结果。

STORE  666  TO  X(1, 4)

X(8)=888

STORE  X(2, 4) TO  Y(6)

X(3,4)=X(4)

? X(4)

? X(2, 4)

? X(1, 4)

? X(12)

? Y(4)

【命令结果】:

本题主要考查的是定义数组变量命令DIMNESION或DECLARE的使用,具体命令为:

1.DIMENSION  X(3,4), Y(8)

2.本题的答案为:666,888,666,666,.F.

【例2.3】掌握运算符和表达式的使用(在命令窗口中使用命令并写出结果)。

(1)? 2*5

(2)? ‘I LOVE’ + ‘CHINA’

(3)? ‘123’ – ‘56’

(4)? {08/12/98}-{08/10/98}             (设置set stri to 0,或将日期设置为严格日期格式)

(5)? ‘AS’ $ ‘ABDASD’

(6)? ‘AS’ = ‘ABDASD’

(7)? ‘AS’ = = ‘AS’

(8)? (8>5) .AND. ‘STRING’ $ ‘STR’

(9)? {11/26/96}–10

(10)? ‘DEF’ < ‘AB’

【命令结果】:

本题主要考查的是常用运算符和表达式(数学、字符、日期、关系和逻辑型表达式)的使用,具体答案为:

(1)10          (2)I LOVE CHINA          (3)12356           (4)2

(5).T.          (6).F.                              (7).T.                (8).F.

(9)11/16/96        (10).F.

【例2.4】掌握常用函数使用方法(在命令窗口使用下列函数并写出运行结果)。

1.数值函数

(1)? INT(10-3.2)

(2)? ROUND(282.467,1), ROUND(282.467,0)

(3)? ABS(2*3-8)

(4)? MOD(218, 7), MOD(417, -8)

(5)? MAX(128, 821),MIN(128, 821)

(6)? SQRT (4)

(7)? SIGN (-2)

(8)? INLIST (90,20,100)

(9)? BETWEEN (90,20,100)

(10)? EMPTY ( 0 )

(11)? EMPTY ( ‘ ’ )

(12)? SIN ( 3.14/2 )

(13)? RAND (10),RAND(-10)

2.字符函数

Y=“123”

(1)? 456+&Y

(2)? LEFT(“AABBCCDD”, 2)

(3)? RIGHT(“AABBCCDD”, 2)

(4)? SUBSTR(“AABBCCDD”, 4, 2), SUBSTR(“AABBCCDD”, 0, 2)

(5)? STUFF(“WORLD”, 2, 4, “ORK”)

(6)? AT ( ‘1’, ‘12341141’,3)

(7)? LIKE ( ‘ASD*’, ‘ASDFG’)

(8)? TYPE ( ‘ABC’ )

(9)? LEN ( ‘VISUAL FOXPRO’ )

(10)? SPACE ( 10 )

(11)? REPL ( ‘ * ’,10 )

3.日期时间函数

? DATE ( )

? DATE ( ) + 10

? MONTH(CTOD(“03/02/94”)), CMONTH(CTOD(“03/02/94”))

4.转换函数

(1)? UPPER ( ‘as’ )

(2)? LOWER ( ‘A’ )

(3)? CTOD ( ‘10/18/98’ )

(4)? DTOC ( {10/18/98} )

(5)? ASC ( ‘APPLE’ )

(6)? CHR ( 66 )

(7)? STR ( 156.73, 3 )

(8)? VAL ( “156.73”), VAL(“168A”)

5.测试函数

(1)? INKEY (0)  按键

(2)? FILE ( ‘HELP.DBF’ )

(3)? IIF ( 3>2,1,-1 )

(4)? SET ( ‘CENT’ )

五、上机练习题

【练习2.1】上机计算下列表达式的值。

1.? (2+8*3)/2

2.? {^1999-11-22}-10

3.? ”ZYX□”+”123□□”-“ABC”

4.? ”BCDX”<”BCE”

5.? ”ABCD”=”ABC”

6.? ”ABC”=”ABCD”

7.? 4=4 AND 5>2+3

8.? ”12345”<>”12345”+”AB”

【练习2.2】上机计算下列函数的值。

1.? AT(“lc”,”Welcome”)

2.? ROUND(5674.675,-3)

3.? STUFF(“abcdefgh”,3,3,”2003”)

4.? SQRT(SQRT(128))

5.? UPPER(“how are YOU”)

6.? VAL(SUBSTR(‘4762883’,7,3))+10

7.? INT(ABS(56-34)/2)

8.? MONTH({2002/06/03})-18

9.? DTOC(DATE()),DTOC(DATE(),1)

10.N=20

       ? IIF(N>25,2*N,4*N)

11.? ”SHE” $ ”SSHEE”, “SHE” $ ”SSHHEE”

12.? ASC(“BBOX”), CHR(66)

13.? SIN ( PI( )/2)

14. ? SUBSTR(‘ABCDEFG’,1,2),SUBSTR ( ‘ABCDEFG’,0,2)

15. ? STUFF(‘1234567’,1,2,‘34’),STUFF(‘1234567’,1,0,‘34’)

【练习2.3】综合练习:写出下列各组命令中每条命令的执行结果。

1.B=DTOC(DATE(),1)

       ? TYPE(“B”)

       ? ”今天是:”+B

       ? “B的数据类型是:”+VARTYPE(B)

2.X=STR(12.4, 4, 1)

           Y=RIGHT(X, 3)

           Z=”&Y+&X”

           ? Z,&Z

3.X=”惠普586”

           Y=”个人计算机”

           ? LEN(X),RIGHT(X,3)+Y

           ? ”&X.&Y”,X+Y

           ? REPLICATE(LEFT(X,4),2)+SPACE(4)+RIGHT(Y,6)

4.? AT(“人民”,”中国人民解放军”),AT(“人民”,”中国银行”)

          ? VAL(SUBSTR(“668899”,5,2))+10

          ? SUBSTR(“778899”,5)-“1”

          ? TYPE(“DTOC(DATE())”)

5.DD=DATE()

          ? STR(YEAR(DD),4)+”年”+STR(MONTH(DD),2)+”月”+STR(DAY(DD),2)+”日”

6.A=“TIME()”

B=“A”

? A

? B

? &B

? &A

7.X=“SQRT(81)“

Y=“&X.+2”

? X

? Y

? &X

? &Y

 

 

 

教学手段与时间分配

 

 

 

对比法:通过与数学中的数据及其运算进行比较,本章的内容都可以此为基本教法。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

重点:各种数据类型的数据表示方式、适用场合、选择原则

 

 

 

 

 

 

 

 

启发式:

 

 

重点:

各种类型常量的表示方法。这也是二级考试的考点之一

 

 

 

比喻法引入

 

 

 

举例:非法变量与合法变量

 

设计一些变量,供后面的显示与输出讲解

只作了解

 

以学生信息表为例介绍

 

 

 

观察网页中的动画,理解变量赋值的含义。

举例加演示

 

命令的讲解要从实际应用出发,只介绍命令的最常用的用法,没有必要面面俱到。

 

 

比喻法引入

预先设计一个有代表性的数组,如学生信息中的一个记录,便于后面讲解定义、赋值、显示、输出等。

 

 

 

 

 

 

 

 

举例说明

 

 

 

 

比较法:与变量显示、输出的比较

 

 

 

提问:

 

 

对比法:与数学运算符对比

 

 

 

 

 

 

举例

 

 

 

 

 

 

 

启发式

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

提问,让学生思考

师生互动

 

 

 

 

 

 

 

 

 

 

 

请学生总结

 

 

 

 

 

 

 

 

 

启发式

 

 

 

 

 

 

 

 

 

 

1、强调函数使用的一般规则

2、几种典型函数的用法

3、强调函数的使用将会贯穿于整个课程,要逐步学习并总结

 

讲解思路:

1、函数功能

2、参数要求

3、返回值及类型

4、应用举例

 

 

 

 

 

 

 

 

 

 

 

 

 

学时:2学时