全国计算机二级VFP完全复习笔记.docx
《全国计算机二级VFP完全复习笔记.docx》由会员分享,可在线阅读,更多相关《全国计算机二级VFP完全复习笔记.docx(21页珍藏版)》请在冰豆网上搜索。
全国计算机二级VFP完全复习笔记
2013全国计算机二级VFP完全复习笔记
一、二级VisualFoxpro的基本框架和主要内容
1.基本框架:
总—分—总的模式
第一章:
总述
第二—九章:
分述
第十章:
总结
第十一章:
上机指导
二、基础知识
1.vf的作用是要用来处理现实中的问题,主要使用程序和数据来进行。
程序师处理数据的一组命令;而数据就是被程序处理的对象。
2.vf软件的启动:
两种方式
桌面上的快捷方式
开始菜单—程序—MS—VF
3.vf的安装:
两种方式
光盘安装:
setup.exe
网络安装
4.了解vf界面
标题栏
主菜单
常用工具栏
主窗口:
显示或输出数据处理后的结果。
状态栏:
显示数据处理时的状态信息。
命令窗口:
用户对计算机发布的命令。
5.vf中最常用命令介绍
?
表示隔行输出。
?
?
表示同行输出。
&&+内容表示是对前面所写命令的注释说明,可提高程序的可读性,一般以绿色显示。
Clear表示对主窗口进行清屏,它本身就是命令,因而clear后不加()。
三、数据与数据运算
(一)简单介绍vf系统中数据的形式和类型
1.vf系统所处理的数据形式有四种:
变量
表达式
函数
2.上述四种形式的数据根据其组成和结构的不同又可分为六种类型:
数值型
货币型
字符型
日期型
日期时间型
逻辑型
上述类型决定数据的存储方式和运算方式。
(二)常量
1.含义:
是用以表示一个具体的、确定的、不变的值。
2.常量的类型:
1)数值型常量:
含义:
也称N型,用来表示数量的多少。
组成:
由数字0—9,小数点和正负号构成。
可用科学计数法的形式来书写,如:
1500=1.5*10的3次方=1.5e3,其中的e/E表示10的n次方,n为整数(正整数、负整数、0均可)。
数值型数据在内存中用8个字节表示。
2)货币型常量:
含义:
也称Y型,用来表示货币值。
组成:
在数值型常量之前加上一个$符号即可。
在存储和计算时采用4位小数,多于4位时自动四舍五入。
没有科学计数法形式,在内存中占用8个字节。
3)字符型常量
含义:
也称C型或者字符串。
组成:
用半角的单引号、双引号或方括号作为定界符把字符串括起来,且定界符必须成对匹配。
但定界符不是字符型常量的内容。
定界符内的字符可为数字、汉字、英文、空格或者无内容。
不包含任何字符的字符串为空串;完全以空格为字符的字符串为空格字符串。
4)日期型常量:
含义:
用来显示日期,也称D型。
组成:
它的定界符是一对花括号,并且花括号内第一个字符必须是脱字符^,花括号内括年月日三部分内容,各部分内容之间用分隔符-分隔。
而斜杠则是系统在主窗口显示日期型数据使用的默认分隔符。
{^yyyy-mm-dd}。
日期型常量也用8个字节表示。
影响日期格式的设置命令:
Setdatetoymd/dmy/mdy
——功能是设置日期显示时的格式。
Setmarkto“-”或者”/”或者”\”
——功能是用于设置显示日期型数据时的分隔符。
若未指定分隔符则表示恢复系统默认斜杠分隔符。
Setcenturyon/off
——功能是设置年份是以(on)4位或(off)2位来显示。
5)日期时间型常量:
含义:
用来显示日期和时间,也称T型。
组成:
{^yyyy-mm-ddhh:
mm:
ssam/pm}。
日期时间型常量也用8个字节存储。
注:
上述所有关于日期和日期时间的设定在vf界面的工具菜单—选项—区域中进行操作。
6)逻辑型常量:
含义:
它只有逻辑真和逻辑假两个值,也称L型。
组成:
逻辑真——.t..T..y..Y.
逻辑假——.f..F..n..N.
前后的两个点作为定界符必不可少,但是只占1个字节。
(三)变量
1.定义:
是指在成都之行进程中,其值可以被改变的量。
2.变量的命名原则:
以汉字、字母或下划线开头,可以含有数字,但不能含有非法字符如小数点、空格或通配符(*/?
)。
要尽量做到见文知义。
3.变量的分类:
1)字段变量:
在表文件中记录属性内容的变量。
表中的每一个列标题就称为一个字段变量。
列标题的名称就是这个字段变量的名称,其下的具体内容就是这个字段变量的值,即字段值。
注意一:
表的每一行被称为一条记录,鼠标指向某一行时会变成指针的标志,指针所指向的行即此字段当前的值,当输出这个字段变量时,就会在主窗口显示当前行的值。
注意二:
若字段变量名和内存变量名重名的现象时,优先输出字段变量的值;若想输出内存变量的值,则需在变量名前加上前缀M.(或M->)。
2)系统变量:
是由vf系统自定义的变量,其名称是由系统预先定义好的,通常以下划线_开头。
例如:
_screen.fontsize=20可更改主窗口所显示字的字号大小;
_screen.backcolor=rgb(0,255,45)可更改主窗口的背景颜色。
_vfp.Caption=”任意字符”可更改vf标题栏上显示的标题名。
3)内存变量:
含义:
表示内存中临时存放数据的单元格,它的类型取决于其中存放数据的类型。
内存变量的赋值:
即把一个数据存放到内存变量中。
两种方法:
格式一:
store表达式/数据to变量名可把同一个值赋给不同的变量,各内存便另名之间要用逗号隔开。
格式二:
变量名=表达式/数据(注意:
数据为常量时必须加””)
可通过对内存变量重新赋值来改变其内容和类型。
内存变量的显示:
list/displaymemory[like*/?
]用来显示内存变量的信息。
内存变量的清除:
格式一:
clearmemory/releaseall表示清除全部内存变量
格式二:
release变量名表表示清除制定内存变量,可为若干个
格式三:
releasealllike*/?
或except*/?
表示清除相匹配或不相配的内存变量。
数组:
①含义:
数组是一种特殊的内存变量,表示内存中连续的若干个存储单元。
用来存储一系列数值,其中的每个值称为数组的一个元素,可通过下标来显示,下标用()或[]括起来。
一个数组中的各个元素的值的数据类型可以不同。
②创建数组的命令:
dimension/declare数组名(元素个数)。
注意:
若定义了一个数组aa,再给数组名aa赋值,则表明是给aa数组中的每个元素都赋予了一个相同的值。
③数组分类:
一维数组:
一行多列dimension数组名(数值表达式)
二维数组:
多行多列dimension数组名(数值表达式1,数值表达式2)
其中,数值表达式1指定其行,数值表达式2指定其列,若只有一个数值,则为一维数组。
④一维数组与二维数组的转换:
例如:
dimensionaa(3)——aa(1,1),aa(1,2),aa(1,3)
这是将一维数组转换为二维数组。
dimensionbb(2,3)——bb
(1),bb
(2),……bb(6)
这是将二维数组转换为一维数组。
(四)表达式
1.定义:
通过特定的运算符将常量、变量和函数连接起来的式子,通过运算后,表达式都会生成一个值。
2.形式:
1)单一的运算对象,如常量、变量或函数。
2)由运算符将运算对象链接起来的式子。
3.作用:
1)赋值
2)输出
4.常用表达式的类型:
1)数值表达式
定义:
由算术运算符将数值型数据连接起来形成的式子。
运算符:
()括号
**或^乘方
*/和%乘除和求余运算
+和-加和减
这四类运算符的优先级依次降低,同类之间具有相同的优先级。
运算结果的类型:
它的值仍是数值型。
注意求余运算符%的用法:
它的被除数与出书都必须是整数,除数不能为0。
求余三原则表述如下:
若c=a%b做这种题的时候先算出c=︱a︱%︱b︱的值,然后c必须与a同号。
还要注意的是:
若a与b同号,则当前余数就是c
若a与b异号,则当前余数结果是b+c
例如:
?
10%3,-10%-3,10%-3,-10%3
1-1-22
2)字符表达式
定义:
由字符串运算符将字符型数据连接起来形成的式子。
运算符:
+表示前后两个字符串首尾连接成一个新的字符串
-表示连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。
这两个运算符之间不分优先级。
例如:
a=”hello”
b=”everyone!
”
?
a+b,a-b
helloeveryone!
helloeveryone!
3)日期时间表达式
定义:
用运算符将日期或日期时间型数据连接起来形成的式子。
运算符:
也是+和-。
格式:
4)关系表达式
定义:
通常也简称为简单逻辑表达式,它通过关系运算符将两个运算对象连接起来形成的式子,即表达式1关系运算符表达式2。
运算符:
<小于
>大于
=等于
<>、#或!
=不等于
<=小于等于
>=大于等于
==字符串精确比较
$字符包含测试
注意:
①==和$仅适用于字符型数据,其他运算符适用于任何类型的数据,但运算符前后的两个运算对象的数据类型必须要保持一致。
②数值型、货币型数据各自之间的比较按其数值的大小进行。
③日期型、日期时间型数据各自之间的比较,越晚日期或时间越大。
④逻辑型数据比较:
.t.>.f.
⑤字串包含测试:
字符表达式1$字符表达式2,如果前者整体是后者的字串,即1包含于2,则结果为真,否则为假。
⑥字符串之间的比较原则是依次比较它们对应位置中的字符,若相同则继续比较,若不同则根据这两个字符的排序序列决定字符串的大小。
但是,根据不同的排序方式,所出的结果也是不同的。
²排序方式设置:
setcollateto“排序次序名”
排序次序名可以是machine、pinyin和stroke。
Machine的原则是:
空格<数字<大写字母(其中A最小)<小写字母(其中a最小);
(测asc码函数:
asc(字符表达式),可测比如”A””a”的asc码为65和97)
Pinyin的原则是:
排在字母表后面的字母>排在前面的字母,若字母相同则大写>小写;
Stroke的原则是:
汉字的笔画谁多谁大。
²字符串的精确比较与exact设置:
“==”只有两个字符串完全相同时,运算结果为逻辑真,否则为逻辑假。
在“=”比较两个字符串时,运算结果与setexacton/off有关:
off表示只要右边字符串整体与左边字符串的前面部分内容相匹配,即可为真,否则为假;on则表示比较到两个字符串全部结束,先到短的字符串尾部加空格,使两个字符串的长度相等,然后进行比较,
运算结果的类型:
逻辑型。
作用是比较两个表达式的大小。
5)逻辑表达式
定义:
由逻辑运算符将逻辑型数据连接起来而形成的式子,格式为:
关系式1逻辑运算符关系式2。
运算符:
not/!
逻辑非And逻辑与Or逻辑或其优先级的顺序是由高到低。
运算结果的类型:
仍是逻辑型数据的式子,即逻辑表达式。
注意:
不同类型的运算符之间的优先级顺序为:
先执行算术运算符、字符串运算符和日期时间运算符,其次执行关系运算符,最后执行逻辑运算符。
(五)常用函数
1.定义:
函数是用程序来实现的一种数据运算或转换,也就是预先定义好的程序段。
可有若干运算对象,但只能有一个运算结果,成为函数值或返回值。
2.格式:
函数名()若括号内有变量则为有参函数,括号内无变量则为无参函数。
但无论怎样,括号都不可省略。
3.常用函数的类型:
1)数值函数:
自变量和函数值为数值的一类函数。
8个&求绝对值函数
格式:
abs(数值表达式)
功能:
返回指定数值表示的绝对值
结果:
为N型,且必然>=0
&求符号函数
格式:
sign(数值表达式)
功能:
返回指定数值表达式的符号
结果:
为N型,当表达式的运算结果为正、负和零时,函数值分别为1、-1和0
&求平方根函数
格式:
aqrt(数值表达式)
功能:
返回指定表达式的平方根,自变量表达式的值需>=0
结果:
为N型,且且必然>=0
&求圆周率函数
格式:
pi()
功能:
返回圆周率,该函数没有自变量
结果:
为N型,即为3.14
&求整函数
格式:
int(数值表达式)只求整,不四舍五入
ceiling(数值表达式)
floor(数字表达式)
功能:
返回指定数值表达式的整数部分返回大于或等于指定数值表达式的最小整数返回小于或等于指定数值表达式的最大整数
结果:
N型
&四舍五入函数
格式:
round(数值表达式1,数值表达式2)
功能:
返回指定表达式在指定位置四舍五入的结果,数值表达式2指定四舍五入的位置。
若数2>0,表示的是对数1要求的所保留的小数位数;若数2=0,表示的是对数1取整数,并四舍五入;若数2<0,表示的是对数1的整数位舍入的位数,并四舍五入。
结果:
为N型
&求余函数
格式:
mod(数值表达式1,数值表达式2)
功能:
返回两个数值相除后的余数。
数1是被除数,数2是除数。
其他原则与求余运算符%的用法相同:
被除数与除数都必须是整数,除数不能为0。
求余三原则表述如下:
若c=a%b做这种题的时候先算出c=︱a︱%︱b︱的值,然后c必须与a同号。
还要注意的是:
若a与b同号,则当前余数就是c
若a与b异号,则当前余数结果是b+c
结果:
为N型
注意:
判定x是否能被i整除的方法有:
mod(x,i)=0
x%i=0
int(x/i)=x/i
&求最大值和最小值函数
格式:
max/min(表达式1,表达式2……表达式n)其表达式的类型任意,但写入括号内的必须是同一类型的表达式。
功能:
计算各自变量表达式的值,并返回其中的最大值或最小值
结果:
根据括号内表达式的类型而定
2)字符函数:
自变量一般是字符型数据的函数。
10个
&求字符串长度函数
格式:
len(字符表达式)
功能:
返回指定字符表达式值的长度,即所包含的字符个数。
结果:
N型
&大小写转换函数
格式:
upper/lower(字符表达式)
功能:
将指定表达式中的小写字母转换成大写字母
或者将指定表达式中的大写字母转换成小写字母,其他字符不变
结果:
C型
&空格字符串生成函数
格式:
space(数值表达式)
功能:
返回由指定数目的空格组成的字符串
结果:
C型
&删除前后空格函数
格式:
trim(字符表达式)
ltrim(字符表达式)
alltrim(字符表达式)
功能:
返回指定字符表达式值去掉尾部空格后形成的字符串
返回指定字符表达式值去掉前导空格后形成的字符串
返回指定字符表达式值去掉前导和尾部空格后形成的字符串
结果:
C型
&取子串函数
格式:
left(字符表达式,长度)
right(字符表达式,长度)
substr(字符表达式,起始位置,长度)若缺省长度,表示从指定位置一直取到最后一个字符
功能:
从指定表达式值的左端取一个指定长度的字串作为函数值
从指定表达式值的右端取一个指定长度的字串作为函数值
从指定表达式值的指定起始位置取一个指定长度的字串作为函数值
结果:
C型
&计算子串出现次数函数
格式:
occurs(字符表达式1,字符表达式2)
功能:
返回第一个字符串在第二个字符串中出现的次数,若字符串1不是字符串2的字串,函数值为0
结果:
N型
&求子串位置函数
格式:
at(字符表达式1,字符表达式2,数值表达式)区分大小写
atc(字符表达式1,字符表达式2,数值表达式)不区分大小写
功能:
若字符表达式1是字符表达式2的字串,则返回字符表达式1值的首字母在字符表达式2值中的出现位置;若不是字串返回0;第三个变量数值表达式用于表明要在字符表达式2值中搜索字符表达式1值的第几次出现的位置,数值表达式的默认值是1。
结果:
N型
&子串替换函数
格式:
stuff(字符表达式1,起始位置,长度,字符表达式2)
功能:
用字符表达式2的值替换字符表达式1中由起始位置和长度指明的一个子串,替换和被替换的字符个数不一定相等。
如果长度值是0,字符表达式2则插入由起始位置指定的字符前,如果长度值是空串,那么字符表达式1中由起始位置和长度指明的字串被删去。
结果:
C型
&字符替换函数
格式:
chrtran(字符表达式1,字符表达式2,字符表达式3)
功能:
当字符表达式1中的一个或多个字符与字符表达式2中的某个字符相匹配时,就用字符表达式3中的相同位置上的对应字符替换这些字符。
如果字符表达式3包含的字符个数少于字符表达式2包含的字符个数,因为没有对应字符那么字符表达式1中相匹配的各个字符将被删除;如果字符表达式3包含的字符个数多于字符表达式2包含的字符个数,多余字符被忽略。
结果:
C型
&字符串匹配函数
格式:
like(字符表达式1,字符表达式2)
功能:
比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数值返回逻辑真,否则返回逻辑假;字符表达式1中可以包含通配符*和?
,*可与任何数目的字符相匹配,?
可以与任何单个字符相匹配。
结果:
L型
3)日期和时间函数:
自变量一般是日期型或日期时间型数据的函数。
&系统日期、系统时间和系统日期时间函数
格式:
date()
time()
datetime()
功能:
返回当前系统日期
返回当前系统时间
返回当前系统日期时间
结果:
D型
C型
T型
&求年份、月份和天数函数
格式:
year(日期表达式/日期时间表达式)
month(日期表达式/日期时间表达式)
day(日期表达式/日期时间表达式)
功能:
从指定的日期表达式或日期时间表达式中返回年份
从指定的日期表达式或日期时间表达式中返回月份
从指定的日期表达式或日期时间表达式中返回天数
结果:
N型
&求时、分、秒函数
格式:
hour(日期时间表达式)
minute(日期时间表达式)
sec(日期时间表达式)
功能:
从指定的日期时间表达式中返回小时部分(24小时制)
从指定的日期时间表达式中返回分钟部分
从指定的日期时间表达式中返回秒数部分
结果:
N型
4)数据类型转换函数:
其功能就是将某一种类型的数据转换成另一种类型的数据。
5个
&数值转换成字符串
格式:
str(数值表达式,长度,小数位数)
功能:
将数值表达式的值转换成字符串,需要时自动四舍五入
设数值表达式原长度为m,指定长度为n
若n>m,返回结果自加前导空格
若整数位<=n<=m,优先取整数部分,再根据指定长度中剩下的位数确定小数位,注意整数位中不包括小数点
若n<整数位,返回结果为一串星号*,即不能正常转换。
注意:
长度的默认值是10,小数位数的默认值是0
结果:
C型
&字符串转换成数值
格式:
val(字符表达式)
功能:
将由数字符号(包括正负号、小数点)组成的字符型数据转换成相应的数值型数据。
若字符串内出现非数字字符,那么只转换前面部分;若字符串的首字符不是数字符号,则返回数值零,但忽略前导空格。
结果:
N型
&字符串转换成日期或日期时间
格式:
ctod(字符表达式)
ctot(字符表达式)
功能:
将字符表达式的值转换成日期型数据
将字符表达式的值转换成日期时间型数据
结果:
D型或T型
&日期或日期时间转换成字符串
格式:
dtoc(日期表达式/日期时间表达式)/dtoc(日期表达式/日期时间表达式[,1])
ttoc(日期时间表达式)/ttoc(日期时间表达式[,1])
注意:
[,1]表示去掉年月日之间的分隔符
功能:
将日期型数据或日期时间型数据的日期部分转换成字符串
将日期时间型数据转换成字符串
结果:
C型,结果分别为8个和14个字符
&宏替换函数
格式:
&字符型变量[.]
功能:
替换出字符型变量的内容,若该函数与其后的字符无明确分界,则用[.]作为函数结束标识
结果:
由字符型变量的内容决定
5)测试函数:
主要用来测试当前操作对象的状态。
11个
&值域测试函数
格式:
between(表达式1,表达式2,表达式3)
功能:
判断表达式1的值是否在表达式2和表达式3的值之间,若表达式1的值大于等于表达式2的值并且小于等于表达式3的值,那么函数值为逻辑真,否则为逻辑假。
若表达式2和表达式3的值中有一个是null值,那么函数值也为null值
结果:
L型或null值
&null值测试函数
格式:
isnull(表达式)
功能:
判断表达式的运算结果是否为null值,是则返回逻辑真,否则逻辑假
结果:
L型
&“空值”测试函数
格式:
empty(表达式)
功能:
判断指定表达式的运算结果是否为“空值”,是则返回逻辑真,否则逻辑假
结果:
L型
注意:
不同类型数据的“空”值规定:
&数据类型测试函数
格式:
vartype(表达式)
功能:
测试指定表达式的类型,返回一个大写字母表示某个类型的数据
结果:
C型
注意:
各大写字母的含义如下:
C——字符型或备注型N——数值型、整型、浮点型或双精度型
Y——货币型L——逻辑型
O——对象型G——通用型
D——日期型T——日期时间型
X——null值U——未定义
注意:
关于表文件也有一系列的测试函数,vf为每个打开的表设置了一个内部记录指针,指向正在被操作的记录,该记录称为当前记录,记录指针的作用是标识表的当前记录。
表文件的逻辑结果如下图所示:
文件开始标识(表文件首/BOF)
文件结束标志(表文件尾/EOF)
&表文件首测试函数
格式:
bof([工作区号/表别名])
功能:
测试指定表文件中的记录指针是否
指向文件首,是则返回逻辑真,否
则返回逻辑假
结果:
L型
注意:
若缺省自变量则测试当前表文件
若表文件中不包含任何记录则函数返回逻辑真
&表文件尾测试函数
格式:
eof([工作区号/表别名])
功能:
测试指定