结构化程序设计.ppt_第1页
结构化程序设计.ppt_第2页
结构化程序设计.ppt_第3页
结构化程序设计.ppt_第4页
结构化程序设计.ppt_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 107 第9章结构化程序设计 2 107 VFP提供一种程序执行方式 这种方式就是预先把需要执行的多条命令按一定的结构组成一个有机序列以文件的形式存储在磁盘上 这个文件就称为程序文件 这个序列的设计 编码和调试的过程就是程序设计 9 1程序设计基础 9 1 1程序设计的概念 3 107 程序举例 ex9 4 prg统计少数民族学生人数 CLEARCLEARALLSETTALKOFFSETDEFAULTTOF VFP DBUSE学生COUNTFOR少数民族否TON1COUNTFOR 少数民族否TON2 汉族学生人数 ALLTRIM STR N2 少数民族人数 ALLTRIM STR N1 USESETTALKONRETURN 4 107 9 1 2结构化程序设计方法结构化程序设计采用自顶向下 逐步求精和模块化的分析方法 自顶向下是指对设计的系统要有一个全面的理解 从问题的全局入手 把一个复杂问题分解成若干个相互独立的子问题 逐步求精是指程序设计的过程是一个渐进的过程 先把一个子问题用一个程序模块来描述 再把每个模块的功能逐步分解细化为一系列的具体步骤 模块化是结构化程序的重要原则 所谓模块化就是把大程序按照功能分为较小的程序 5 107 9 1 3程序的控制结构任何复杂的程序都由3种基本控制结构组成 它们是顺序结构 选择结构和循环结构 图9 1程序的控制结构 6 107 9 1 4程序文件的建立与执行 1 命令方式建立或修改程序文件 命令格式 MODIFYCOMMAND MODIFYFILE 文件名 功能 启动VFP提供的文本编辑器来建立或编辑程序文件 二者区别 前者默认为后缀名为prg 但后者没有 因此在使用时 文件名必须带后缀名 2 菜单方式建立编辑程序文件 7 107 命令格式 DO 程序文件名 功能 将程序文件从磁盘调入内存 编译成 FXP目标文件后并执行 3 程序文件的执行 8 107 9 2顺序结构程序 顺序结构是最简单 最基本的一种程序结构 在顺序结构程序中 各命令按照各自出现的先后顺序 依次执行 9 107 1 程序注释命令 语句格式2 注 语句1 2 3在程序中 系统不执行 语句格式1 NOTE 功能 在程序中加入说明性语句 语句格式3 9 2 1程序文件中的辅助命令 10 107 语句格式 CLEAR 2 清屏命令 功能 清除屏幕上所有显示内容 光标回到屏幕左上角 11 107 3 常用状态设置命令 1 设置会话状态语句 语句格式2 SETTALKOFF 功能语句1 设置会话状态开通 语句2 设置会话状态关闭 语句格式1 SETTALKON 12 107 2 设置打印状态命令 语句格式 SETPRINTON OFF 功能 设置打印机的状态 系统默认是断开状态 3 设置屏幕状态命令 语句格式 SETCONSOLEON OFF 功能 设置输入内容是否显示 默认是显示 ON 4 设置缺省驱动器和目录命令 语句格式 SETDEFAULTTO 盘符 路径 功能 设置输入输出操作的默认驱动器和目录 13 107 格式1 STORE 表达式 TO 内存变量名表 格式2 内存变量 表达式 功能 给内存变量赋值 赋值语句 9 2 2交互式输入命令 14 107 交互式语句 键盘输入命令 1 字符串数据输入命令 格式 ACCEPT TO 功能 在屏幕上显示提示信息 等待用户从键盘输入 再把输入内容赋值给指定的内存变量 注 ACCEPT命令只能接受字符型常量 输入时不需加定界符 键盘输入命令主要用于程序执行过程中原始数据的输入 15 107 例 要求用户从键盘上输入用户名 然后把输入的用户名显示出来 ACCEPT 请输入用户名 TONAME NAME 16 107 格式 INPUT TO 2 任意数据输入命令 功能 在屏幕上显示提示信息 等待用户从键盘输入 再把输入内容赋值给指定的内存变量 注 INPUT命令能接受任何类型的表达式 输入C型数据时 要使用 或 作为定界符 输入L型数据时 T 和 F 两边的 不能省 输入D型数据时 要用 或CTOD 将字符串转成日期型变量 17 107 例 求任意两数之和 INPUT 请输入一个数x TOX X Y INPUT 请输入另一个数y TOY 18 107 J 2800INPUT 输入J 200 TOAACCEPT 输入J 200 TOB A A B B注 执行时 先后两次输入同样的内容 J 200 例 给出下列A B的结果 19 107 格式 WAIT TO TIMEOUT WINDOW NOWAIT 3 单个字符接收命令 功能 当程序执行某一处需要暂停时使用此命令 含义 WINDOW 选择此项 则会在主窗口的左上角出现一个提示信息窗口 NOWAIT 选择此项 程序继续执行 不会暂停 注 WAIT命令响应速度快 它只接受一个字符 不需用户键入回车键 20 107 格式 SAY FUNCTION PICTURE 1 格式输出语句 功能 按指定的坐标位置在屏幕上输出表达式的值 注 若选用PICTURE FUNCTION子句 则按一定的格式输出 9 2 3格式输入 输出命令 21 107 格式 SAYGET RANGE READ 2 格式输入语句 功能 在屏幕指定的坐标位置上显示提示或输入数据 READ一般与GET联合起来用 当有READ时 GET的内容可以从键盘上修改 没有READ时 GET后的变量只能显示内容 不能修改 一个READ可以修改它前面的多个GET项的内容 但它可以由CLEARGETS命令隔断 注 该变量应在其前面定义过 赋初值 22 107 输出类语句 总结 1 非格式输出语句 格式1 内存变量名表 格式2 内存变量名表 注 语句1是在光标所在行的下一行开始显示 语句2则是在当前光标位置开始显示 功能 显示内存变量 常量或表达式的值 23 107 格式 SAY FUNCTION PICTURE 2 格式输出语句 功能 按指定的坐标位置在屏幕上输出表达式的值 注 若选用PICTURE FUNCTION子句 则按一定的格式输出 24 107 终止程序执行语句 补充 语句格式2 QUIT 注 语句1 在终止程序执行后 返回到VFP命令状态 语句2 返回到操作系统状态 语句格式1 CANCEL 功能 终止程序执行 关闭所有打开的命令文件 25 107 顺序结构程序 按语句的先后顺序组织的程序 即把处理过程的各个步骤按执行的先后顺序列出 其流程图如右图所示 顺序结构程序设计 A B C N 图中箭头表示程序执行的方向 方框代表不同的可执行语句 26 107 例变量的初始化和变量的赋值 SETTALKOFFSTORE0TOX Y ZA 3B A 1C A B X Y Z A B CSETTALKON 27 107 例执行以下命令序列 问答问题 最后显示的值是 所有工资在1000元以上的职工的平均工资 USEzgbSUM基本工资FOR基本工资 1000TOSGZCOPYFOR基本工资 1000TOGZK2USEGZK2num reccount ave sgz num ave 28 107 输入一个三位整数 将其反向输出 settalkoffinput 请输入一个三位数 toab 100 mod a 10 10 mod int a 10 10 int a 100 breturn或者 settalkoffinput 请输入一个三位数 toab str a 3 c int val right b 1 substr b 2 1 left b 1 creturn 29 107 在计算机应用的许多场合 要求程序根据不同的条件采用不同的处理方法 如果条件满足 则执行某一些语句 如果条件不满足 则执行另一些语句 这些需要根据判断条件来控制程序走向的程序设计称为选择结构程序设计 又称分支结构程序设计 VisualFoxPro提供双分支选择语句 多分支选择语句两种选择结构 9 3选择结构程序设计 30 107 语句格式 IF 条件 语句序列1 ENDIF 9 3 1双分支选择语句 选择判断语句 T F Y N ELSE 语句序列2 31 107 注 1 IF和ENDIF必须配对使用 而ELSE可选 2 IF ELSE ENDIF必须各占一行 3 可以为关系表达式 逻辑表达式 4 在 语句序列1 和 语句序列2 中可以嵌套IF语句 执行过程 如果成立 就执行语句序列1 如果不成立 执行语句序列2 32 107 例9 7从键盘接收一个字符 如果是小写字母 将其改为大写字母后输出 其他字符直接输出 SETTALKOFFCLEARWAIT 请输入一个字符 TOLIFL a ANDL z L UPPER L ENDIF LSETTALKON 33 107 例9 8请用分支结构语句编程计算电费 不超过50度 每度0 5元 超过50度时 超出部分每度0 8元 SETTALKOFFINPUT 请输入所用电量 TODLIFDL 50DF DL 0 5ELSEDF 50 0 5 DL 50 0 8ENDIF 应缴电费为 LTRIM STR DF 10 2 元 SETTALKONRETURN 34 107 完善 输入一个三位整数 将其反向输出 settalkoffinput 请输入一个三位数 toaIfa 100anda 999b 100 mod a 10 10 mod int a 10 10 int a 100 bElsemessagebox 你输入的数据有错 endifreturn 35 107 例请改用分支结构语句编程计算电费 不超过50度 每度0 52元 超过50度时 超出部分每度0 75元 SETTALKOFFINPUT 请输入所用电量 TODLDF IIF DL 50 0 52 DL 0 52 50 0 75 DL 50 应缴电费为 LTRIM STR DF 10 2 元 SETTALKONRETURN 36 107 SETTALKOFFINPUT 请输入行李重量 TOWIF1YF 0 22 WELSEYF 0 22 40 1ENDIF 应交托运费为 LTRIM STR YF 10 2 元 SETTALKONRETURN 例火车托运行李 每人不超过40公斤 每公斤0 22元 超过40公斤时 超出部分每公斤0 40元 填空完成以下程序 W 40 W 40 0 4 37 107 SETTALKOFF Setdefatof vfp dbUSEzgbACCEPT 请输入要查找人的姓名 TON LOCATEALLFORXM NIFFOUND DISPELSE 查无此人 ENDIF USESETTALKON RETURN 例编程 在ZGB DBF中查找某人 38 107 从键盘上输入三个数 并按从小到大的顺序输出 settalkoffinput 请输入第一个数 toainput 请输入第二个数 tobinput 请输入第三个数 tocmax1 max a b c min1 min a b c ifa min1andamin1andbmin1andc max1 三个数从小到大的顺序为 min1 c max1endifsettalkon 39 107 9 3 2多分支选择语句 选择语句 情况语句 说明 DOCASE和第一个CASE子句之间不能插入任何语句 DOCASE和ENDCASE必须配对使用 且DOCASE CASE OTHERWISE和ENDCASE各子句必须各占一行 在 语句序列 中可嵌套情况语句 语句格式 DOCASE CASE 条件表达式1 语句序列1 CASE 条件表达式2 语句序列2 CASE 条件表达式n 语句序列n OTHERWISE 语句序列n 1 ENDCASE 40 107 功能 系统依次测试语句中各个条件表达式的值 若为真 即执行相应 条件表达式 后的 语句序列 然后脱离情况语句 执行ENDCASE的下一语句 若所有的条件表达式的值均为假 则执行OTHERWISE后面的语句序列 然后脱离情况语句 执行ENDCASE下一语句 开始判断 语句序列1 序列2 序列n 序列n 1 ENDCASE后面的语句 条件1 条件2 条件n 其它 41 107 例已知cjb dbf中包含xingming avcj等字段 试用avcj来判断该生成绩属于优 90 良 80 及格 60 或不及格 60 USEcjb ACCEPT 请输入姓名 TOxm LOCATEFORALLTRIM xingming ALLTRIM xm n avcj DOCASE CASEn 90 dj 优 CASEn 80 dj 良 CASEn 60 dj 及格 OTHERWISE dj 不及格 ENDCASE 5 10SAYxingming 同学的成绩等级为 dj 42 107 A 3000DOCASECASEA 1000B ACASEA 2000B 2 ACASEA 3000B 3 AENDCASE B 例阅读下列程序段 写出运行结果 43 107 SettalkoffSetdefatof yyfoxclearcho 0 8 18SAY 数据表操作命令菜单 9 18SAY 1 打开工作数据表 10 18SAY 2 增加数据表记录 11 18SAY 3 删除数据表记录 12 18SAY 4 修改数据表记录 14 18SAY 5 关闭工作数据表 15 28SAY 请选择相应代码 GETchoReadDocasecasecho 1accept 请输入表文件名 tobmuse bm 例利用CASE语句实现简单的菜单功能 44 107 casecho 2appendcasecho 3input 请输入要删除的记录号 tojlhgojlhdelecasecho 4browsecasecho 5useotherwise 15 28SAY 选择代码错 endcaseSettalkonreturn 45 107 循环 就是按给定的条件连续地重复执行一段特定功能的程序 循环结构也称为重复结构 9 4循环结构程序设计 VisualFoxPro给出了三种循环结构 条件循环 DOWHILE ENDDO 计算循环 FOR ENDFOR 扫描循环 SCAN ENDSCAN 46 107 语句格式 DOWHILE LOOP EXIT ENDDO 循环体 ENDDO后的语句 条件 T F 条件循环结构流程图 9 4 1条件循环 循环体 功能 有条件连续地重复执行DOWHILE与ENDDO之间的语句序列 直到为假或因执行EXIT语句而结束 条件 47 107 2 循环体中的LOOP是可选项 遇到LOOP时 不再执行后面的语句 转回DOWHILE处重新判断 其作用相当于一个特殊的 短路 返回控制 3 循环体中的EXIT也是可选项 遇到它时便无条件地退出循环 转到ENDDO后面的语句 其作用相当于一个紧急出口 4 通常LOOP或EXIT出现在循环体内嵌套的分支语句中 根据条件来决定是LOOP回去 还是EXIT出去 功能说明 1 系统执行该语句时 先判断循环开始DOWHILE的条件是否成立 如果条件为真 则执行循环体中的语句序列 当执行到ENDDO时 返回到DOWHILE 再次判断条件是否为真 以确定是否再次执行循环体 若条件为假 则结束循环 执行ENDDO后面的语句 如果第一次判断条件时 条件即为假 则循环体一次都不执行 这就是称为 先判断后执行 的语句 SETTALKOFF SETTALKON RETURN CLEAR 例在屏幕上换行显示字符串 OK 20次 i 1 OK i i 1 ENDDO DOWHILE SETTALKOFF SETTALKON RETURN CLEAR i 20 1 1 2 2 2 3 20 20 21 设置循环变量初值 修改循环变量 例在屏幕上换行显示字符串 OK 20次 OK 在以循环变量作为循环控制参数的条件循环中 循环体内一定要有修改循环变量的语句 否则就会出现死循环 注意 例求自然数1至4的和 分析算法 1 i 1 s 0 2 累加第i个数 3 累加次数加1 4 当i 4重复做2 5 s 例求自然数1至4的和 SETTALKOFF S 0 定义一个变量表示和 并初始化 指定以循环次数作判断条件 S S i 把S的值加上i后再赋给S 即求和 修改循环变量 S 输出求和的结果 SETTALKON RETURN 设置循环变量的初值 S 0 i 1 1 4 S 0 1 i 1 1 T 2 4 S 1 2 i 2 1 3 4 S 3 3 i 3 1 4 4 S 6 4 i 4 1 5 4 F 10 SETTALKOFFS 0i 1DOWHILEi 4S S ii i 1ENDDO SSETTALKONRETURN 若求自然数1至N的和呢 程序 求自然数1至4的和 SETTALKOFF S 0 i 1 INPUT 请输入N的值 TON DOWHILEi 4 S S i i i 1 ENDDO S SETTALKON RETURN i N 推广1 若求自然数1至N的积呢 程序 求自然数1至N的和 SETTALKOFF S 0 i 1 INPUT 请输入N的值 TON DOWHILEi N S S i i i 1 ENDDO S SETTALKON RETURN 推广2 S 1 S S i 例阅读程序 并说出程序的运行结果 程序结果 2 3 4 5 6 程序结果 2 4 5 6 E E 57 107 例求1 100以内所有奇数的和 SETTALKOFF S 0 I 0DowhileI 100 I I 1Ifint I 2 I 2LoopendifS S IEnddo 1到100的奇数和S S SETTALKON Return 以循环变量作为控制参数控制循环 S 0I 1DowhileI 100 S S II I 2Enddo s 程序改进 58 107 SETTALKOFF CLEAR USEzgbACCEPT 请输入要查找人的姓名 TON LOCATEALLFORXM NDOWHILE NOT EOF DISPCONTINUWAIT 按任意键继续 按ESC键退出 ENDDO USE 查找结束 SETTALKON RETURN 例编程 在zgb dbf中查找某人 利用数据表的操作函数的返回值控制循环 59 107 例求连乘数1 2 3 4 当积大于720时退出程序 Settalkoff Clear S 1I 1 Dowhile T S S I I I 1Enddo S S Settalkon Return 循环控制条件恒为真 要使用EXIT语句结束循环 例求 1 100 内所有能被3或被5整除的数的个数 IFMOD i 3 0 OR MOD i 5 0 N N 1 ENDIF N 0 定义一个变量表示个数 并初始化 总个数增加1 SETTALKOFF 满足条件的数的个数为 N SETTALKON RETURN i 显示满足条件的这个数 61 107 语句格式 FORX ATOB STEPC LOOP EXIT ENDFOR NEXT 9 4 2FOR循环 计数循环 循环体 功能 将FOR ENDFOR循环中的执行指定的次数 循环变量 循环初值 步长值 循环终值 62 107 例求1 100之和 SETTALKOFF Clear S 0forI 1to100 S S IEndfor S S SETTALKON Return 若求100的阶乘呢 思考1 63 107 例求1 100之奇数和 SETTALKOFF Clear S 0forI 1to100step2 S S INext S S SETTALKON Return 若求1 100的偶数和呢 思考2 64 107 例阅读程序 写出程序运行结果 思考3若改成EXIT呢 65 107 例9 17求水仙花数 所谓水仙花数是指一个三位数 其各位数字的立方和等于该数本身 如153 13 53 33 66 107 语句格式 SCAN FOR WHILE LOOP EXIT ENDSCAN 9 4 3SCAN循环 表文件扫描循环 循环体 功能 在指定的范围内 扫描满足给定条件的记录 执行相应的语句 67 107 SETTALKOFF USEzgbACCEPT 请输入要查找人的姓名 TON SCANFORXM N DISPWAIT 按任意键继续 按ESC键退出 ENDSCAN USE 查找结束 SETTALKON RETURN 例用SCAN语句编程 在zgb dbf中查找某人 68 107 69 107 对数据表扫描时三种循环的等价格式 表文件扫描循环 SCANFOR ENDSCAN 条件循环 DOWHILE NOT EOF SKIP ENDDO 计数循环 n RECCOUNT FORi 1TOn GOi ENDFOR 循环嵌套 循环体内又设置循环的情况称为多重循环 又称为循环嵌套 内外循环的层次必须分明 不允许有交叉现象出现 循环结构可以与分支结构嵌套 同样不允许有交叉现象出现 以下交叉情形不允许出现 71 107 输出四边形图形 settalkoffcleari 1dowhilei 5 space i j 1dowhilej 6 j j 1enddo i i 1enddosettalkonreturn 72 107 例已知S1 1 S2 1 2 S3 1 2 3 Sn 1 2 3 N 编程求S1 S2 S100的和 s 0n 1 Dowhilen 100 i 1sub 0Dowhilei nsub sub i i i 1Enddos s subn n 1Enddo S1 S2 S100 s 73 107 分别计算200以内所有素数之和 并输出其所用的素数 settalkoffclearS 2 保存和Forj 3to200step2bz t fork 2toj 1ifj k 0bz f exitendifendforifbzs s j jendifEndfor 所有的素数的和为 sSettalkon 74 107 1 求 1 30 之间所有偶数的乘积 3 求s 1 2 n 练习 2 已知S 1 2 3 N当S 800时退出 求此时最小的S值 4 求 5 求 75 107 9 5程序的模块化 9 5 1子程序 过程和函数1 子程序例 求阶乘 1 子程序的结构子程序与其他程序文件的惟一区别是其末尾或返回处必须有返回语句 命令格式 RETURN TOMASTER TO 程序文件名 表达式 76 107 主程序与子程序的概念是相对的 子程序还可调用它自己的子程序 即子程序可以嵌套调用 命令格式 RETURN TOMASTER TO 说明 TOMASTER 选项 使返主时直接返回到最外层主程序 可选项TO强制返回到指定的程序文件 77 107 2 子程序的调用子程序调用命令与主程序执行命令相同 其格式都是 DO 程序文件名 过程名 WITH 参数表 例9 23 P146 3 子程序的嵌套调用主程序可以调用子程序 子程序还可以调用另外的子程序 这就是子程序的嵌套调用 实际上 子程序和主程序都是相对的 任何一个程序可以调用其他程序 也可以被其他程序调用 每个被调用程序的末尾或返回处都要加上RETURN命令 78 107 2 自定义函数 1 自定义函数的结构 FUNCTION 函数名 PARAMETERS 参数表 命令组 RETURN 表达式 2 自定义函数的调用调用格式是 函数名 自变量表 例 79 107 3 过程与过程文件 1 过程的结构过程的一般格式是 PROCEDURE 过程名 PARAMETERS 参数表 命令组 RETURN 2 过程文件一个过程可以以文件形式单独存在 也可以将多个过程合并到一个文件中 这个文件称为过程文件 在过程文件中 每个过程仍然是独立的 可以单独调用 使用过程文件的好处 过程文件被打开后 可以一次性将所有的过程调入内存 不需要频繁进行磁盘操作 大大提高了过程调用速度 80 107 3 过程文件的打开与关闭打开过程文件命令格式是 SETPROCEDURETO 过程文件名 关闭过程文件命令格式是 SETPROCEDURETO或者CLOSEPROCEDURE 81 107 用函数完成f n 1 2 3 n 自定义函数 settalkoffclearinput 输入一个数求1 2 此数的和 toms f m 1 2 left str m 4 的和为 ssettalkonfunctionfparametersns 0fori 1tons s iendforreturns 82 107 用过程完成f n 1 2 3 n 过程 main prg主程序settalkoffclearinput 输入一个数求1 2 此数的和 tomsum1 0dofwithm sum1 1 2 left str m 4 的和为 sum1settalkon 子程序 过程procedurefparametersn sfori 1tons s iendforreturn 83 107 求S A B C 自定义函数 settalkoffclearinput 输入第一个数 toainput 输入第二个数 tobinput 输入第三个数 tocs jiecheng a jiecheng b jiecheng c 值为 ssettalkonfunctionjiechengparameterskm 1fori 1tokm m iendforreturnm 84 107 求S A B C 过程 main prg主程序settalkoffclearinput 输入第一个数 toainput 输入第二个数 tobinput 输入第三个数 toca1 1b1 1c1 1Dojiechengwitha a1Dojiechengwithb b1Dojiechengwithc c1 值为 a1 b1 c1settalkon 子程序 过程procedurejiechengparametersk sfori 1toks s iendforreturn 85 107 9 5 2内存变量的作用域 1 全局内存变量定义全局变量的命令格式 命令格式1 初值为逻辑假PUBLIC 内存变量表 ALL ALLLINK 通配符 ALLEXCEPT 通配符 命令格式2 初值为逻辑假PUBLIC ARRAY 数组名 下标上界1 下标上界2 数组名 下标上界1 下标上界2 功能 定义全局内存变量或数组 公共变量一旦建立就一直有效 即使程序运行结束返回到命令窗口也不会消失 只有执行CLEARMEMORY RELEASE QUIT等命令后 才被释放 86 107 2 局部内存变量局部内存变量只能在定义它的程序及其下级程序中使用 一旦定义它的程序运行结束 它便自动被清除 也就是说 在某一级程序中定义的局部变量 不能进入其上级程序使用 但可以到其下级程序中使用 而且当在下级程序中改变了该变量的值时 在返回本级程序时被改变的值仍然保存 本级程序可以继续使用改变后的变量值 87 107 局部变量 举例 例分析下列程序的执行情况 主程序main prgr 100DOsub pRETURN 子程序sub prgp 2 3 14 rRETURN 88 107 3 隐藏内存变量如果某级程序中使用的局部变量与上级程序中的局部变量或全局变量同名 就容易造成混淆 为了避免这种情况 可使用PRIVATE命令在该程序中将全局变量或上级程序定义的一些变量隐藏起来 这时就像这些内存变量不存在一样 可以再定义同名的内存变量 命令格式 PRIVATE 内存变量表 ALL ALLLIKE 通配符 ALLEXCEPT 通配符 程序及其下级程序有效 89 107 隐藏变量 举例ex9 private prg SETTALKOFFva1 10va2 15DOp va1 va2 过程PROCEDUREpPRIVATEva1Va1 50Va2 100 va1 va2RETURN 输出 10010100 90 107 例 ex9 lt prg 写出下列程序的输出r 100p 10DOsub pRETURNPROCEDUREsubPRIVATEpp 2 3 14 rRETURN 输出 10 91 107 9 5 3调用子程序时的数据传递 调用子程序时的数据传递可以通过两种方式来解决 1 利用变量的作用域实现数据传递 合理地利用前面介绍的内存变量作用域特性 可以实现调用子程序时的数据传递 例计算矩形面积的程序 main1 prg主程序gao 8kuan 6c 0DOsub cCANCEL sub1 prg子程序c gao kuanRETURN 92 107 2 利用参数实现数据传递命令格式是 PARAMETERS 内存变量表 功能 该命令指定子程序中的局部变量名 并由这些局部变量接收上级程序中用DO WITH传递来的参数 例写出下列程序的输出SETTALKOFFx 1y 3DOsubWITHx y 5 x yRETURNPROCEDUREsubPARAMETERa b ca a b cb a b cRETURN 输出 93 93 107 练习题 1 在VisualFoxPro中 命令文件的扩展名是 A DBF B PRG C FXP D QPR答案 B2 在循环结构中 能强制退出循环的命令语句是 A RETURN B CANCEL C EXIT D QUIT答案 C 94 107 3 在语句ACCEPT 学号 TOXM中 XM的类型应该是 A逻辑内存变量B数值型字段变量C日期型变量D字符型内存变量答案 D 95 107 4 VisualFoxPro中的DOCASE ENDCASE语句属于 A 顺序结构 B 循环结构 C 分支结构 D 模块结构答案 C 96 107 练习题 写出下列程序运行的结果 MAIN PRG P1 PRGXI 1PAPAW1 W2X2 3W1 W1 2DOP1WITHX1 X2W2 W2 2 X1 STR X1 1 X2 STR X2 1 RETURNRETURN 97 107 2 写出下列程序运行的结果STORE0TON SDOWHILE T N N 1S S NIFN 11EXITENDIFENDDO S STR S 2 RETURN 98 107 阐述下列程序的功能CLEARCLEAR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论