第8章结构化程序设计.ppt

上传人:本田雅阁 文档编号:2980775 上传时间:2019-06-17 格式:PPT 页数:77 大小:558.51KB
返回 下载 相关 举报
第8章结构化程序设计.ppt_第1页
第1页 / 共77页
第8章结构化程序设计.ppt_第2页
第2页 / 共77页
第8章结构化程序设计.ppt_第3页
第3页 / 共77页
第8章结构化程序设计.ppt_第4页
第4页 / 共77页
第8章结构化程序设计.ppt_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《第8章结构化程序设计.ppt》由会员分享,可在线阅读,更多相关《第8章结构化程序设计.ppt(77页珍藏版)》请在三一文库上搜索。

1、第8章 结构化程序设计,主讲教师:张琳 制作时间:2013.05,结构化程序设计,教学安排,教学目标 掌握程序的建立、修改和运行 掌握结构化程序设计的三种基本结构 掌握过程和用户自定义函数的使用 重点分析 分支和循环结构、循环嵌套结构、过程的使用 学时安排 6学时(理论)+ 6学时(实践),结构化程序设计,本章内容,程序设计基础(补充) 程序文件及其编辑环境 程序中几种常用命令 程序的基本控制结构 过程和用户自定义函数,作业,结构化程序设计,程序设计基础(补充),程序的概念 程序是计算机完成一个预定任务而设计的一个指令序列。 程序的特点 目的性 分步性 有限性 可操作性 有序性,1.程序的概念

2、和特点,例如:求两个数的和。 Input “a=“ to a Input “b=“ to b C=a+b ?“a+b=“,c,结构化程序设计,分析问题,确定处理方案 确定操作步骤 编写源程序 上机调试 整理资料,2.程序设计的步骤,如: 求二元一次方程 AX2+BX+C=0的两个根。,结构化程序设计,评价程序质量标准:清晰第一,效率第二。 按规范书写程序(锯齿型结构)。 使用三种基本结构(顺序、选择、循环)。 单入口、单出口、无死语句、无死循环。,3.结构化程序设计的特点,4.结构化程序设计的方法,自顶向下 模块化 逐步求精,结构化程序设计,8.1 程序文件及其编辑环境,程序文件介绍 程序文件

3、的建立和运行 程序调试 VFP编程特点,本节内容,结构化程序设计,8.1.1 程序文件的建立和运行,结构化程序设计,程序文件 Visual FoxPro系统将命令文件称为程序文件或程序。 命令文件或程序文件的扩展名为.PRG 命令代码包括: 命令 VFP可理解的操作,1.程序文件介绍,结构化程序设计,命令格式:MODIFY COMMAND 菜单方式:选择“新建/程序” 功能:打开文本编辑窗口,用来建立或修改程序文件。 说明: Visual FoxPro程序文件是一个扩展名为.PRG的文本文件。,例8-1求当前日期和时间的长度,并显示。,1.打开程序编辑器。 2.输入程序代码。 3.保存程序。,

