程序设计基础PPT课件_第1页
程序设计基础PPT课件_第2页
程序设计基础PPT课件_第3页
程序设计基础PPT课件_第4页
程序设计基础PPT课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

本章要点 算法与程序 程序的创建与执行 程序的三种基本结构 过程与自定义函数 第6章程序设计基础 6 1程序设计概述 6 2程序的建立和执行 6 3常用命令及函数 6 4顺序结构程序设计 6 5分支结构程序设计 6 6循环结构程序设计 6 7过程与自定义函数 本章习题 23 04 2020 1 6 1程序设计概述 6 1 1程序的概念1 命令执行方式 1 单命令方式也称交互操作方式 在命令窗口输入命令按回车键 命令被立即执行 屏幕会显示该命令的执行结果 这种方式还包括 菜单方式以及工具按钮方式 2 程序方式也称批命令方式 这种方式可将多条VisualFoxPro命令按一定的序列存放于一个文件中 然后执行该文件 则文件内的命令被自动依次执行 存放VisualFoxPro命令序列的文件称为VisualFoxPro程序文件 简称程序 也称命令文件 扩展名为 PRG 按照预期的功能要求编写程序的过程称为程序设计 程序设计的方法包括 结构化程序设计和面向对象程序设计 2 程序的质量 1 正确性 2 可读性 3 高效性 4 通用性 23 04 2020 2 6 1 2程序的算法 1 算法的概念算法指解决问题的确定的 有限的步骤 确定是指每一操作步骤的工作内容是明确的 具有可操作性 有限指整个问题的解决在若干步骤后结束 具有可终止性 如求半径为3圆的面积 其步骤如下 1 令R为3 2 令S为3 14 R2 3 输出S 显然 上述求圆面积的步骤就是一个算法 但是 下面求2x2 3x 1 0两个实根的步骤 就不是一个算法 1 令A为2 B为3 C为1 2 求x1 x2 3 输出x1 x2 由于其第 2 步求x1 x2的方法不明确 没有可操作性 所以它不是一个算法 结论 1 算法可容易的转变为计算机能够执行的程序 2 计算机求解任何问题 必须在一个有限的时间段内得到处理结果 23 04 2020 3 算法的表示是对解决问题步骤的描述 是进行程序设计的依据 控制流程图 简称FC FlowChart 又称程序框图 是直观描述算法的结构和处理内容的图示 1 基本图符 2 控制结构所谓控制结构是指对处理步骤执行顺序的控制 有三种基本控制结构 分别为顺序结构 分支结构 循环结构 用于控制处理步骤按三种不同顺序执行 2 算法的表示 23 04 2020 4 分支结构与循环结构 23 04 2020 5 程序的逻辑结构及设计步骤 3 VisualFoxPro程序的逻辑结构 1 获得原始数据 2 进行数据处理 3 输出处理结果 这三部分符合解决问题的逻辑思路 将其转换为VisualFoxPro命令 计算机按此次序执行后 就会输出预期的处理结果 如上述求半径为3圆的面积的程序如下 R 3S 3 14 R 2 S4 程序设计步骤 1 分析问题 获得已知和要求 2 确定算法 明确解决问题的步骤 3 画出控制流程图 检查是否满足预期功能 4 编写程序 将控制流程图各步骤对应转换为VisualFoxPro命令 5 调试程序 运行程序找出并改正其中的错误 USE学生基本情况表LOCATEALLFOR姓名 王星 IF性别 男 DISPLAYELSEDELETEPACKENDIFUSE 23 04 2020 6 6 2程序文件的建立和执行 6 2 1程序文件的建立与编辑1 程序文件的建立与打开 1 命令方式命令格式 MODIFYCOMMAND 功能 打开程序编辑窗口 用于创建和修改VisualFoxPro程序 2 菜单方式建立 选择 文件 菜单 新建 程序 新建文件 打开 选择 文件 菜单 打开 在 打开 对话框中 选择文件类型为 程序 再选定要打开的程序文件 单击 确定 按扭 2 程序的输入 修改与存盘进入程序编辑窗口后 可将所编程序命令依序输入 每输完一条命令按回车键 再输下一条命令 如要修改 可采用同文字处理软件WORD中相同的方法进行 输入或修改结束后用CTRL END或CTRL W命令存盘并退出程序编辑窗口 用ESC键放弃存盘并退出程序编辑窗口 也可以选择 文件 菜单中的 保存 和 另存为 进行存盘 用 关闭 放弃存盘并退出程序编辑窗口 R 3S 3 14 R 2 S 23 04 2020 7 6 2程序文件的建立和执行 6 2 2程序文件的执行1 命令方式命令格式 DO功能 执行指定的程序 该命令执行时 首先查找是否有编译产生的 FXP的目标文件 如果找到 则将其装入内存并执行 否则 则查找同名的未经编译的 PRG程序文件 称源程序 将其编译生成 FXP后再执行 如果未找到同名的 PRG程序文件 则显示 文件不存在 的出错信息 2 菜单方式选择 程序 菜单 运行 在 运行 对话框中 选择要执行的程序 单击 运行 按扭 或双击要执行的程序文件名 3 工具方式当程序编辑窗口被打开且是当前窗口时 单击如图6 9所示工具栏内的 运行 按钮 可执行当前程序编辑窗口内程序 也可以按快捷键Ctrl E来执行 23 04 2020 8 6 3常用命令及消息框函数 6 3 1常用编程命令1 注释命令程序注释 NOTE 命令注释 功能 在程序中插入解释型字符 例6 1修改学生基本情况表中孙雯文入学成绩的程序 P1 PRG源程序清单如下 NOTE加分程序OPENDATABASED 学籍项目 学生库 打开学生数据库USE学生基本情况表 查找并修改LOCATEFOR姓名 孙雯文 REPLACE入学成绩WITH入学成绩 20 孙雯文的入学成绩加20分DISPLAYUSE 23 04 2020 9 6 3常用命令及消息框函数 2 键盘输入命令WAIT TO NOWAIT TIMEOUT 功能 将键盘输入的一个字符存入指定的内存变量中 命令格式 ACCEPT TO功能 将键盘输入的一串字符存入指定的内存变量中 命令格式 INPUT TO功能 将键盘输入的表达式的值存入指定的内存变量中 CLEAR 欢迎使用本系统 日期 DATE WAIT 停 CLEARWAIT 请输入 TOM M ABC CLEARINPUT 请输入半径 ToRS 3 14 R 2 S CLEARACCEPT 请输入口令 ToPasswordIFPassword 123 DOP1 PRGELSE 口令错误 QUITENDIF 23 04 2020 10 2 格式输入输出命令 1 格式输出命令基本格式 SAY功能 在指定位置输出的值 例6 4用 命令编程求10 15的值 SETTALKOFFCLEARA 10B 15 5 10SAY A B 5 COL SAYA B ROW 1 10SAY 再见 WAIT TIMEOUT3SETTALKONCANCEL 例6 5用 命令显示 学生基本情况表 的记录 CLEARUSE学生基本情况表SKIP 5 16SAY 姓名 姓名 5 36SAY 性别 性别 5 16SAY 出生日期 DTOC 出生日期 5 36SAY 入学成绩 STR 入学成绩 5 0 USE 23 04 2020 11 2 格式输入输出命令 2 格式输入命令基本格式 SAY GET DEFAULT 功能 在指定位置输出和的值 例6 7在 学生成绩表1 中 根据姓名查找记录并修改其各科考试成绩 CLEARUSE学生成绩表1XM 3 16SAY 请输入姓名 GETXMREADLOCATEALLFOR姓名 XM 5 20SAY 姓名 姓名 学号 学号 7 10SAY 高等数学 GET高等数学 7 25SAY 大学英语 GET大学英语 7 40SAY 大学语文 GET大学语文READUSE 例6 6键盘输入X和Y变量的值并求两者之和 CLEARX 0 2 3SAY X GETX 3 3SAY Y GETYDEFAULT0READ X Y X 0 2 3SAY X GETX GET子句的变量必须用READ命令来激活 23 04 2020 12 4 其它常用命令 1 CLEAR功能 清除VisualFoxPro主窗口工作区所显示的信息 2 CANCEL功能 释放所有局域变量 终止程序的执行 返回VisualFoxPro系统 3 QUIT功能 关闭所有文件 释放所有变量 退出VisualFoxPro 返回Windows操作系统 4 CLEARALL功能 关闭所有文件 释放所有变量 清除所有用户自定义的菜单和窗口 并将当前工作区置为1区 相当于刚进入VisualFoxPro系统 5 SETTALKON OFF功能 打开或关闭人机对话 例6 8对 学生成绩表1 中 大学英语 字段求和 CLEARSETTALKOFFUSE学生成绩表1SUM大学英语TOEN ENSETTALKONSUM大学英语TOEN EN 23 04 2020 13 6 3 2消息框函数 消息框函数是VisualFoxPro已预先定义好的一个对话框 用户编程时只需调用该函数就可显示这个对话框 并根据用户的不同操作得到不同的返回值 函数格式 MessageBox 功能 在屏幕上产生一个消息对话框 指定消息框中显示的文字 即消息内容 如果要使消息内容在中间某处换行 可用回车符chr 13 或换行符chr 10 指定消息框标题的文字内容 用来指定消息框四个方面的内容 按钮的个数 图标的样式 默认按钮以及模态性 它们的取值分别见表6 1 表6 2 表6 3和表6 4 MessageBox 口令错误 请重新输入 16 错误 Int1 MessageBox 数据未存 CHR 13 保存否 3 48 0 0 注意 23 04 2020 14 消息框函数实例 例6 9删除 学生成绩表1 中姓名为 王星 的记录 删除时用图6 13所示的消息对话框3进行确认 CLEARSETTALKOFFUSE学生成绩表1LOCATEFOR姓名 王星 QR MessageBox 真的要删除吗 36 删除确认 IFQR 1DELETEPACKENDIFLISTUSE 23 04 2020 15 6 4顺序结构程序设计 例6 10将 学生基本情况表 中的 入学成绩 最高的前三名显示出来 P10 PRG源程序清单如下 CLEARSETTALKOFFUSE学生基本情况表INDEXON入学成绩TAGCGDESCLISTNEXT3USESETTALKON 顺序结构程序按照命令的书写顺序从头到尾依次执行 它是结构化程序设计中最基本 最简单的结构 例6 11输入任意一个表文件名 将它打开并显示其全部记录 P11 PRG源程序清单如下 SETTALKOFFCLEARACCEPT 请输表文件名 TOBMUSE BMLISTSETTALKONUSE 23 04 2020 16 6 5分支结构程序设计 分支结构程序能根据条件成立与否决定程序的执行流向 分支结构有单分支 双分支 多分支三种 都需要相应的命令予以实现 6 5 1单分支命令格式 IFENDIF INPUT X TOXIFX 0Y X 2 YENDIF aaaa 如 求Y X2X 0 23 04 2020 17 单分支结构程序实例 例6 12将键盘随机输入的两个整数按由小到大的次序显示 P12 PRG源程序清单如下 CLEARINPUT 请输入第1个整数 GETAINPUT 请输入第2个整数 GETBIFA BT AA BB TENDIF 这两个整数排序结果为 A B 例6 13在 学生基本情况表 中查找 孙雯文 若其入学成绩小于700分 给其加20分 P13 PRG源程序清单如下 CLEARSETTALKOFFUSE学生基本情况表LOCATEFOR姓名 孙雯文 IF入学成绩 700REPLACE入学成绩WITH入学成绩 20ENDIFDISPLAYUSE 23 04 2020 18 6 5分支结构程序设计 6 5 2双分支命令格式 IFELSEENDIF INPU X TOXIFX 0Y X 2ELSEY X 3ENDIF Y 如 求Y X2X 0Y X3X 0 23 04 2020 19 双分支结构程序实例 例6 15在 学生基本情况表 中查找 孙雯文 如果其入学成绩小于700分 给其加20分 否则加30分 USE学生基本情况表LOCATEFOR姓名 孙雯文 IF入学成绩 700REPLACE入学成绩WITH入学成绩 20ELSEREPLACE入学成绩WITH入学成绩 30ENDIFUSE SETTALKOFFCLEARUSEZGXM 7 10SAY 输入姓名 GETXMREADLOCAFOR姓名 XMIFFOUND DISPELSE 查无此人 ENDIFUSESETTALKON SETTALKOFFCLEAROPENDATABASE学生库USE学生基本情况表XH 5 10SAY 请输入学生的学号 GETXHREADLOCATEFOR学号 XHIF NOT EOF 6 10SAY 姓名 GET姓名 6 24SAY 入学成绩 GET入学成绩READELSE 6 10SAY 没找到该学生的记录 ENDIFUSECLOSEDATABASESETTALKONCANCEL 23 04 2020 20 6 5分支结构程序设计 6 5 3多分支DOCASECASECASE CASE OTHERWISE ENDCASE INPU X TOXDOCASECASEX 0Y X 2CASEX 0Y 0CASEX 0Y X 3ENDCASE Y 如 求Y X2X 0Y 0X 0Y X3X 0 23 04 2020 21 多分支结构程序实例 CLEARINPUT 请输入数字 TONDOCASECASEN 1 CASEN 2 CASEN 3 CASEN 4 OTHERWISE ENDCASE 结束 CJ 0 10 10SAY 请输入成绩 GETCJREADDOCASECASECJ 60DJ 不及格 CASECJ 70DJ 及格 CASECJ 85DJ 良好 OTHERWISEDJ 优秀 ENDCASE 11 10SAY 等级为 DJ 23 04 2020 22 6 5 4分支的嵌套 所谓分支的嵌套 是指在一个分支结构内又完整包含了另一个完整的分支结构 前面所讲的三种分支 可以自我嵌套 也可以相互嵌套 INPU X TOXIFX 0Y X 2ELSEIFX 0Y 0ELSEY X 3ENDIFENDIF Y 如 求Y X2X 0Y 0X 0Y X3X 0 23 04 2020 23 分支的嵌套实例 P19 1 PRG嵌套实现的源程序清单 SETTALKOFFCLEARBL 0USE学生成绩表1INPUT 输入一等奖学金的金额 TOZEINPUT 输入姓名 TOXMLOCATEALLFOR姓名 XMIF总分 270BL 1ELSEIF总分 240BL 0 8ELSEIF总分 210BL 0 7ENDIFENDIFENDIF 奖学金 ZE BLSETTALKON P19 2 PRG多分支实现的源程序清单 SETTALKOFFCLEARBL 0USE学生成绩表1INPUT 输入一等奖学金的金额 TOZEINPUT 输入姓名 TOXMLOCATEALLFOR姓名 XMDOCASECASE总分 270BL 1CASE总分 240BL 0 8CASE总分 210BL 0 7ENDCASE 奖学金 ZE BLSETTALKON 例6 19对 学生成绩表1 根据某学生的总分颁发奖学金 一等奖学金金额通过键盘输入 总分 270分 奖学金为一等奖学金的100 240 总分 270 奖学金为一等奖学金的80 210 总分 240 奖学金为一等奖学金的70 请用分支嵌套和多分支分别编程 23 04 2020 24 所谓循环指反复执行程序中的某一段命令序列 被反复执行的命令序列称为循环体 实现循环的命令称为循环命令 包括循环起始命令和循环结束命令 VisualFoxPro为用户提供了3种不同的循环命令 用于实现当型循环 计数循环 扫描循环 6 6 1当型循环1 命令格式命令格式 DOWHILEENDDO2 命令的执行过程 DOWHILE 循环起始语句 ENDDO 循环结束语句 命令序列 循环体 6 6循环结构程序设计 23 04 2020 25 循环示例1 I 1DOWHILEI 3 I I 1ENDDO 结束 运行结果 结束 循环示例2 I 1DOWHILEI 3 II I 1ENDDO 结束 运行结果 123结束 DOWHILE循环的执行 循环示例3 I 3DOWHILEI 1 I I 1ENDDO运行结果 循环示例4 I 3DOWHILEI 1 II I 1ENDDO运行结果 321 23 04 2020 26 I 1DOWHILEI 3 II I 1ENDDO 结束 运行结果 123结束 思考题 S 1 2 3 100S 1 3 5 99S 2 4 6 100S 1 1 2 1 3 1 100S 1 2 3 N DOWHILE循环运算实例 循环示例6 求 S 100 S 1I 1DOWHILEI 100S S II I 1ENDDO S 循环示例7 求 S 100 S 1I 100DOWHILEI 1S S II I 1ENDDO S 23 04 2020 27 DOWHILE循环表操作实例 CLEARUSEZGDOWHILE NOT EOF DISPSKIPENDDOUSE 例6 21逐条修改 学生基本情况表 中的每个记录的姓名和入学成绩 P21 PRG源程序清单如下 USE学生基本情况表DOWHILE NOT EOF CLEAR 5 10SAY 姓名 GET姓名 5 24SAY 入学成绩 GET入学成绩READSKIPENDDOUSE 例6 22对 学生基本情况表 按学号进行查找 如果找到显示该记录 否则显示 查无此人 并且能够多次查找 P22 PRG源程序清单如下SETTALKOFFUSE学生基本情况表DOWHILE T CLEARACCEPT 请输入学号 GETXHLOCATEALLFOR学号 XHIFFOUND DISPLAYELSE 查无此人 ENDIFACCEPT 继续查找吗 Y N TOJXIFJX N EXITENDIFENDDOUSE 23 04 2020 28 DOWHILE死循环实例 死循环1 I 1DOWHILEI 3 I I 1ENDDO 死循环2 I 3DOWHILEI 1 I I 1ENDDO 死循环3 I 1DOWHILEI 3 ENDDO 按ECS键退出死循环 23 04 2020 29 6 6 2计数型循环 1 命令格式FORX ATOB STEPC ENDFOR NEXT2 执行过程第一步 X A 第二步 判断X超过B否 若超过 则执行ENDFOR后命令 第三步 若没有超过 则执行FOR下的命令序列 第四步 遇到ENDFOR或NEXT时 X X C 第五步 返回第二步 X 循环变量A 初值B 终值C 步长A B C 数值表达式缺省STEPC时 步长为1 FORI 1TO3STEP1 ENDFOR end 23 04 2020 30 超过 的含义 循环变量的值沿变化方向接近并最终越过终值时 如 FORX 1TO3STEP1如 FORX 1TO3STEP3如 FORX 3TO1STEP 1如 FORX 4TO3STEP 2 FORX ATOBSTEPCENDFOR NEXT 避免死循环 A B C的配合 A0A BC 0 FOR循环终止条件 23 04 2020 31 FOR循环示例1 FORI 1TO3STEP1 ENDFOR运行结果 FOR循环示例2 S 0FORW 1TO100STEP1S S WENDFOR S FOR循环执行实例 FOR循环示例3 FORI 3TO1STEP 1 ENDFOR运行结果 FOR死循环示例4 FORI 1TO3STEP 1 ENDFOR FOR死循环示例5 FORI 3TO1STEP1 ENDFOR 23 04 2020 32 FOR循环实例 例6 23编程计算S 2 4 6 10 P23 PRG源程序清单如下 S 0FORW 2TO10STEP2S S WENDFOR S 例6 24编程计算P N P24 PRG源程序清单如下 SETTALKOFFCLEARP 1INPUT N TONFORI 1TONP S INEXT 其阶乘为 NSETTALKON 23 04 2020 33 6 6 3扫描循环 1 命令格式SCAN FOR WHILE ENDSCAN2 执行过程该循环须在打开表的情况下执行 该命令执行时 在当前表文件内内顺序查找满足条件的记录 并对找到的记录执行 遇ENDSCAN再查找下一条满足条件的记录 直至没有满足条件的记录 则结束循环 执行ENDSCAN后命令 该命令缺FOR或WHILE子句时 默认为 NOT EOF 缺省为ALL 23 04 2020 34 USEXSSCANALLFOR性别 男 DISPENDSCANUSE USEXSSCANALLDISPENDSCANUSE USEXSSCANALLFOR年龄 20DISPENDSCANUSE SCAN循环的执行过程 23 04 2020 35 例6 25在 学生成绩表1 中 显示大学英语成绩在80分以下的学生姓名 并求这些同学大学英语的总分 P25 PRG源程序清单如下 SETTALKOFFCLEARUSE学生成绩表1SCANALLFOR大学英语 80 姓名S S 大学英语ENDSCAN SUSESETTALKON 例6 26显示出 学生成绩表1 中有一门课成绩不及格的所有记录 P26 PRG源程序清单如下 SETTALKOFFCLEARUSE学生成绩表1SCANFOR高等数学 60or大学英语 60or大学语文 60DISPLAYENDSCANUSESETTALKON SCAN循环实例 23 04 2020 36 6 6 4循环辅助命令 例6 27显示 学生基本情况表 中 性别 为 女 的记录的姓名 入学成绩和性别 P26 PRG源程序清单如下 SETTALKOFFCLEARUSE学生基本情况表DOWHILE NOT EOF IF性别 男 SKIPLOOPENDIF 姓名 入学成绩 性别SKIPENDDOUSE 例6 28按条件求30以内奇数和 当和大于20时结束求和 显示统计次数以及奇数和 P28 PRG源程序清单如下 SETTALKOFFJSH 0FORI 1TO30STEP2JSH JSH IIFJSH 50EXITENDIFENDFOR 统计次数 I 奇数和 JSH 23 04 2020 37 6 6 5循环的嵌套 2层循环嵌套 DOWHILEDOWHILEENDDOENDDO I 1DOWHILEI 2J 1DOWHILEJ 3 J J 1ENDDOI I 1ENDDO 循环嵌套的执行 外层一次 内层一遍 3层循环嵌套 DOWHILEDOWHILEDOWHILEENDDOENDDOENDDO 23 04 2020 38 循环与分支的嵌套 例6 31键盘输入十个正整数 去掉最大数和最小数 然后求平均值 P31 PRG源程序清单如下 SETTALKOFFCLEARINPUT 输入第1个数 TOXSTOREXTOMAX MIN SFORN 1TO9INPUT 输入第 STR N 2 个数 TOXS S XIFX MAXMAX XENDIFIFX MINMIN XENDIFENDFOR 平均为 S MAX MIN 8SETTALKON 23 04 2020 39 6 6 1主程序与子程序1 主程序与子程序的概念调用其他程序而本身不被调用的程序称为主程序 被其他程序调用的程序称为子程序 子程序包括过程和用户自定义函数两种 2 调用命令命令格式 DO3 返回命令 1 RETURN TOMASTER 功能 返回到上级调用程序中 从调用该过程命令的下一条命令处接着执行 该命令一般位于过程中的最后位置 如果缺省 系统认为每个程序的最后位置都隐含存在一条该命令 2 RETURN 表达式 功能 返回到上级调用程序中 同时将表达式的值返回给调用者 4 过程的嵌套 6 7过程与自定义函数 23 04 2020 40 1 独立的过程 6 6 2过程的放置位置 23 04 2020 41 2 包含在主程序中的过程 6 6 2过程的放置位置 SETTALKOFFCLEARA Y DOWHILE T INPUT 请输入圆的半径 TORINPUT 请输入长方形的长 TOLINPUT 请输入长方形的高 TOHDOproc1DOproc2ACCEPT 还继续计算吗 Y N TOAIFUPPER A Y CLEARLOOPELSEEXITENDIFENDDOSETTALKONRETURNPROCEDUREproc1S1 3 14 R 2 圆面积为 S1RETURNPROCEDUREproc2S2 L H 长方形面积为 S2RETURN 23 04 2020 42 3 过程文件中的过程 6 6 2过程的放置位置 过程文件的使用 过程文件的打开对于过程文件中的过程 应先打开过程文件 然后再调用其内的过程 命令格式 SETPROCEDURETO 关闭过程文件过程文件不再使用时 要将其关闭 其关闭方法有以下几种 打开一个过程文件时 会关闭另一个已打开的过程文件 用CLOSEPROCEDURE关闭 用SETPROCEDURETO关闭 23 04 2020 43 1 自定义函数的建立 6 6 3自定义函数 1 自定义函数的建立 一般格式 FUNCTION RETURN 2 自定义函数的调用 其调用格式为 自定义函数名 注 自定义函数可放于主程序后 也可放于过程文件中 23 04 2020 44 6 6 4内存变量的作用域 内存变量的作用域是指在存在调用关系的多个程序中 内存变量只在某些程序中有效 所谓有效就是在程序中可以对内存变量进行各种操作 包括显示其值 使用其值和改变其值等 通过以上例子可以得出 X的作用域 AA PRG A1 PRG A2 PRG Y的作用域 A1 PRG A2 PRG Z的作用域 A2 PRG 要改变内存变量的作用域 须加以声明 未加声明的内存变量具有以下特点 内存变量只在定义它的程序及其所有的下层程序中有效 定义内存变量就是初次给内存变量赋值 定义内存变量的程序执行完后 所定义的内存变量将被系统自动释放 23 04 2020 45 全局变量和局域变量 1 全局变量在所有程序中都有效的变量称为全局变量 其可以用下述命令来声明 命令格式 PUBLIC功能 将中的变量声明为全局变量 且这些变量的初值均赋以 F 几点说明 1 全局变量的声明命令必须放在定义该变量的命令之前 2 全局变量的类型由定义决定 但在定义之前其的初值为 F 3 定义全局变量的程序执行结束 全局变量仍然存在 须用命令进行清除 4 在VisualFoxPro命令窗口中定义的内存变量为全局变量 2 局域变量只在定义它的程序及其所有下层程序中有效的变量称为局域变量 未加声明的变量均为局域变量 但局域变量也可以用下述命令来声明 命令格式 PRIVATE ALL LIKE EXCEPT 功能 将指定的内存变量声明为局域变量 PRIVATE常用来隐藏上层程序中的同名变量 直到声明它的程序执行结束后 才恢复使用先前隐藏的同名变量 23 04 2020 46 全局变量和局域变量实例 23 04 2020 47 6 6 5参数传递 说明 1 主程序中的DO命令为过程提供所需参数 中的参数可以是常量 变量 函数 表达式 过程中的PARAMETERS命令用于接收上层程序传递过来的参数 这两条命令必须搭配使用 2 参数表中各参数间要用 号隔开 过程中的参数应与主程序中的参数一一对应 3 系统在调用过程时 将DO命令中的参数值分别传递给PARAMETER命令中的对应位置参数 过程执行完后再将变化后的参数值传回主程序中 4 自定义函数也可采用此方法进行参数传递 23 04 2020 48 本章小结 本章全面 详细的介绍了结构化程序设计 主要内容包括 算法 程序的三种基本结构 过程和自定义函数 变量的作用域等 利用程序解决实际问题是VisualFoxPro的主要应用方式 对于用户来讲 它不但减轻了工作量 屏蔽了处理过程的复杂度 而且问题的解决过程自动和高效 编写程序首先要分析所要解决的实际问题 确定其算法 画出对应的流程图 然后再据此编写程序 最后上机调试程序使之满足预期的功能要求 23 04 2020 49 本章习题 一 简答题1 什么是结构化程序设计和面向对象程序设计 两者关系如何 2 单命令方式共有哪些具体方法 3 什么是程序的通用性 如何提高程序的通用性 4 什么是算法 试举例说明 5 VisualFoxPro环境下执行程序共有哪些方法 6 LOOP和EXIT命令在循环中各起什么作用 6 什么是死循环 如何避免死循环 8 过程有哪几种 如何建立 9 局域变量和全局变量的作用域各有什么不同 如何声明 10 过程调用时参数如何传递 23 04 2020 50 本章习题 二 填空题1 程序的质量标准有 2 程序的三种基本控制结构为 3 已知程序AA PRG 则建立和修改该程的命令为 4 执行当前程序编辑窗口内程序的快捷键为 5

温馨提示

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

评论

0/150

提交评论