1、第二章 程序设计基础 杭州商学院计信学院 2020 6 26 2 第二章程序设计基础 2 1VisualFoxPro的常量和变量2 2VisualFoxPro的命令和函数2 3VisualFoxPro表达式 杭州商学院计信学院 2020 6 26 3 2 1VisualFoxPro的常量和变量 2 1 1常量常量是指他的值在程序执行过程中保持不变的数据 常量名是常量的标识符 其命名规则为 以字母或汉字开头 后面可以跟字母 数字 下划线和汉字 长度不超过128个字符 与系统保留字不能同名 杭州商学院计信学院 2020 6 26 4 2 1VisualFoxPro的常量和变量 VisualFoxP
2、ro6 0定义了四种类型的常量 数值型常量 字符型常量 逻辑型常量和日期型常量 1 数值型常量 2 字符型常量 3 逻辑型常量 4 日期型常量和日期时间型常量 杭州商学院计信学院 2020 6 26 5 2 1VisualFoxPro的常量和变量 2 1 2变量1 变量的命名变量名命名规则是 由字母 数字 下划线 汉字组成 首字符只能是字母 下划线 汉字 变量名长度为1 128个字符 不能使用系统保留字 杭州商学院计信学院 2020 6 26 6 2 1VisualFoxPro的常量和变量 2 变量的分类 1 系统变量系统变量是指以字母 开头的 由系统自动定义生成的变量 它的名称是系统已定义好
3、的 用于控制外部设备 屏幕输出格式等方面的信息 CLIPTEXT 接受对于系统变量只能使用不能修改 2 字段变量字段变量是指表中的字段 它是在建立表结构时定义的 修改表结构时可重新定义 或增删字段变量 杭州商学院计信学院 2020 6 26 7 2 1VisualFoxPro的常量和变量 3 内存变量内存变量是一种临时变量 由用户定义后用来存放程序运行的中间结果和最终结果 用户可以通过给内存变量赋值来定义内存变量 给内存变量赋值的同时也就确定了它的数据类型 杭州商学院计信学院 2020 6 26 8 2 1VisualFoxPro的常量和变量 3 内存变量的操作 1 内存变量的赋值Visual
4、FoxPro中的内存变量赋值有两种格式 命令格式1 命令格式1 STORETo功能 首先计算出表达式的值 再将该值赋给内存变量 杭州商学院计信学院 2020 6 26 9 2 1VisualFoxPro的常量和变量 2 内存变量的显示命令格式 DISPLAY LISTMEMORY LIKE TOPRINTER PROMPT TOFILE 功能 显示当前内存中的内存变量的名称 作用范围 数据类型和值 杭州商学院计信学院 2020 6 26 10 2 1VisualFoxPro的常量和变量 说明 DISPLAY和LIST的区别在于 D1SPLAY命令分屏显示 每显示一屏暂停 按任意键后继续显示 L
5、IST命令连续显示 中间不停顿 直到显示完毕 通配符有 和 两种 代表单个字符 代表一个或多个字符 若缺省任选项LIKE 则显示当前内存中的所有内存变量 若选用该选项 则显示与相匹配的内存变量 杭州商学院计信学院 2020 6 26 11 2 1VisualFoxPro的常量和变量 3 内存变量的删除释放内存变量的命令为 命令格式1 RELEASE命令格式2 RELEASEALL LIKE EXCEPT EXTENDED 命令格式3 CLEARMEMORY功能 用来清除所选择的内存变量 并释放相应的内存空间 杭州商学院计信学院 2020 6 26 12 2 1VisualFoxPro的常量和变
6、量 4 数组 1 数组的定义命令格式 DIMENSION DECLARE 数组名1 数组名1 功能 建立一维或二维数组 确定小标的上界 说明 数组的下标可用圆括号 或方括号 括起来 杭州商学院计信学院 2020 6 26 13 2 1VisualFoxPro的常量和变量 2 数组的赋值建立数组后 数组各个元素的初始值均为逻辑值 F 用赋值命令赋值时 未指明下标 则数组中的所有数组元素同时被赋予同一个值 若指明下标 则给指定的数组元素赋值 同一数组各元素的数据类型可以不同 杭州商学院计信学院 2020 6 26 14 2 2VisualFoxPro的命令和函数 2 2 1VisualFoxPro
7、的命令1 VisualFoxPro6 0命令形式VisualFoxPro6 0命令的一般形式 命令动词 FIELDS FOR WHILE TOPRINTER TOFILE NOOPTIMIZE OFF 其中 表示必选项 表示任选项 表示两者选其一 杭州商学院计信学院 2020 6 26 15 2 2VisualFoxPro的命令和函数 1 命令动词命令动词表示命令的操作 说明了该命令应完成的功能 2 子句表示命令对表文件进行操作的记录范围 一般有4种选择 ALL NEXT RECORD REST 3 条件子句范围子句 FOR子句和WHILE子句可以同时使用 它们的优先级是 范围子句优先于FOR
8、和WHILE子句 WHILE子句优先于FOR子句 杭州商学院计信学院 2020 6 26 16 2 2VisualFoxPro的命令和函数 2 命令的书写规则 1 每 命令必须以命令动词开头 2 命令动词后面的命令短语可按任意顺序排列 短语之间用空格分隔 空格数任意 3 命令一行书写不下时 可以换行 并在分行处加上分号 4 每行只能书写一条命令 5 所有命令和函数均可只写前4个字符 且不分大小写 6 行命令结束后 用Enter键确认并执行 杭州商学院计信学院 2020 6 26 17 2 2VisualFoxPro的命令和函数 2 2 2VisualFoxPro的函数函数的基本形式如下 函数的
9、基本形式是 函数名 几点说明 1 函数名后面是一对圆括号 圆括号内可以有参数 也可以没有参数 2 参数是函数的自变量 可以是常量 也可以是变量 但参数的数据类型是固定的 3 函数运算后会返回一个值 称为函数值 杭州商学院计信学院 2020 6 26 18 2 2VisualFoxPro的命令和函数 1 数值运算函数 1 绝对值函数格式 ABS 功能 返回值的绝对值 2 取整函数格式 INT 功能 返回的值的整数部分 3 四舍五入函数格式 ROUND 功能 对的值进行四舍五入 若的值大于等于零 则表示要保留的小数位数 若是负值 则表示整数部分四舍五入的位数 杭州商学院计信学院 2020 6 26
10、 19 2 2VisualFoxPro的命令和函数 4 最大值函数格式 MAX 功能 返回表达式中的最大值 5 最小值函数格式 MIN 功能 返回表达式中的最小值 杭州商学院计信学院 2020 6 26 20 2 2VisualFoxPro的命令和函数 6 求余数函数格式 MOD 功能 返回除以所得的余数 不能为零 若为负数 则余数为负数 当和同号时 函数值是除以所得的余数 当和异号时 函数值是减去的绝对值除以的绝对值所得的余数 7 平方根函数格式 SQRT 功能 返回的算术平方根 的值必须大于或等于零 杭州商学院计信学院 2020 6 26 21 2 2VisualFoxPro的命令和函数
11、2 字符函数 1 取消空格函数格式 ALLTRIM 功能 删除指定字符表达式的前后空格符 并返回删除空格符后的字符串 2 查找子串函数格式 AT 功能 在中查找第次出现的位置 若找到 返回在中出现的位置 若找不到 函数值为0 函数值的类型为数值型 缺省 则为第一次出现的位置 杭州商学院计信学院 2020 6 26 22 2 2VisualFoxPro的命令和函数 3 字符串长度函数格式 LEN 功能 返回字符表达式的长度 4 取子串函数格式 SUBSTR 功能 从字符串中取子串 是指取子串的开始位置 是指截取子串的长度 如果缺省 则从开始到字符串的最后一个字符 5 取左子串函数格式 LEFT
12、功能 从的左边开始取子串 子串的长度由决定 杭州商学院计信学院 2020 6 26 23 2 2VisualFoxPro的命令和函数 6 取右子串函数格式 RIGHT 功能 从的右边开始取子串 子串的长度由决定 7 空格函数格式 SPACE 功能 输出若干个空格 空格数有决定 8 宏代换函数格式 功能 取得字符型内存变量的值 说明 宏代换的作用范围是从符号 开始 遇到圆点符 或空白为止 杭州商学院计信学院 2020 6 26 24 2 2VisualFoxPro的命令和函数 3 日期和时间函数 1 系统日期函数格式 DATE 功能 返回当前系统日期 2 系统时间函数格式 TIME 功能 返回当
13、前系统时间 当包含时 返回的时间精确到百分之几秒 可以是任何值 3 系统日期时间函数格式 DATETIME 功能 返回当前的日期和时间 杭州商学院计信学院 2020 6 26 25 2 2VisualFoxPro的命令和函数 4 年 月 日函数格式 YEAR MONTH CMONTH DAY 功能 返回给定的日期表达式或日期时间表达式中的年份 月份和日期 函数值为数值型或字符型 5 求时 分 秒函数格式 HOUR MINUTE SEC 功能 返回给定日期时间表达式的小时 分或秒 函数值为数值型或字符型 杭州商学院计信学院 2020 6 26 26 2 2VisualFoxPro的命令和函数 4
14、 转换函数 1 字母大小写转换函数格式 UPPER LOWER 功能 UPPER函数将中的字母转换成大写字母 LOWER函数将中的字母转换成小写字母 返回值为字符型 2 数值型与字符型转换函数格式 STR VAL 功能 STR函数是将数值型转换成字符型 是转换的长度 缺省时转换整个长度 是指定转换的小数位数 缺省时不转换小数位 VAL函数是将字符型转换成数值型 转换部分是从第一个数字字符开始到非数字字符为止的数字串 小数位默认为2 杭州商学院计信学院 2020 6 26 27 2 2VisualFoxPro的命令和函数 3 日期型与字符型的转换函数格式 CTOD DTOC 1 功能 CTOD函
15、数是将字符型转换成日期型 DTOC函数是将日期型转换成字符型 加参数1 则输出格式转换成年 月 日 年份4位 4 字母与ASC 的转换函数格式 ASC CHR 功能 ASC函数是返回中的首字符的ASC 码 CHR函数是把的值转换成相应ASC 码的字母 杭州商学院计信学院 2020 6 26 28 2 2VisualFoxPro的命令和函数 5 数据库与表函数有关数据库和表的函数请参考第四章和第七章 杭州商学院计信学院 2020 6 26 29 2 2VisualFoxPro的命令和函数 6 其他函数 1 空函数格式 EMPTY 功能 当为空时 返回函数值 T 否则返回 F 表达式可以是字符型
16、数值型 逻辑型 日期型 备注型和通用型 2 数据类型测试函数格式 TYPE 功能 返回的类型 说明 参数必须是字符型的 杭州商学院计信学院 2020 6 26 30 2 2VisualFoxPro的命令和函数 3 文件测试函数格式 FILE 功能 测试指定的文件是否存在 如果存在 则返回 T 否则返回 F 文件名必须包含扩展名 4 自定义对话框函数格式 MESSAGEBOX 功能 显示一个用户自定义对话框 函数值类型是数值型 是用来指定对话框中的按钮 图标和显示对话框时的默认按钮 数值的设置详见帮助 杭州商学院计信学院 2020 6 26 31 2 3VisualFoxPro表达式 表达式的形
17、式是 操作数1运算符操作数2VisualFoxPro6 0的表达式分为五种 数值表达式 字符表达式 关系表达式 逻辑表达式和日期表达式 杭州商学院计信学院 2020 6 26 32 2 3VisualFoxPro表达式 2 3 1数值表达式数值表达式是由常量 变量 函数和数学运算符组成 其运算结果是数值型的 数学运算符按照按照优先顺序为 括号 或 乘方 乘 除 取模 求余数 加 减 杭州商学院计信学院 2020 6 26 33 2 3VisualFoxPro表达式 向一级别的运算原则是从左到右计算 括号可以改变运算的顺序 即先括号内后括号外 多层括号则先内层后外层 所有符号必须一个个并排写在同
18、一横线上 不能有上标和下标 所有运算符都不能省略 所有括号都是小括号 转换时要保持原有数学表达式的优先级 杭州商学院计信学院 2020 6 26 34 2 3VisualFoxPro表达式 2 3 2字符表达式字符型表达式由字符运算符 字符型常量 变量和函数组成 其运算结果的数据类型为字符型或逻辑型 字符表达式的运算符有 连接运算符 比较运算符 它们用于对两个字符串进行运算 分别称为加 减 精确比较和包含 杭州商学院计信学院 2020 6 26 35 2 3VisualFoxPro表达式 1 加 是把两个指定的字符串连接 结果仍为字符串 即把运算符 后面的字符串加到运算符 前面的字符串后面 2
19、 减 也是进行两个字符串的连接 其作用与 运算类似 只是它把第一个字符尾部的空格全部移到连接后的字符串的尾部 杭州商学院计信学院 2020 6 26 36 2 3VisualFoxPro表达式 3 精确比较 格式 功能 判断与是否严格相等 若相等结果为 T 4 包含 格式 功能 当包含了 则结果为真 否则为假 杭州商学院计信学院 2020 6 26 37 2 3VisualFoxPro表达式 2 3 3关系表达式关系表达式是由关系运算符 数值表达式 字符表达式 常量 变量和函数组成 其运算结果是逻辑型 关系表达式的一般形式为 关系运算符关系运算符主要有 大于 大于或等于 等于 或 或 不等于关
20、系运算符是对同类数据比较 操作数可以是数值型 日期型 字符型和逻辑型 数值型数据比较时 按数据的大小比较 杭州商学院计信学院 2020 6 26 38 2 3VisualFoxPro表达式 字符串比较时 逐个比较每个字符的ASCII码大小 例如 abc bc 结果为假 当操作数为字符型时 与 有所区别 对于 当在指明为精确环境时 其意义与 一致 而在非指定为精确环境中 只要是的子串时便为真 日期型数据比较时 日期大则大 逻辑型数据比较时 真大于假 杭州商学院计信学院 2020 6 26 39 2 3VisualFoxPro表达式 2 3 4逻辑表达式逻辑表达式是由逻辑运算符 逻辑常量 变量 函
21、数和关系表达式组成 其结果仍为逻辑值 逻辑运算符按优先级排列如下 NOT 或 逻辑非 AND 逻辑与 OR 逻辑或 杭州商学院计信学院 2020 6 26 40 2 3VisualFoxPro表达式 逻辑运算符的运算规则如表2 1所示 表2 1逻辑运算规则逻辑值A逻辑值BNOTAAANDBAORBTTFTTTFFFTFTTFTFFTFF 杭州商学院计信学院 2020 6 26 41 2 3VisualFoxPro表达式 2 3 5日期表达式日期表达式是由日期运算符 日期型常量 变量 函数构成的表达式 其运算结果视具体的操作数与运算符而定 日期运算符为 它们有三种情况 1 日期加数值的运算 2 日期减日期的运算 3 日期减数值的运算 第二章结束