4、建立步骤,2.程序文件的建立,结构化程序设计,建立程序示例,例8-1程序源代码如下:,*- * 程序名称:E8_1.PRG * 功能:显示当前日期和时间 *- a=DATE() & 求当前日期 b=TIME() & 求当前时间 a1=LEN(DTOC(a) & 求当前日期的长度 b1=LEN(b) & 求当前时间的长度 ?“当前日期和时间:“,a,b & 显示日期和时间 ?“日期和时间的长度:“,a1,b1 * 显示日期和时间的字符串长度,结构化程序设计,命令格式:DO 菜单方式:选择“程序/运行”命令,3.程序文件的执行,注意:运行过程中,如果出现错误,可以重新进入编辑窗口进行编辑,然后再运

5、行。,上例运行结果:,结构化程序设计,8.1.2 调试程序,调试就是为了发现程序中出现的问题及问题出现的位置并对其进行修正。,1.打开“调试器”窗口,打开方式 选择“工具/调试器”命令 键入debug命令 调试方法 设置断点 单步执行 监视变量或表达式信息的变化,结构化程序设计,2.“调试器”窗口介绍,监视窗口:显示表达式及它们的当前值,并能够在表达式上设置断点。,跟踪窗口:代码运行时,用户可以利用该窗口观察到这些代码。,局部窗口:用于显示给定的程序、过程或方法程序中的所有变量、数组、对象以及对象成员。,调试输出窗口:用来显示活动程序、过程或方法程序代码的输出结果。,调用堆栈窗口:可以显示正在

6、执行的过程、程序和方法程序。,结构化程序设计,8.1.3 Visual FoxPro编程特点,1.变量不区分大小写,对于一般的变量,建议使用规则:TypeName。,建议的变量命名约定,结构化程序设计,可以直接赋值,根据赋值决定变量类型。 如nAge=25,表明nAge为整型变量,初始值为25。 如Flag=.F.表明lFlag为逻辑型变量,初始值是.F.。,2.变量不需预先声明,3.命令分行,程序中每条命令都以回车键结尾,一行只能写一条命令。若需分行书写,可以使用分号“;”表示续行。,4.添加注释,系统可以对整行注释和行中部分注释。整行注释使用“*”,行中注释使用“&”。,结构化程序设计,8

7、.2 程序中几种常用命令,基本输入命令 格式输入输出命令 程序结尾命令,本节内容,程序基本框架,输入语句,输出语句,结构化程序设计,8.2.1 基本输入命令,格式:WAIT TO WINDOW AT , TIMEOUT 功能:暂停程序的执行并显示提示信息,按任意键或单击鼠标后继续执行程序。 说明: 使用TO 子句将把按下的键以字符形式保存到指定变量中,本命令只能接一个字符。若按下的是不可打印字符或是单击鼠标,则内存变量中存储空字符。,1.WAIT命令,结构化程序设计,WINDOW AT 指定显示的信息窗口在屏幕上的位置,若省略AT 则信息窗口显示在屏幕的右上角。省略该项,则在已显示内容之后显示

8、信息。 TIMEOUT N 指定自动等待键盘或鼠标输入的秒数,该项必须放在WAIT语句的最后。 缺省wait后的提示信息,将显示“按任意键继续”。,说明:,例如,WAIT “继续查询吗?(Y/N)?“ TO JX WAIT “请选择(1/2/3):“ TO XZ WINDOW TIMEOUT 3 WAIT,结构化程序设计,格式:ACCEPT TO 功能:从键盘上输入一个字符串常量给内存变量。 说明: 是提示语,从键盘上输入的字符串不必用定界符括起来。 用来保存键盘上输入的字符串。,2.ACCEPT命令,例如,accept “请输入要查找的人名“ TO name ?name,结构化程序设计,格式

9、:INPUT TO 功能:是提示语,可通过键盘输入数值型、字符型、日期型、逻辑型、货币型等数据给。 说明: 若输入字符型数据,一定要加定界符(与ACCEPT不同)。,3.INPUT命令,例如,INPUT “请输入姓名:“ TO XM INPUT “请输入出生日期:“ TO RQ INPUT “请输入入学成绩:“ TO CJ INPUT “是团员吗?“ TO TY ? XM,RQ,TY,CJ,结构化程序设计,8.2.2 格式输入输出语句,由于此语句在实际编程中 很少用到,了解一下即可。,格式: Say Picture 功能:在制定的行列位置按格式输出表达式的值。,结构化程序设计,8.2.3 程序

10、结尾命令,格式:RUTURN 功能:能使程序执行结束,并返回到调用它的上级程序继续执行,若无上级程序则返回到命令窗口。 说明:了解另两条程序结束命令: CANCEL:它可以中止程序运行,并返回到命令窗口。 QUIT:可以结束程序运行退出Visual FoxPro系统。,结构化程序设计,8.3 程序的基本控制结构,顺序结构 条件分支结构 循环结构,本节内容,顺序结构,选择结构,循环结构,结构化程序设计,8.3.1 顺序结构,顺序结构的程序运行时按照语句序列的先后顺序,一条接一条地执行,它是程序中最基本的结构。,例8-2计算圆的周长和面积。,Clear input “请输入圆的半径:“ TO r

11、& 输入半径 c=2*3.14*r & 计算圆的周长 s=3.14*r*r & 计算圆的面积 ?“圆的周长:“,c & 输出周长 ?“圆的面积:“,s & 输出面积,结构化程序设计,例8-3查找显示张宇飞的年龄。,Clear Use student & 打开学生表 Accept “请输入查询的姓名:“ to xm Locate for sname=xm & 定位要找的人 ?xm+“的年龄是:”+str(sage,2) & 输出年龄 Use & 关闭表,结构化程序设计,8.3.2 条件分支结构,格式:IF ENDIF 功能:首先计算的值,若其值为真,对IF与ENDIF之间的语句顺序执行,然后执行

12、ENDIF后面的语句;若其值为假,直接执行ENDIF后面的语句。,1.简单的条件语句,简单条件语句逻辑图,结构化程序设计,简单条件查询示例,例8-4求一个数的绝对值。,Input “请输入一个数“ TO x ?x IF x0 x=-x ENDIF ? “的绝对值是: “,x,执行分支条件,结构化程序设计,简单条件查询示例,例8-5将徐克老师的职称改为副教授。,Use teacher Locate for tname=“徐克“ & 定位记录 If found() & 如果找到 display tname,ttitle & 显示记录 replace ttitle with “副教授“ & 替换职称

13、字段的内容 display endif use,思考:能不能用SQL语句解决该问题?,Update teacher set ttitle=“副教授” where tname=“徐克”,结构化程序设计,格式:IF ELSE ENDIF 功能:若的值为真,先执行,然后再执行ENDIF后面的语句;若其值为假,先执行,然后执行ENDIF后面的语句。,2.带ELSE的条件语句,带ELSE的条件语句逻辑图,结构化程序设计,双分支条件查询示例,例8-6上例考虑找不到记录的的情况,可以这样处理:,Use teacher Locate for tname=“徐克“ If found() display tnam

14、e,ttitle replace ttitle with “副教授“ display else wait window “找不到徐克老师“ at 10,10 endif use,结构化程序设计,格式:DO CASE CASE CASE CASE OTHERWISE ENDCASE 功能:执行多重分支操作。,3.多分支语句,结构化程序设计,多分支语句逻辑图,只能选择一个分支执行,结构化程序设计,多分支条件示例,例8-7显示当前季节。,yue=MONTH(DATE() DO CASE CASE INLIST(yue,3,4,5) jj=“春“ CASE INLIST(yue,6,7,8) jj=“

15、夏“ CASE INLIST(yue,9,10,11) jj=“秋“ CASE INLIST(yue,12,1,2) jj=“冬“ ENDCASE WAIT jj WINDOW,结构化程序设计,8.3.3 循环结构程序,循环结构 循环结构是指程序在执行的过程中,程序中的某段代码被重复执行若干次。被重复执行的代码段,通常称之为循环体。 VFP提供的循环语句 条件循环(WHILE) 步长循环(FOR) 扫描循环(SCAN),结构化程序设计,格式:DO WHILE ENDDO 功能:若的值为真,执行,一旦遇到ENDDO自动返回DO WHILE重新判断条件是否成立,以决定是否继续循环。,1.条件循环,

16、结构化程序设计,说明: 注意设置正确的循环条件。 循环体内应有改变循环条件的语句。,例8-8编写一个能够多次查找某学生记录的程序,查找字段为姓名。,结构化程序设计,yes=“Y“ USE student DO WHILE UPPER(yes)=“Y“ clear accept “请输入查找姓名:” to xm LOCATE FOR sname=xm IF FOUND() DISPLAY ELSE WAIT “查无此人“ WINDOW ENDIF wait “继续查找吗?” to yes ENDDO Use,条件循环示例源代码,循环条件,改变循环条件,结构化程序设计,格式: FOR = TO S

17、TEP ENDFOR|NEXT 功能:语句执行时,通过比较循环变量值与终值来决定是否执行。步长为正数时,若循环变量值不大于终值就执行循环体;步长为负数时,若循环变量不小于终值就执行循环体。一旦遇到ENDFOR或NEXT,循环变量值即加上步长,然后返回到FOR语句重新与终值比较。STEP 一项可以缺省,步长缺省值为1。,2.步长循环,用于固定次数的循环,结构化程序设计,步长型循环语句执行流程,循环体,循环变量增加步长,循环变量获得初值,F,T,循环变量在终值内,结构化程序设计,步长型循环示例,例8-9 编写程序计算S=1+2+1000之和。,clear s=0 for i=1 to 1000 s

18、=s+i next ?“ s=1+2+1000 =:“,s,也可以这样写: clear s=0 i=1 Do while i=1000 s=s+i i=i+1 enddo ?“ s=1+2+1000 =:“,s,结构化程序设计,步长型循环示例,例8-10输入一个字符串,分别统计出其中英文字母、空格、数字和其它字符个数。,CLEAR alpa=0 kong=0 num=0 others=0 accept “请输入一个字符串:” to cstr len1=LEN(RTRIM(cstr) & len1为字符串长度,结构化程序设计,FOR i=1 TO len1 ch=SUBSTR(cstr,i,1)

19、 IF upper(ch=“A“ and upper(ch)=“0“ and ch=“9“ & 判断数字 num=num+1 ELSE others=others+1 ENDIF ENDIF ENDIF ENDFOR ? “字符个数:“+STR(alpa)+ “空格个数:“+STR(kong) ? “数字个数:“+STR(num)+ “其他字符个数:“+STR(others),结构化程序设计,FOR i=1 TO len1 ch=SUBSTR(cstr,i,1) do case case upper(ch)=“A“ and upper(ch)=“0“ and ch=“9“ & 判断数字 num

20、=num+1 otherwise others=others+1 endcase ENDFOR ? “字符个数:“+STR(alpa)+ “空格个数:“+STR(kong) ? “数字个数:“+STR(num)+ “其他字符个数:“+STR(others),或者用多分支语句实现:,结构化程序设计,格式: SCAN FOR ENDSCAN 功能:SCAN 循环针对当前表进行循环,子句表示记录范围,缺省值为 ALL 。语句执行时在中依次寻找满足 FOR 条件的记录,并对找到的记录执行。,3.扫描循环,结构化程序设计,Skip+1,T,Eof( ),循环体,F,Scan 指针型循环语句的执行流程,结

21、构化程序设计,扫描型循环示例,例8-11显示年龄大于等于19的学生记录。,CLEAR USE student SCAN FOR sage=19 DISPLAY sname,sage ENDSCAN USE,也可以这样写: clear USE xsqk Do while not eof() if sage=19 DISPLAY sname,sage endif skip Enddo Use,结构化程序设计,实验作业批讲,用三种循环语句统计xsqk表中入学分数超过570分的人数 。,1.条件循环语句,CLear USE xsqk Rs=0 Do while not eof( ) if 入学分数=5

22、70 rs=rs+1 enddif skip Enddo ?“超过570人数共:”,rs USE,2. 固定次数循环语句,CLEAR USE xsqk jls=reccount() Rs=0 For i=1 to jls if 入学分数=570 rs=rs+1 enddif skip Endfor ?“超过570人数共:”,rs USE,go i if 入学分数=570 rs=rs+1 enddif,结构化程序设计,3.扫描型循环语句,CLear USE xsqk Rs=0 Scan for 入学分数=570 rs=rs+1 Endscan ?“超过570人数共:”,rs USE,三种循环语句

23、比较: 1. 条件循环语句是一种万能型循 环语句,适合解决所有遇到的循 环问题。 2. 固定次数的循环语句适用已知循 环次数的循环。 3. 扫描型循环专门针对数据表操作, 如果遍历数据表记录时,使用它最 方便。,结构化程序设计,在各种循环语句的循环体中可以插入LOOP和EXIT语句,前者能使执行转向循环语句头部继续循环;后者则用来立即退出循环,转去执行ENDDO、ENDFOR或ENDSCAN后面的语句。 两个循环语句的转向功能示意图:,4.辅助循环语句,DO WHILE Loop ENDDO,DO WHILE EXIT ENDDO,LOOP语句的转向,EXIT语句的转向,结构化程序设计,LOO

24、P语句转向示例,例8-9输入任意10个整数,将所有正整数显示出来。,CLEAR FOR i=1 TO 10 INPUT “输入一个整数:“ TO a IF a0 loop ELSE ?a ENDIF ENDFOR,也可以这样:(这样更精炼些) CLEAR FOR i=1 TO 10 INPUT “输入一个整数:“ TO a IF a0 ?a ENDIF ENDFOR,结构化程序设计,EXIT语句转向示例,例8-10输入任意个整数,分别统计偶数和奇数的个数,输入0结束。,Store 0 to ou,ji DO WHILE .T. INPUT “输入一个整数:“ TO a Do case case

25、 a=0 exit case mod(a,2)=0 ou=ou+1 otherwise ji=ji+1 Endcase ENDDO ?“奇数个数:”,ji ,“偶数个数:“,ou,也可以这样写: Store 0 to ou,ji DO WHILE .T. INPUT “输入一个整数:“ TO a IF a=0 exit ENDIF IF INT(a/2)=a/2 ou=ou+1 ELSE ji=ji+1 ENDIF ENDDO ?“奇数个数:”,ji ,“偶数个数:“,ou,结构化程序设计,多重循环也称循环的嵌套,所谓嵌套就是一个循环程序的循环体内又包含着另一些循环。 嵌套要求:层数不限,但内

26、层循环必须完全包含在外层循环之中,如右图:,5.多重循环,DO WHILE DO WHILE DO WHILE ENDDO ENDDO ENDDO,结构化程序设计,下面的循环嵌套是正确的。,下面的循环嵌套交叉,是错误的。,多重循环注意事项,结构化程序设计,多重循环示例,例8-11用筛选法找出2-50之间的所有素数。,结构化程序设计,CLEAR FOR i=2 TO 50 k=INT(SQRT(i) flag=.T. & 素数标志 For j=2 to k IF MOD(i,j)=0 flag=.F. & 标识i不是素数 EXIT & 退出DO WHILE 循环 ENDIF Endfor IF

27、flag=.T. ?i & 输出素数 ENDIF ENDFOR,结构化程序设计,8.4 过程和用户自定义函数,主程序和子程序 过程 自定义函数 变量的作用域,本节内容,结构化程序设计,调用子程序语句:DO 返回语句:RETURN 返回语句说明: TO MASTER 使返回时直接返回到最外层主程序,TO 强制返回到指定的程序文件。 RETURN返回到调用它的主程序。,1.子程序的调用和返回,8.4.1 主程序和子程序,对于两个具有调用关系的程序文件,常称调用程序为主程 序,被调用程序为子程序。,结构化程序设计,子程序调用示例,例8-12计算圆面积的主程序为e8_12.prg,子程序为sub.pr

28、g。,*主程序: CLEAR DO WHILE .T. WAIT “要计算圆的面积(Y/N)?” ; TO cAnswer IF UPPER(cAnswer) =“Y” DO Sub.prg ELSE EXIT ENDIF ENDDO,*子程序sub.prg CLEAR input 请输入圆的半径: to r s=3. 14*r2 ? 圆的面积为: + STR(s,10,2) RETURN,结构化程序设计,调用参数命令:DO WITH 子程序接受参数命令: PARAMETERS 说明: 调用命令的中的参数可以是表达式,但若为内存变量必须具有初值。 子程序接受参数命令中的参数表只能变量名。,2.

29、带参数子程序的调用,结构化程序设计,带参数子程序调用示例,例8-13设计一个计算圆的面积的子程序sub.prg,要求在主程序中带参数调用。,*主程序: CLEAR ymj=0 *初始化用于接收圆面积的变量 input “请输入圆的半径:“ to bj DO sub WITH bj,ymj *带参数调用子程序 ?“圆的面积为:“+STR(ymj,10,2) RETURN,*子程序sub.prg PARAMETERS r,s *参数接收语句 s=3.14*r*2 RETURN,结构化程序设计,8.4.2 过程,过程也是一个具有一定功能的程序段,是子程序的另一种形式。 与子程序的区别: 子程序是一个

30、独立的PRG文件。 过程可以和主程序放在一起,也可以和其他过程放在一个过程文件中,过程文件也是一个PRG文件。,结构化程序设计,1.过程的建立,格式:PROCEDURE PARAMETERS RETURN 功能:定义一个过程。 说明:过程作为程序的一部分时往往放在程序的最后。,调用过程的方法和调用子程序类似。,结构化程序设计,过程调用示例,例8-14编制过程,去除原始字符串中的非数字字符,返回只含数字的新串。,CLEAR cTest=“(123)45-6789 0“ cShow=“ do NumbersOnly with ; cTest,cShow ?cShow,PROCEDURE Numbe

31、rsOnly PARAMETERS cMixedVal,cNumOnly FOR nCnt=1 TO LEN(cMixedVal) cCharacter=SUBSTR(cMixedVal,nCnt,1) IF ISDIGIT(cCharacter) cNumOnly=cNumOnly+cCharacter ENDIF ENDFOR ENDPROC,和子程序不同,过程 和调用程序放在一起。,结构化程序设计,2.过程文件,过程文件:多个过程或自定义函数可以放在一起,组成过程文件,扩展名为.PRG,其基本形式如下: PROCEDURE ENDPROC PROCEDURE ENDPROC ,结构化程序

32、设计,过程文件的打开命令: SET PROCEDURE TO 过程的调用: DO IN 过程文件的关闭: SET PROCEDURE TO,例8-15主程序可用来计算圆的面积和周长,其中求圆面积和周长由过程proc1和proc2实现,过程定义在过程文件proc.prg中。,结构化程序设计,过程文件示例,主程序: SET PROCEDURE TO proc *打开过程文件 nSelect=0 DO WHILE .T. CLEAR ?“请选择:” ?“1计算圆面积” ?“2计算圆周长” ?“0退出” Input “请您选择的功能:” to nSelect,DO CASE CASE nSelect=

33、1 DO proc1 *调用计算圆面积过程 CASE nSelect=2 DO proc2 *调用计算圆周长过程 CASE nSelect=0 EXIT ENDCASE ENDDO SET PROCEDURE TO *关闭过程文件,结构化程序设计,过程文件源代码,过程文件proc.prg: * 计算圆面积过程proc1 PROCEDURE proc1 CLEAR ? “请输入圆的半径:” to bj s = 3.14*bj*2 ? “圆的面积为:” + STR(s,10,2) WAIT WINDOW RETURN,* 计算圆周长过程proc2 PROCEDURE proc2 CLEAR ?“请

34、输入圆的半径:” to bj s = 2*3. 14*bj ? “圆的周长为:” + STR(s,10,2) WAIT WINDOW RETURN,结构化程序设计,格式:FUNCTION PARAMETERS RETURN 功能:定义一个用户自定义函数。 说明: 如果使用接收参数语句PARAMETERS ,必须放在FUNCTION后第一个语句。 RETURN用来返回函数值,若缺省,返回.T.。,8.4.3 自定义函数,结构化程序设计,自定义函数示例,调用函数的主程序: CLEAR cTest= “(123)45-6789 0 “ & 原始字符串 ? “转换前的串:“,ctest ? “转换前的

35、串:“, NumbersOnly(cTest) &调用函数,例8-16编制函数,去除原始字符串中的非数字字符,返回只含数字的新串。,结构化程序设计,自定义函数源代码,FUNCTION NumbersOnly(cMixedVal) cNumOnly=“ & 初始化新字符串 FOR nCnt=1 TO LEN(cMixedVal) & 扫描整个字符串 cCharacter=SUBSTR(cMixedVal,nCnt,1) & 获取测试字符 IF ISDIGIT(cCharacter) & 判断字符是否为数字 cNumOnly=cNumOnly+cCharacter & 复制数字字符 ENDIF E

36、NDFOR RETURN cNumOnly & 返回只含数字的新串 ENDFUNC,结构化程序设计,8.4.4 变量作用域,格式:PUBLIC 功能:将指定的变量设置为公共变量,并将这些变量的初值赋以.F.。 说明:程序终止执行时公共变量不会自动清除,只能用 RELEASE 命令来清除。,变量的作用域指的是变量在什么范围内是有效或能被访问的。,1.全程变量,在任何模块中都可使用的变量称为全程变量,全程变量必须先定义后使用。,结构化程序设计,格式:LOCAL 功能:将指定的变量设置为局部变量。 说明:LOCAL 与 LOCATE 前4个字符字母相同,故不可使用缩写。,2.局部变量,局部变量只在当

37、前定义的程序中有效,一旦该程序执行完成将自动释放局部变量。,3.私有变量,在程序中未加任何说明而直接定义使用的内存变量。它的作用范围在本程序及下属的子程序内有效。,结构化程序设计,3.私有变量,格式:PRIVATE ALLLIKE|EXCEPT 功能:定义一个过程。 说明:声明私有变量并隐藏上级程序的同名变量,直到声明它的程序、过程或自定义函数执行结束后,才恢复使用先前隐藏的变量。,当私有变量和上层模块的变量同名时,为区分二者是不同的变量,需要采用暂时屏蔽上级模块变量的方法,使得子程序中的变量与上层程序中的变量同名而不同值。,结构化程序设计,变量作用域示例,例8-17变量状态举例。,CLEAR

38、 MEMORY & 清除内存变量 CLEAR PUBLIC Pn1,Pn3 & 全局变量 DISPLAY MEMORY LIKE Pn? DO Proc1 * 过程1 PROCEDURE Proc1 Pn2=“Visual FoxPro“ & 私有变量 DISPLAY MEMORY LIKE Pn?,结构化程序设计,变量作用域示例,DO Proc2 DISPLAY MEMORY LIKE Pn? ENDPROC * 过程2 PROCEDURE Proc2 PRIVATE Pn1 & 隐蔽说明 LOCAL Pn4 & 局部变量 Pn3=“is ten years“ Pn2=“snnay“ Pn4=“abc“ DISPLAY MEMORY LIKE Pn? ENDPROC,结构化程序设计,作业,实验六 课后习题,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1