VisualFoxPro程序设计基础.ppt

上传人:sh****n 文档编号:6561395 上传时间:2020-02-29 格式:PPT 页数:79 大小:782KB
返回 下载 相关 举报
VisualFoxPro程序设计基础.ppt_第1页
第1页 / 共79页
VisualFoxPro程序设计基础.ppt_第2页
第2页 / 共79页
VisualFoxPro程序设计基础.ppt_第3页
第3页 / 共79页
点击查看更多>>
资源描述
全国计算机等级考试 VisualFoxPro程序设计 数据库应用 主讲老师 段克奇 第2章VisualFoxPro程序设计基础 在VisualFoxPro中 除了能够对数据表中的数据进行处理 也可以对诸如常量 内存变量等数据表之外的数据进行单独处理 简单的数据处理可以通过函数 表达式和单条命令完成 复杂的数据处理则可能需要编写程序来完成 本章介绍VisualFoxPro程序设计基础 内容包括常量 内存变量 表达式 常用函数 程序的基本结构以及多模块程序设计 本章知识点在笔试考试中的分析明细表 2 1常量与变量 1 常量常量通常是指以文字串形式出现在代码中的数据 代表一个具体的 不变的值 而变量用于存储数据 一个变量在不同的时刻可以存放不同的数据常量类型包括数值型 货币型 字符型 日期型 日期时间型和逻辑型 不同类型的常量有不同的书写格式 接下来分别介绍 1 数值型常量数值型常量就是常数 用来表示一个数的大小 由数字0 9 小数点和正负号构成 在内存中占8个字节 2 货币型常量货币型常量用来表示货币值 在内存中占8个字节 在书写时要加上一个前置的美元符号 货币数据在存储和计算时 采用4位小数 多于4位小数 系统会自动将多余的小数位四舍五入 3 字符型常量字符型常量也称字符串 其表示方法是用定界符半角单引号 双引号或方括号把字符串括起来 如 计算机 567 姓名 ABC abc 4 日期型常量日期型常量在内存中占8个字节 定界符是一对花括号 日期型常量中默认的分隔符是斜杠 另外还包括 和空格等 日期型常量的格式有两种 1 传统的日期格式 月 日各为2位数字 而年份可以是2位数字 也可以是4位数字 系统默认的日期型数据为美国日期格式 mm dd yy 月 日 年 2 严格的日期格式 表示为 yyyy mm dd 用这种格式书写的日期常量能表达一个确切的日期 书写时要注意 花括号内第一个字符必须是脱字符 年份必须用4位 如2010 2011等 年月日的次序不能颠倒 不能缺省 影响日期格式的设置命令 1 SETMARKTO setmarkto命令功能 用于指定显示日期时所用的分隔符 如果SETMARKTO后面没有指定分隔符 表示恢复系统默认的斜杠分隔符 2 SETDATE TO AMERICAN ANSIsetdate to 命令功能 用于设置日期显示的格式 如果SETDATE TO 后面没有指定日期显示的格式 表示恢复系统默认的mm dd yy 月 日 年 格式 3 SETCENTURYON OFFsetcentury命令功能 指定如何显示或解释一个日期数据的年份 ON显示世纪 即用4位数字表示年份 OFF不显示世纪 即用2位数字表示年分 它是系统默认的设置 操作举例 5 日期时间型常量日期时间型常量包括日期和时间两部分内容 日期时间型数据用8个字节存储 其中用AP 或A 表示上午 用PM 或P 表示下午 默认值为AM 6 逻辑型常量逻辑型数据只有逻辑真和逻辑假两个值 逻辑型数据只占用一个字节 逻辑真的常量表示形式有 T T Y 和 y 逻辑假的常量表示形式有 F F N 和 n 2 变量变量的命名规则 变量的值是可以随时更改的 每个变量对应一个变量名 变量的命名以字母 汉字和下划线开头 后接字母 数字 汉字和下划线构成 开头不能用数字 分类 分为字段变量和内存变量两大类内存变量的数据类型包括 字符型 C 数值型 N 货币型 Y 逻辑型 L 日期型 D 和日期时间型 T 1 简单内存变量在VisualFoxPro中 一个变量在使用前并不需要特别的声明或定义 当出现内存变量与字段变量同名时 若简单地用变量名访问 则系统默认为是字段变量 若要访问内在变量 则必须在变量名前加上前缀M 或M 例如M 姓名 2 数组数组是内存中连续的一片存储区域 它由一系列元素组成 每个数组元素可通过数组名及相应的下标来访问 每个数组元素相当于一个简单变量 可以给各元素分别赋值 并且各元素的数据类型可以不同 数组大小由下标的上 下限决定 下限规定为1 创建数组 格式 格式1 DIMENSION 格式2 DECLARE 例如 DIMENSIONx 5 y 2 3 定义了两个数组 一维数组x含有5个数组元素 x 1 x 2 x 3 x 4 x 5 二维数组y含有6个元素 y 1 1 y 1 2 y 1 3 y 2 1 y 2 2 y 2 3 二维数组可以转化为一维数组 二维数组与二维表存在对应关系 如 数组y 1 1 与二维表中的第一行第一列对应 y 2 3 与二维表中的第二行第三列对应 3 内存变量常用命令1 内存变量的赋值VisualFoxPro中的内存变量赋值有两种格式 命令格式1 命令格式1 STORETo功能 计算表达式并将表达式值赋给一个或多个内存变量 等号一次只能给一个内存变量赋值 STORE可以同时给多个变量赋于相同的值 各变量名之间用逗号隔开 2 表达式值的显示格式1 格式2 注意 不管有没有指定表达式 格式1都会输出一个回车换行符 如果指定了表达式 各表达式值将在下一行的起始处输出 格式2不会输出一个回车换行符 各表达式值在当前行的光标所在处直接输出 能 首先计算出表达式的值 再将该值赋给内存变量 3 内存变量的显示命令格式 DISPLAY LISTMEMORY LIKE TOPRINTER PROMPT TOFILE 功能 显示当前内存中的内存变量名称 作用范围 数据类型和值 DISPLAY和LIST的区别在于 D1SPLAY命令分屏显示 每显示一屏暂停 按任意键后继续显示 LIST命令连续显示 中间不停顿 直到显示完毕 通配符有 和 两种 代表单个字符 代表一个或多个字符 若缺省任选项LIKE 则显示当前内存中的所有内存变量 若选用该选项 则显示与相匹配的内存变量 4 内存变量的清除格式 格式1 CLEARMEMORY格式2 RELEASE格式3 RELEASEALL EXTENDED 格式4 RELEASEALL LIKE EXCEPT 说明 格式1用于清除所有内存变量 格式2用于清除指定的内存变量 格式3用于清除所有的内存变量 在人机会话状态 其作用与格式1相同 如果出现在程序中 则应该加上短语EXTENDED 否则不能删除公共内存变量 格式4选用LIKE短语清除与通配符相匹配的内存变量 选用EXCEPT短语清除与通配符不相匹配的内存变量 5 表中数据与数组数据之间的交换将表的当前记录复制到数组 命令格式为 格式1 SCATTER FIELDS MEMO TO BLANK 格式2 SCATTER FIELDSLIKE FIELDSEXCEPT MEMO TO BLANK 2 2表达式 表达式是由常量 变量和函数通过特定的运算符连接起来的式子 表达式的形式包括 单一的运算对象 包括常量 变量或函数等 由运算符将运算对象连接起来形成的式子 表达式无论是简单还是复杂 都会有一个运算结果 即表达式的值 根据运算结果的不同 表达式可以分为数值表达式 字符表达式 日期时间表达式和逻辑表达式 各类表达式都有自己特定的运算符 且存在一定的运算顺序 1 数值 字符与日期时间表达式数值表达式又称为算术表达式 由算术运算符和数值型常量 变量和数值型函数等组成 数值运算是分先后次序的 数值运算的优先级见表所示 比如 键入以下命令 并回车运行 5 2 7 5 7 2 3 5 字符表达式 字符串表达式由字符串运算符将字符型数据连起来形成 结果仍是字符型数据 字符运算符有以下两个 它们的优先级相同 前后两个字符串首尾相接形成一个新的字符串 连接前后两个字符串 并将前字符串尾部的空格移到合并后的字符串尾部 日期时间表达式 运算符只有两个分别是加 和减 书写时格式有一定限制 不能任意组合 例如不能用运算符 号将两个连接起来 合法的日期时间表达式格式如表所示 2 关系表达式1 关系表达式关系表达式通常也称为简单逻辑表达式 由关系运算符将两个运算对象连接起来形成 即 运算结果是逻辑型数据 注意 运算符 和 仅适用于字符型数据 其他运算符适用于任何数据 在比较运算时 前后两个运算对象的类型必须相同 但日期和日期时间型数据可以比较 2 设置字符的排序次序当比较两个字符串时 自左向右逐个比较 一但发现两个字符不同 就根据这两个字符的大小决定字符串的大小 字符的大小取决于字符集中字符的排序次序 排在前面的小 排在后面的大 在中文VisualFoxPro中 默认的字符排序次序名为PinYin 但可以重新设置 排序次序名必须放在引号当中 设置字符排序次序的命令是 SETCOLLATETO 3 字符串精确比较与EXACT设置用双等号运算符 精确比较 只有当两个字符串完全相同 包括空格及位置 才会为逻辑真 T 用单等号运算符 比较 运算结果与setexacton off的设置有关 ON先在较短的字符串尾加若干空格 使两个字符串的长度相等 再进行精确比较 如 计算机世界 计算机 在ON状态下结果为 F OFF只要右边字符串与左边字符串的前面部分内容相匹配 即为逻辑真 T 如 计算机世界 计算机 OFF状态下结果为 T 3 字符串精确比较与EXACT设置举例 字符串比较与EXACT设置示例 SetexactoffStore 会计 tos1Store 会计 tos2 注意 会计 后有一空格Store 会计电算化 tos3 s1 s3 s3 s1 s1 s2 s2 s1 s2 s1运行结果 F T F T F SetexactON 将较短的字符串填充空格 等长比较 s1 s3 s3 s1 s1 s2 s2 s1 s2 s1运行结果 F F T T F 4 赋值与相等比较的区别内存变量的赋值命令与相等比较运算都使用等号 必须注意两者之间的区别 赋值命令格式 相等比较运算格式 3 逻辑表达式逻辑表达式由逻辑运算符将逻辑型数据连接起来而形成 其运算结果仍然是逻辑型数据 逻辑运算符有3个 NOT 或 逻辑非 AND 逻辑与 及 OR 逻辑或 也可以省略两端的点 写成NOT AND OR 其优先级顺序依次为NOT AND OR 逻辑非是单目运算 运算对象只有一个 其运算结果与操作数的值正好相反 逻辑与具有 并且 的含义 只有当两个操作数均为真时 运算结果才为真 否则为假 逻辑或具有 或者 的含义 两个操作数中 只要有一个为真 运算结果就为真 否则为假 逻辑运算符的上述运算规则可以用下表表示 4 运算符的优先级每类运算符中包含的运算符都有自己的优先次序 同样在各类运算符之间也存在运算优先次序 具体次序如下 先运行算术运算符 字符串运算符和日期时间运算符 其次运行关系运算符 最后运行逻辑运算符 另外还包括以下规则 圆括号的优先级最高 相同优先级的运算符按从左到右的顺序进行运算 字符串连接运算符和加 减运算符优先级一样 需注意圆括号的作用 有时候 在表达式的适当地方插入圆括号不是为了改变其他运算符的运算次序 而是为了提高代码的可读性 2 3常用函数 函数是用程序来实现的一种数据运算或转换 函数可以用函数名加一对圆括号加以调用 自变量放在圆括号里 如ABS x 在VisualFoxPro中 将函数分为数值函数 字符函数 日期和时间函数 数据类型转换函数和测试函数五类 函数的基本形式如下 函数名 说明 1 函数名后面是一对圆括号 圆括号内可以有参数 也可以没有参数 2 参数是函数的自变量 可以是常量 也可以是变量 但参数的数据类型是固定的 3 函数运算后会返回一个值 称为函数值 1 数值函数1 绝对值函数 ABS 2 符号函数 SIGN 3 平方根函数 SQRT 4 圆周率函数 PI 5 求整数函数 INT 返回指定数值表达式的整数部分CEILING 返回不小于指定数值表达式的最小整数FLOOR 返回不大于指定表达式的最大整数 6 四舍五入函数 ROUND 功能 返回指定表达式在指定位置四舍五入后的结果 如果 表达式2 0 表示要保留的小数位数 如果 表达式2 0表示整数部分的舍入位数 如果 表达式2 0表示保留整数 没有小数部分 例2 17x 456 456 ROUND x 2 ROUND x 1 ROUND x 0 ROUND x 1 456 46456 5456460 7 求余数函数格式 MOD 功能 返回两个数值相除后的余数 是被除数 是除数 余数的正负号与除数相同 如果被除数与除数同号 那么函数值即为两数相除的余数 如果被除数与除数异号 则函数值为两数相除的余数再加上除数的值 例 MOD 10 3 MOD 10 3 MOD 10 3 MOD 10 3 1 22 1 8 求最大值和最小值函数格式MAX MIN 功能 MAX 计算各自变量表达式的值 并返回其中的最大值 MIN 计算各自变量表达式的值 并返回其中的最小值 比如 MAX 5 9 2 MAX 3 23 13 MIN 自行车 汽车 火车 93火车 2 字符函数 1 字符串长度函数 LEN 2 大小写转换函数 LOWER 大写字母转换成小写字母 其他字符不变 UPPER 小写字母转换成大写字母 其他字符不变 3 空格字符串生成函数 SPACE 4 删除前后空格函数 TRIM 返回指定字符表达式值去掉尾部空格后形成的字符串 LTRIM 返回指定字符表达式值去掉前导空格后形成的字符串 ALLTRIM 返回指定字符表达式值去掉前导和尾部空格后形成的字符串 2 3常用函数 2 字符函数 5 取子串函数 LEFT 从指定表达式值的左端取一个指定长度的子串作为函数值 RIGHT 从指定表达式值的右端取一个指定长度的子串作为函数值 SUBSTR 从指定表达式值的指定起始位置取指定长度的子串作为函数值 SUBSTR 函数中 若缺省参数 则函数从指定位置一直取到最后一个字符 例2 24Store goodbye tox left x 2 substr x 6 2 substr x 6 right x 3 gobybye Ye 2 3常用函数 2 字符函数 6 计算子串出现次数函数格式 OCCURS 功能 返回第一个字符串在第二个字符串中出现的次数 函数值为数值型 若第一个字符串不是第二个字符串的子串 函数值返回0 例2 25Store abcracadabra tos occurs a s occurs b s occurs c s occurs e s 5220 2 3常用函数 2 字符函数 7 求子串位置函数 AT ATC 功能 AT 的函数值为数值型 如果是的子串 则返回的首字符在中的位置 若不是子串 则返回0 用于表明要在中搜索的第几次出现 其默认值是1 例Store ThisisVisualFoxPro6 0 tox at fox x atc fox x at is x 3 at xo x 016100 2 3常用函数 2 字符函数 8 子串替换函数格式 STUFF 功能 用值替换中由和指定的一个子串 替换和被替换的字符个数不一定相等 如果值是0 则插在由指定的字符前面 如果值是空串 那么中由和指定的子串被删去 例2 27s1 goodbye s2 morning stuff s1 6 3 s2 stuff s1 1 4 s2 goodmorning morningbye 2 3常用函数 2 字符函数 字符函数是指自变量一般是字符型数据的函数9 字符替换函数格式 CHRTRAN 功能 该函数的自变量是三个字符表达式 当中的一个或多个相同字符与中的某个字符相匹配时 就用中的对应字符 与中的字符具有相同的位置 替换这些字符 如果包含的字符个数少于包含的字符个数 导致没有对应的字符 那么中相匹配的各字符将被删除 如果中包含的字符个数多于中包含的字符个数 多余字符将被忽略 例2 28a chrtran AFACAD ACD X56 b chrtran 老师好 老师 您 a bXFX5X6您好 2 3常用函数 2 字符函数 字符函数是指自变量一般是字符型数据的函数10 字符串匹配函数格式 LIKE 功能 比较两个字符串对应位置上的字符 若所有对应字符都匹配 函数返回逻辑真 T 否则返回逻辑假 F 中可以包含通配符 和 可以与任何数目的字符相匹配 可以与任何单个字符相匹配 例2 29x abc y abcd like ab x like x ab like ab y like x y like b x like Abc x T F T F T F 2 3常用函数 3 日期和时间函数1 系统日期和时间函数DATE 返回当前系统日期 函数值为日期型 TIME 以24小时制的hh mm ss格式返回当前系统时间 函数值为字符型 DATETIME 返回当前系统日期时间 函数值为日期时间型2 年份 月份和天数函数YEAR MONTH DAY 比如 Store 2011 07 20 tod year d month d day d 2011720 2 3常用函数 3 日期和时间函数3 时分秒函数HOUR MINUTE SEC 2 3常用函数 4 数据类型转换函数1 数值转换成字符串格式 STR 功能 将的值转换成字符串 转换要根据需要自动四舍五入 返回的字符串的理想长度L应该是的值的整数部分位数加上值 如果大于L 则字符串加前导空格以满足规定的长度 如果大于等于L 则优先满足整数部分而自动调小数位数 如果小于L的整数部分位数 则返回 号 的默认值为0 的默认值为10 例2 33Store 345 456TOn str n 9 2 str n 6 2 str n 3 str n 6 str n 345 46 345 5 345 345 2 3常用函数 4 数据类型转换函数2 字符串转换成数值格式 VAL 功能 将由数字符号组成的字符型数据转换成相应的数值型数据 例2 34Store 456 ToxStore 78 toy 注意78前有个 Store A78 toz val x y val x z val z y 456 78 456 000 00 2 3常用函数 4 数据类型转换函数3 字符串转换成日期或日期时间格式 CTOD CTOT 功能 CTOD 将值转换成日期型数据 CTOT 将值转换成日期时间型数据 例2 35setdatetoymdSetcenturyonSetcenturyto19rollover30 ctod 04 28 11 ctot 04 28 1111 00 00 04 28 201104 28 201111 00 00AM 2 3常用函数 4 数据类型转换函数4 日期或日期时间转换成字符串格式 DTOC 1 TTOC 1 功能 DTOC 将日期型数据或日期时间数据的日期部分转换成字符串 TTOC 将日期时间数据转换成字符串 例2 36假设当前的系统日期时间为 2011 03 2611 55 00 SetdatetomdySetcenturyoffStoredatetime tot t03 26 1111 54 39PM dtoc t dtoc t 1 ttoc t ttoc t 1 03 26 112011032603 26 1111 55 00PM20110326115500 2 3常用函数 4 数据类型转换函数5 宏替换函数格式 功能 替换出字符型变量的内容 即 的值是变量中的字符串 例2 37Use学生xm 姓名 x 5 6 xm xm x x姓名张海5 611 2 3常用函数 5 测试函数1 值域测试函数格式 BETWEEN 功能 判断一个表达式的值是否介于另外两个表达式的值之间 在和之间时 函数值为真 T 否则为假 F 如果和 其中一个是NULL值 那么函数值也是NULL值 3个变量可以是数值型 日期型 货币型等 但3个变量的类型要保持一致 例2 38Store NULL toxStore100toy between 150 y y 100 between 90 x y between 50 100 电脑 T NULL 3个变量类型不一致 提示找不到变量 2 3常用函数 5 测试函数2 空值 NULL值 测试函数格式 ISNULL 功能 判断一个表达式的运算结果是否为NULL值 若是NULL值则返回逻辑真 T 否则返回逻辑假 F 例2 39Store NULL TOx x isnull x NULL T 2 3常用函数 5 测试函数3 空值 NULL值 测试函数格式 EMPTY 功能 根据指定表达式的运算结果是否为 空 值 返回逻辑真 T 或逻辑假 F 注意 空值 NULL 测试函数与 空 值EMPTY 测试函数是两个不同的概念 比如 empty 123 empty 0 empty ctod empty 0 empty space 5 F T T T T 2 3常用函数 5 测试函数4 数据类型测试函数格式 VARTYPE 功能 测试的类型 返回一个大写字母 函数值为字符型 比如 Store 大学 toMStorenulltoNStore 200toY vartype M vartype N vartype Y vartype 66 vartype 大学 CXYNU 2 3常用函数 5 测试函数5 条件测试函数格式 IIF 功能 测试的值 若为逻辑真 T 函数返回的值 若为逻辑假 F 函数返回的值 和的类型不要求相同 例2 42 iif 100 100 50 150 iif 300 100 250 350 150250 iif len space 5 5 1 1 1 2 3常用函数 5 测试函数6 表文件首测试函数格式 BOF 功能 测试当前表文件或指定文件中的记录指针是否指向了文件首 若是返回逻辑真 T 否则返回逻辑假 F 表文件首是指第一条记录前面的位置 若指定工作区上没有打开表文件 函数返回逻辑假 F 若表文件不包含任何记录 函数返回逻辑真 T 2 3常用函数 5 测试函数7 表文件尾测试函数格式 EOF 功能 测试指定表文件中的记录指针是否指向文件尾 若是则返回真 T 否则返回逻辑假 F 若缺少自变量 则测试当前表文件 若在指定工作区上没有打开表文件 函数返回逻辑假 若表文件中不包含任何记录 函数返回逻辑真 表文件尾是指最后一条记录的后面位置 2 3常用函数 5 测试函数8 记录号测试函数格式 RECNO 功能 返回当前表或指定文件中当前记录的记录号 9 记录个数测试函数格式 RECCOUNT 功能 返回当前表文件或指定表文件中物理上存在的记录个数记录删除测试函数格式 DELETED 功能 测试当前表文件或指定表文件中的当前记录是否有删除标记 若有就返回逻辑真 否则返回逻辑假 2 4程序与程序文件 1 程序的概念1 基本概念程序是能够完成一定任务的命令的有序集合 这组命令被存放在称为程序文件或命令文件的文本文件中 程序文件的系统默认扩展名是 prg 2 书写要求程序中的每条命令都以回车结尾 一行只能写一条命令 若要分行书写 应在一行程序的结尾处输入分号 续行符 3 程序特点 2 4程序与程序文件 2 程序文件的建立与运行1 创建程序通过项目管理器创建通过文件菜单创建通过命令创建2 保存程序通过菜单保存直接关闭没有保存的程序 则会弹出相应对话框 提示保存或放弃按CTRL W组合键保存 3 修改程序通过项目管理器的 修改 选项打开程序并修改通过文件菜单中 打开 选项打开程序并修改通过命令MODIFYCOMMAND打开程序并修改4 运行程序通过项目管理器的 运行 按钮运行程序通过程序菜单中 运行 选项运行程序通过命令DO运行程序 2 4程序与程序文件 3 简单的输入 输出命令1 INPUT TO2 ACCEPT TO3 WAIT TO WINDOW AT NOWAIT CLEAR NOCLEAR TIMEOUT 2 5程序的基本结构 1 顺序结构顺序结构是最简单的程序结构 它按命令在程序中出现的先后次序依次运行 例2 47CLEAR 清除主窗口显示的全部信息r 3 设置圆的半径 依次计算周长和面积p 2 pi r 函数PI 返回圆周率s pi r 2 输出计算结果 周长 p 面积 s主窗口中显示 周长 18 85面积 28 2743 2 5程序的基本结构 2 选择结构1 简单的条件语句IFENDIF2 一般形式的条件语句IFELSEENDIF 2 5程序的基本结构 2 选择结构3 多分支语句语句格式 DOCASECASECASE CASE OTHERWISE ENDCASE 2 5程序的基本结构 3 循环结构循环结构也称为重复结构 是指程序在运行过程中 其中的某段代码被重复运行若干次 被重复运行的代码段通常称为循环体 VisualFoxPro支持的循环结构语句包括 DOWHILE ENDDO FOR ENDFORSCAN ENDSCAN语句 2 5程序的基本结构 3 循环结构1 DOWHILE ENDDO这是一个功能全面使用频率较高的循环语句 语句格式 DOWHILE LOOP EXIT ENDDO运行该语句时 先判断是否为真 如果是真则运行DOWHILE与ENDDO间的循环体 当运行到ENDDO时 再返回DOWHILE重新判断循环条件是否为真 确定是否再次运行循环体 若条件为假则结束循环语句运行ENDDO后的语句 2 5程序的基本结构 3 循环结构1 DOWHILE ENDDO例如CLEARX 12345Y 0DOWHILEX 0Y Y X 10X INT X 10 ENDDO Y主窗口中显示 15 2 5程序的基本结构 3 循环结构2 FOR ENDFOR语句该语句通常用于已知循环次数情况下的循环操作 语句格式 FOR TO STEP LOOP EXIT ENDFOR NEXT先将初值赋给循环变量 然后判断循环条件是否成立 若成立 则运行循环体 然后循环变量增加一个步长值 并在次判断循环条件确定下一次的循环操作 如果条件不成立则结束循环运行ENDFOR后的语句 2 5程序的基本结构 3 循环结构2 FOR ENDFOR语句比如 计算1 2 3 5的值 CLEARs 0FORi 1TO10s s IENDFOR s sRETURN主窗口中显示 15 2 5程序的基本结构 3 循环结构3 SCAN ENDSCAN语句该循环语句也称为扫描循环语句 功能相当于LOCATE CONTINUE和DOWHILE ENDDO语句功能的合并 一般只是用于处理表中记录 语句可指明需处理记录的范围及应满足的条件 语句格式 SCAN FOR WHILE LOOP EXIT ENDSCAN运行该语句时 记录指针自动 依次地在当前表的指定范围内满足条件的记录上移动 对每一条记录运行循环体内的命令 2 6多模块程序设计 模块是一个相对独立的程序段 它可以被其他模块所调用 也可以去调用其他的模块 通常把被其他模块调用的模块称为子程序 把调用其他模块而没有被其他模块调用的模块称为主程序 1 模块的定义和调用1 模块及其定义2 模块的调用 2 6多模块程序设计 1 模块及其定义在VisualFoxPro中 模块可以是命令文件 也可以是过程 过程定义的语法格式如下 PROCEDUDE FUNCTION RETURN ENDPROC ENDFUNC 一般情况下 过程保存在称为过程文件的单独文件里 一个过程文件包含的过程数量不限 过程序文件的建立与程序文件一样也可以用MODIFYCOMMAND建立 文件扩展名也是 prg 2 6多模块程序设计 2 模块的调用模块的调用格式有两种 格式1 DO 格式2 要调用过程文件中的过程 首先要打开过程文件 打开过程文件的的命令是 SETPROCEDURETO ADDITIVE 当一个过程文件中的过程不再需要被调用时 应及时关闭 关闭过程文件的命令如下 格式1 SETPROCEDURETO 功能是关闭所有打开的过程文件 格式2 RELEASEPROCEDURE 功能是关闭指定的过程文件 2 6多模块程序设计 3 参数传递模块程序可以接收调用程序传递过来的参数 并能根据接收到的参数控制程序流程或对接收到的参数进行处理 以提高程序设计的灵活性 接收参数的命令 PARAMETERS 是声明程序中建立的私有变量 LPARAMETERS 是声明程序中建立的局部变量 都必须是模块中的第一条可运行命令 调用模块程序的格式为 格式1 DO WITH 格式2 2 6多模块程序设计 3 参数传递实参可以是常量 变量或一般形式的表达式 调用模块时 系统会自动把实参传递给形参 形参数目不能少于实参数目 如有多余形参取初始值逻辑假 F 命令的格式如下 SETUDFPARMSTOVALUE REFERENCETOVALUE 按值传递 形参变量值的改变不会影响实参变量的取值 TOREFERENCE 按引用传递 形参变量值改变时 实参变量值也随之改变 需要注意 如果一个变量用一对括号括起来 会使其变为一般形式的表达式 所以不管什么情况 总是按值传递 2 6多模块程序设计 4 变量的作用域 1 内存变量的作用域变量除了类型和取值外还有一个重要的属性是它的作用域 指其在什么范围内有效 VisualFoxPro中可分为全局变量 私有变量和局部变量三类 如下表所示 2 6多模块程序设计 4 变量的作用域2 PRIVATE和LOCAL命令 PRIVATE命令的功能 使用PRIVATE命令可以隐藏上层模块中可能存在的变量 使得这些变量在子程序中暂时无效 当返回上层模块时原变量自动恢复有效 并取原值 命令格式 PRIVATEPRIVATEALL LIKE EXCEPT LOCAL命令的功能 LOCAL命令在建立局部变量时 同时也可以隐藏在上层模块中建立的同名变量 与PRIVATE命令不同 LOCAL命令只在它所在的模块内隐藏同名变量 一旦进入下层模块同名变量就会重新出现 2 6多模块程序设计 4 变量的作用域例2 54PRIVATE和LOCAL命令的比较示例 PUBLICx yx 10y 15dop8 x y 显示10bbbPROCEDUREp8PRIVATEx 隐藏上层模块中的变量xx 50 建立私有变量x 并赋值50LOCALy 隐藏同名变量 建立局部变量yDOp9 x y 显示aaa F PROCEDUREp9x aaa x是在p8中建立的私有变量y bbb y是在主程序中的全局变量RETURN 本章总结 本章的知识点很多 重要的知识点是表达式和函数 这是经常考的内容 在笔试考试中所占分值较高 大家在理解的基础上还要多做练习题才能很好的掌握 对于程序这部分也是每次都要考的内容 但题型不是很难 这部分内容 大家做到能理解简单的程序即可 并通过一些练习题加以巩固
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!