haihongyuan.com
海量文库 文档专家
全站搜索:
您现在的位置:首页 > 小学教育 > 学科竞赛学科竞赛

第8讲(3)程序设计

发布时间:2014-01-30 10:47:58  

第9章 结构化程序设计

9.1 程序设计基础
9.1.1 程序设计的概念 VFP提供一种程序执行方式,这种方式就是预先把

需要执行的多条命令按一定的结构组成一个有机序列以
文件的形式存储在磁盘上,这个文件就称为程序文件, 这个序列的设计、编码和调试的过程就是程序设计。

9.1.2 程序的控制结构 任何复杂的程序都由3种基本控制结构组成。 它们是顺序结构、选择结构和循环结构。

图9.1程序的控制结构

9.1.3 结构化程序设计方法 结构化程序设计采用自顶向下、逐步求精和 模块化的分析方法。 自顶向下是指对设计的系统要有一个全面 的理解,从问题的全局入手,把一个复杂问题分 解成若干个相互独立的子问题 。逐步求精是指 程序设计的过程是一个渐进的过程,先把一个子 问题用一个程序模块来描述,再把每个模块的功 能逐步分解细化为一系列的具体步骤 。模块化 是结构化程序的重要原则。所谓模块化就是把大 程序按照功能分为较小的程序。

9.1.4 程序文件的建立与执行
1.命令方式建立或修改程序文件 命令格式: MODIFY 名> |? ] COMMAND [<程序文件

MODIFY.FILE.[〈文件名〉|?]
功能:启动VFP提供的文本编辑器来建立或 编辑程序文件。 2.菜单方式建立编辑程序文件

3.程序文件的执行 命令格式: DO <程序文件名>



能 : 将程序文件从磁盘调入内存 , 编译

成.FXP目标文件后并执行。

9.2 顺序结构程序
顺序结构是最简单、最基本的一种程序结 构。在顺序结构程序中,各命令按照各自出现的 先后顺序,依次执行。

9.2.1 程序文件中的辅助命令
一.输入类语句

㈠. 赋值语句
格 式1: STORE <表达式> TO <内存变量名 表> 格 式2: <内存变量> = <表达式>

功 能:给内存变量赋值。

㈡. 交互式语句/键盘输入命令 1. 字符串数据输入命令

格式: ACCEPT [<提示信息>] TO <内存变量>
功能:在屏幕上显示提示信息,等待用户从键盘 输入,再把输入内容赋值给指定的内存变量。 注:ACCEPT命令只能接受字符型常量,输入时

不需加定界符。

例9-1:要求用户从键盘上输入用户名,然后 把输入的用户名显示出来。 ACCEPT ?NAME “请输入用户名:? TO NAME

2. 数据输入命令 格式:INPUT [<提示信息>] TO <内存变量>

功能:在屏幕上显示提示信息,等待用户从键盘

输入,再把输入内容赋值给指定的内存变量。
注:INPUT命令能接受任何类型的表达式: ① 输入C 型数据时,要使用 ‘ ’ 或 ? ? 作为定界符; ② 输入L 型数据时,.T. 和 .F. ,两边的 . 不能省;

③ 输入D 型数据时,要用{ } 或CTOD( ) 将字符串转成日期型变 量。

例9-2:求

任意两数之和。 INPUT INPUT ?X+Y “请输入一个数x:? “请输入另一个数y:? TO TO X Y

例9-3: 给出下列A、B的结果 J=2800

INPUT “输入 J+200 :” TO
ACCEPT “输入 J+200 :” TO

A
B

?“A=”,A
? “B=”,B

注:执行时,先后两次输入同样的内容:J+200

3. 只能输入一个字符的命令 格式:WAIT [<提示信息>] TO <内存变量>

[TIMEOUT <数值表达式>]
功能:当程序执行某一处需要暂停时使用此命令。 注:WAIT命令响应速度快,它只接受一个字符,不 需用户键入回车键。

例9-4:

**** 数据表操作命令菜单 ****
1. 打开工作数据表

2. 增加数据表记录
3. 删除数据表记录 4. 修改数据表记录 5. 打印数据表记录 6. 关闭工作数据表 WAIT “请选择相应代码:? TO CHOICE ? ?您选择的是第? + CHOICE + “个选项?

4. 格式输入语句
格式: @ <行,列> SAY <提示信息> GET <变量>

[RANGE <数值表达式1>, <数值表达式2>]
READ 功能:在屏幕指定的坐标位臵上显示提示或输入数据。 注:① <变量> :该变量应在其前面定义过 ( 赋初值 ) 。 ② READ 一般与GET 联合起来用: ?当有READ时, GET <变量> 的内容可以从键盘上修改; ?没有READ时,GET 后的变量只能显示内容,不能修改; ?一个READ可以修改它前面的多个GET项的内容,但它可 以由CLEARGETS命令隔断。

例9-5: @ 8, 18 SAY “**** 数据表操作命令菜单 ****” @ 9, 18 SAY “ @ 10, 18 SAY “ @ 11, 18 SAY “ @ 12, 18 SAY “ @ 13, 18 SAY “ @ 14, 18 SAY “ 1.打开工作数据表 2. 增加数据表记录 3. 删除数据表记录 4. 修改数据表记录 5. 打印数据表记录 6. 关闭工作数据表 ? ? ? ? ? ?

@ 16, 28 SAY “ 请选择相应代码:? GET CHOICE READ @ 18, 28 SAY “您选择的是:” + LTRIM(STR(CHOICE))

二.输出类语句
1. 非格式输出语句 格式1: ? <内存变量名表>

格式2: ?? <内存变量名表> 功 能:显示内存变量、常量或表达式的值。

注:语句1 是在光标所在行的下一行开始显示,
语句2 则是在当前光标位臵开始显示。

2. 格式输出语句 格式: @ <行,列> SAY <表达式> [FUNCTION <功能符>][PICTURE <格式符>]

功能:按指定的坐标位臵在屏幕上输出表达式的值。

注: 若选用PICTURE、 FUNCTION子句,则按一定的格 式输出 ,分别见教材P131的表6.1、6.2。

3. 文本输出语句 格式: TEXT

<输出显示内容>

ENDTEXT
功能:在屏幕上原样显示TEXT和ENDTEXT之间的内容。

注: TEXT、ENDTEXT是一条子句,不能省略其中任一条
子句。

例6-6

TEXT

**** 数据表操作命令菜单 ****
1. 打开工作数据表 2. 增加数据表记录 3. 删除数据表记录

4. 修改数据表记录
5. 打印数据表记录 6. 关闭工作数据表 ENDTEXT WAIT “请选择相应代码

:? TO CHOICE

? ?您选择的是第? + CHOICE + “个选项?

三. 设臵会话状态语句 语句格式1: SET TALK ON

语句格式2: SET TALK OFF

功能

语句1:设臵会话状态开通。 语句2:设臵会话状态关闭。

四. 清屏与注释语句 1. 清屏语句

语句格式: CLEAR 功 能 :清除屏幕上所有显示内容,光标回到屏幕左
上角。

2. 注释语句 语句格式1: NOTE <注释内容> 语句格式2: 语句格式3: 功 * && <注释内容> <注释内容>

能 : 在程序中加入说明性语句。

注:语句1、2、3 在程序中,系统不执行。

五. RETURN命令

格式: RETURN [<表达式>/TO MASTER/TO <程序名>]

功能 : 结束一个程序的执行。

注:一般RETURN出现于程序末尾。

六. 终止程序执行语句 语句格式1: CANCEL

语句格式2: QUIT 功能:终止程序执行,关闭所有打开的命令文件。
注:

语句1:在终止程序执行后,返回到VFP命令状态;
语句2:返回到操作系统状态。

顺序结构程序设计
顺序结构程序:按语句的 先后顺序组织的程序,即把处 理过程的各个步骤按执行的先
B

A

后顺序列出。
其流程图如右图所示。

C

图中箭头表示程序执行的
方向,方框代表不同的可执行 语句。
N

例9-7 变量的初始化和变量的赋值。 SET TALK OFF

STORE 0 TO X,Y,Z
A=3 B=A+1 C=A*B ? X, Y, Z

? A, B, C
SET TALK ON

例9-8 执行以下命令序列,问答问题: USE zgb

SUM
COPY USE

基本工资
FOR GZK2

FOR

基本工资>1000
TO GZK2

TO

SGZ

基本工资>1000

最后显示的值是: A. 所有职工的平均工资;

num=reccount( ) ave=sgz/num ? ave

B. 所有工资在1000元以 上的职工的平均工资;
C. 所有工资在1000元以 上的职工人数; D. 所有职工人数 。

9.3

选择结构程序设计
在计算机应用的许多场合,要求程序根据不同的

条件采用不同的处理方法。如果条件满足,则执行某 一些语句;如果条件不满足,则执行另一些语句。这

些需要根据判断条件来控制程序走向的程序设计称为
选择结构程序设计,又称分支结构程序设计。 Visual FoxPro提供双分支选择语句、多分支选 择语句两种选择结构。

9.3.1

双分支选择语句(选择判断语句)

.T.

条件

语句格式:

语句序列1

.F.

IF

<条件>
<语句序列1>
ENDIF后的语句

[ELSE
<语句序列2>] ENDIF .Y.
语句序列1

条件

.N.
语句序列2

ENDIF后的语句

执行过程: 如果<条件>成立,就执行语句序列1; 如果<条件>不成立,执行语句序列2。 注: (1) IF和ENDIF必须配对使用,而ELSE可选。 (2) IF、ELSE、ENDIF必须各占一行。 (3) <条件>可以为关系表达式、逻辑表达式。 (4)在<语句序列1>和<语句序列2>中可以嵌套IF语句。



请改用分支结构语句编程计算电费:

不超过50度,

每度0.52元; 超过50度时, 超出部分每度0.75元。 SET TALK OFF TO DL

INPUT

“请输入所用电量:"

DF=IIF(DL<=50,0.52*DL,0.52*50+0.75*(DL-50)) ? “应缴电费为:” + LTRIM(STR(DF,10,2)) + "元"

SET

TALK

ON

RETURN

例 火车托运行李: 每人不超过40公斤,每公斤0.22元;超过 40公斤时, 超出部分每公斤0.40元。填空完成以下程序。
SET TALK OFF INPUT "请输入行李重量:" TO W IF W < 40 1 YF=0.22*W ELSE YF= 0.22*40 + ENDIF ? "应交托运费为:"+LTRIM(STR(YF,10,2))+"元" SET TALK ON (W-40) * 0.4 1

RETURN

例 编程:在ZGB.DBF中查找某人。
SET TALK OFF Set defa to f:\jfvfp\prg

USE

zgb
TO N FOR XM=N

ACCEPT “请输入要查找人的姓名: ” LOCATE ALL

IF

FOUND( )
DISP

ELSE ? USE SET TALK ON [查无此人]

ENDIF

RETURN

9.3.2 多分支选择语句(选择语句|情况语句)
语句格式:
DO CASE

说明: ①DO CASE和第一个CASE 子句之间不能插入任何 语句。 ②DO CASE和ENDCASE必 须配对使用,且DO CASE, CASE,OTHERWISE和 ENDCASE各子句必须各占 一行。 ③在<语句序列>中可 嵌套情况语句。

CASE <条件表达式1>
<语句序列1> CASE <条件表达式2>

<语句序列2>
┇ CASE <条件表达式n> <语句序列n> [ OTHERWISE <语句序列n+1> ] ENDCASE

功能:系统依次测试语句中各个条件表达式的值 : 若为真, 即执行相应<条件表达式>后的<语句序列> , 然后脱离情 况语句,执行ENDCASE的下一语句。若所有的条件表达式的值 均为假,则执行 OTHERWISE 后面的语句序列 , 然后脱离情况 语句,执行ENDCASE下一语句 。
开始判断 条件1 条件2 条件n 其它

语句序列1

序列2

……

序列n

序列n+1

ENDCASE后面的语句

例 已知cjb.dbf中包含xingming,avcj等字段。试用avcj来判断 该生成绩属于优(≥90)、良(≥80)、及格(≥60)或不及格(<60)。
USE cjb ACCEPT ′请输入姓名:′ TO xm LOCATE FOR ALLTRIM(xingming)=ALLTRIM(xm) n=avcj DO CASE CASE n>=90 dj=″优″ CASE n>=80 dj=″良″ CASE n>=60 dj=″及格″ OTHERWISE dj=″不及格″ ENDCASE @5,10 SAY xingming+[同学的成绩等级为:]+ dj

例 阅读下列程序段,写出运行结果:
A=3000 DO CASE CASE A<1000 B=A/2 CASE A>=1000 B=A CASE A>=2000 B=2*A CASE A>=3000 B=3*A ENDCASE ? B



利用CASE语句实现简单的菜单功能 Set talk off Set defa to f:\yyfox clear cho=0
@ 8, 18 SAY “**** 数据表操作命令菜单 ****” @ 9, 18 SAY “ 1. 打开工作数据表 @ 10, 18 SAY “ 2. 增加数据表记录 @ 11, 18 SAY “ 3. 删除数据表记录 @ 12, 18 SAY “ 4. 修改数据表记录 @ 14, 18 SAY “ 5. 关闭工作数据表 @ 15, 28 SAY “ 请选择相应代码:? GET cho Read Do case case cho=1 accept “请输入表文件名:” to bm use &bm ? ? ? ? ?

case cho

=2 append case cho=3 input “请输入要删除的记录号:” to jlh go jlh dele case cho=4 browse case cho=5 use otherwise @15, 28 SAY “ 选择代码错!” endcase Set talk on return

9.4 循环结构程序设计
循环,就是按给定的条件连续地重复执行一段特 定功能的程序。循环结构也称为重复结构。 Visual FoxPro给出了三种循环结构: 条件循环(DO WHILE……ENDDO) 计算循环(FOR……ENDFOR) 扫描循环(SCAN……ENDSCAN)

一、条件循环
语句格式: DO WHILE <条件>
条件

.F.

<语句序列1> [LOOP]

.T.
循环体

<语句序列2>
[EXIT] <语句序列3>

循环体

ENDDO
功能:有条件连续地重复执行DO WHILE 与ENDDO之间的语句序列,直到<条件>为 假或因执行EXIT语句而结束。

ENDDO后的语句 条件循环结构流程图

功能说明:
(1)系统执行该语句时,先判断循环开始DO WHILE的条件是否成立, 如果条件为真,则执行循环体中的语句序列。当执行到ENDDO时,返回 到DO WHILE,再次判断条件是否为真,以确定是否再次执行循环体。 若条件为假,则结束循环 ,执行ENDDO后面的语句。 如果第一次判断 条件时,条件即为假,则循环体一次都不执行,这就是称为?先判断 后执行?的语句。 (2)循环体中的LOOP是可选项。遇到LOOP时,不再执行后面的语句, 转回 DO WHILE 处重新判断。其作用相当于一个特殊的?短路?返回控 制。 (3)循环体中的EXIT也是可选项。遇到它时便无条件地退出循环,转 到ENDDO后面的语句。其作用相当于一个紧急出口。 (4)通常LOOP或EXIT出现在循环体内嵌套的分支语句中,根据条件来 决定是LOOP回去,还是EXIT出去。

例 在屏幕上换行显示字符串?OK”20次

SET TALK OFF CLEAR ?[OK] ?[OK]

?[OK] SET TALK ON RETURN



例 在屏幕上换行显示字符串[OK]20次

SET TALK OFF CLEAR &&设置循环变量初值 i=1

循环次数

循环前i值

循环后i值

DO WHILE i<=20 ? [OK] &&修改循环变量 i=i+1 ENDDO SET TALK ON
RETURN

1
2 20 …

1
2 20

2
3 21 …



在以循环变量作为循环控制参数的条件循环中 注意

① DO WHILE 语句之前一定要有设臵循环变量初 值的语句。 ② 循环体内一定要有修改循环变量的语句,否则 就会出现死循环。



求自然数1至4的和。

分析算法: 1. 2. 3. 4. 5. i=1 , s=0 ; 累加第 i 个数 累加次数加1 当 i<= 4 重复做2 ; ? s 。

s= s+i ;
i= i+1 ;



求自然数1至4的和。

SET TALK OFF

S=0 i=1 DO WHILE i<=4 S=S+i i=i+1
ENDDO

&&定义一个变量表示和,并初始化 &&设置循环变量的初值 &&指定以循环次数作判断条件 &&把S的值加上i后再赋给S,即求和 &&修改循环变量
&&输出求和的结果

?S
SET TALK ON RETURN

程序流程图 S=0
SET TALK OFF S=0 i=1 DO WHILE i<=4 S=S+i i=i+1 ENDDO ?S

i=1 1

<=4 2<=4 3<=4 4<=4 5<=4 × .T. S=0+1 S=1+2 S=3+3 S=6+4 i= i=1+1 i=2+1 i=3+1 4+1 .F.

SET TALK ON
RETURN

? 10

推广1
[程序:求自然数1至4的和]
SET TALK OFF INPUT 〞请输入N的值:〞 S=0 i=1 TO N

若求自然数1至N的和呢?

DO WHILE i<=4 i<=N S=S+i i=i+1 ENDDO ?S SET TALK ON RETURN

推广2
[程序:求自然数1至N的和]
SET TALK OFF
INPUT 〞请输入N的值:〞 TO S=1 S=0 i=1 N

若求自然数1至N的积呢?

DO WHILE i<=N S =S + i i =i + 1 ENDDO ?S SET TALK ON RETURN

S=S*i



阅读程序,并说出程序的运行结果 SET TALK OFF

i=1 DO WHILE i<=5
i=i+1 ?i IF i=3 LOOP ENDIF

程序结果 程序结果 2 3 4 5 6 E 2 4 5 6 E

ENDDO
? “E” SET TALK ON RETURN

例 求1~100以内所有奇数的和。
SET TALK OFF S=0 S=0 I=1

以循环变量作为控 制参数控制循环。

程序改进:

I=0
Do while I<100 I=I+1

Do while I<100
S=S +I I=I+2

If int(I/2) = I/2
Loop endif S=S +I Enddo ? “1到100的奇数和 S= ”, S SET TALK ON Return

Enddo
?s

例 编程:在zgb.dbf中查找某人。
SET TALK OFF CLEAR 

利用数据表的操作函 数的返回值控制循环

USE zgb
ACCEPT “请输入要查找人的姓名: ” TO N LOCATE ALL FOR XM=N DO WHILE .NOT. EOF( ) DISP

——————

CONTINU WAIT “按任意键继续,按ESC键退出”

ENDDO
USE ?“查找结束” SET TALK ON RETURN

例 求连乘数1*2*3*4*……,当积大于720时退出程序。 Set talk off Clear S=1 I=1 Do while —— .T. S=S *I  I=I+1 Enddo ? “ S= ”, S  Set talk on Return 循环控制条件恒为 真 , 要 使 用 EXIT 语句结束循环

IF S > 720 EXIT ——— ENDIF

例 求[1,100]内所有能被3或被5整除的数的个数。
SET TALK OFF N= 0 &&定义一个变量表示个数,并初始化 i=1 DO WHILE i<=100 IF MOD(i,3)=0 .OR. MOD(i,5)=0 &&显示满足条件的这个数 ?i N=N+1 &&总个数增加1 ENDIF i=i+1 ENDDO ? 〞满足条件的数的个数为〞,N SET TALK ON RETURN

二、计数循环

循环初值

语句格式: FOR X=A
循环变量

循环终值

TO

B [STEP C ]
步长值

<语句序列1> [LOOP] <语句序列2> [EXIT] 循环体

<语句序列3>
ENDFOR

| NEXT

功能:将FOR……ENDFOR循环中的<语句序列>执行指定的次数。

思考1
例 求1~100之和。 SET TALK OFF

若求100的阶乘呢?

Clear  S=0

for

I=1
S = S

to
+ I

100



Endfor ? “S = ”, S

SET TALK ON

Return

思考2
例 求1~100之奇数和。 SET TALK OFF

若求1~100的偶数和呢?

Clear 
S=0 for I=1 to 100 step 2 S = S Next ? “S = ”, S + I

SET TALK ON

Return



阅读程序,写出程序运行结果
SET TALK OFF S=0 FOR K=1 TO 10 STEP 2 IF K=7

LOOP ENDIF S=S+K ENDFOR ?S SET TALK ON RETURN

思考3 若改成EXIT呢?

三、表文件扫描循环
语句格式: SCAN [<范围>][FOR <条件>]  <语句序列1> [LOOP] <语句序列2>

 [EXIT] 循环体

<语句序列3>
ENDSCAN
功能:在指定的范围内,扫描满足给定条件的记录,执行相应的语句。


SET USE

用SCAN语句编程:在zgb.dbf中查找某人。
TALK zgb “请输入要查找人的姓名: ” FOR XM=N  TO N OFF

ACCEPT SCAN DISP WAIT ENDSCAN USE

“按任意键继续,按ESC键退出”

?“查找结束” SET TALK ON

RETURN

对数据表扫描时三种循环的等价格式
计数循环: n=RECCOUNT() FOR i=1 TO n …… GO i …… ENDFOR

表文件扫描循环: SCAN FOR …… …… ENDSCAN

条件循环: DO WHILE .NOT. EOF() …… SKIP …… ENDDO

循环嵌套
? ?

循环体内又设臵循环的情况称为多重循环,又称为循环嵌套。 内外循环的层次必须分明,不允许有交叉现象出现。

?

循环结构可以与分支结构嵌套,同样不允许有交叉现象出现。

以下交叉情形不允许出现:
FOR SCAN ENDFOR ENDSCAN IF DO WHILE ENDIF ENDDO FOR DO CASE ENDFOR ENDCASE
图 6.7 嵌套不允许交叉



已知S1=1,S2=1+2,S3=1+2+3,……, s=0 n=1 Do while n<=100 i=1 sub=0 Do while i<=n sub = sub + i i=i+1 Enddo s = s + sub n =n + 1 Enddo ? “ S1+S2+……+S100= ”, s 

Sn=1+2+3+……+N,编程求S1+S2+……+S100的和。





(1)求[1,30]之间所有偶数的乘积。 (2)已知S=1*2*3*…*N (3)求 s=1!+2!+……+n!
1 1 1 ? ??? (4)求 s ? 1 ? 1 ! 2! n!
1 1 1 ? ??? (5)求 y ? 1 ? 1? 2 1? 2 ? 3 1? 2 ??? n

当S>800时退出,求此时最小的S值

9.5 程序的模块化
9.5.1 子程序、过程和函数 1.子程序 (1).子程序的结构 子程序与其他程序文件的惟一区别是其末尾或返回处必 须有返回语句。 命令格式:RETURN.[TO.MASTER|TO.〈程序文件 名〉|〈表达式〉]

(2).子程序的调用 子程序调用命令与主程序执行命令相同,其格式都是: DO〈程序文件名〉|〈过程名〉[WITH.〈参数表〉] (3).子程序的嵌套调用 主程序可以调用子程序,子程序还可以调用另外的子程 序,这就是子程序的嵌套调用。实际上,子程序和主程 序都是相对的,任何一个程序可以调用其他程序,也可 以被其他程序调用。每个被调用程序的末尾或返回处都 要加上RETURN命令。

2.自定义函数 (1).自定义函数的结构 [FUNCTION.〈函数名〉] [PARAMETERS.〈参数表〉] 〈命令组〉 RETURN.[〈表达式〉] (2).自定义函数的调用 调用格式是: 〈函数名〉(〈自变量表〉)

3.过程与过程文件 (1).过程的结构 过程的一般格式是: PROCEDURE〈过程名〉 [PARAMETERS〈参数表〉] 〈命令组〉 RETURN (2).过程文件 一个过程可以以文件形式单独存在,也可以将多个 过程合并到一个文件中,这个文件称为过程文件。在过 程文件中,每个过程仍然是独立

的,可以单独调用。

(3).过程文件的打开与关闭 打开过程文件命令格式是: SET.PROCEDURE.TO.[〈过程文件名〉] 关闭过程文件命令格式是: SET.PROCEDURE.TO或者 CLOSE.PROCEDURE

9.5.2 内存变量的作用域
1.全局内存变量 定义全局变量的命令格式: 命令格式1: PUBLIC〈内存变量表〉|ALL|ALL LINK〈通配符〉| ALL EXCEPT〈通配符〉 命令格式2: PUBLIC.[ARRAY]〈数组名〉(〈下标上界1〉[,〈下 标上界2〉])[,〈数组名〉(〈下标上界1〉[,〈下标 上界2〉]),…] 功能:定义全局内存变量或数组。

2.局部内存变量 局部内存变量只能在定义它的程序及其下 级程序中使用,一旦定义它的程序运行结束, 它便自动被清除。也就是说,在某一级程序 中定义的局部变量,不能进入其上级程序使 用,但可以到其下级程序中使用,而且当在 下级程序中改变了该变量的值时,在返回本 级程序时被改变的值仍然保存,本级程序可 以继续使用改变后的变量值。

3.隐藏内存变量 如果某级程序中使用的局部变量与上级程序中的 局部变量或全局变量同名,就容易造成混淆。为了 避免这种情况,可使用PRIVATE命令在该程序中将全 局变量或上级程序定义的一些变量隐藏起来,这时 就像这些内存变量不存在一样,可以再定义同名的 内存变量。 命令格式 :PRIVATE.〈内存变量表〉|ALL| ALL.LIKE.〈通配符〉|ALL.EXCEPT.〈通配符〉

9.5.3 调用子程序时的数据传递
调用子程序时的数据传递可以通过两种方式来解 决。 1.利用变量的作用域实现数据传递:合理地利用前 面介绍的内存变量作用域特性,可以实现调用子程 序时的数据传递。 2.利用参数实现数据传递 。 命令格式是: PARAMETERS.〈内存变量表〉 功能:该命令指定子程序中的局部变量名,并由这 些局部变量接收上级程序中用DO…WITH传递来的参 数。

9.6 程序调试
9.6.1 程序调试概述 程序调试就是确定程序出错的位臵,然后加以改正, 一直到满足预定的设计要求为止。程序调试往往是先分 模块调试,当各模块都调试通过以后,再联合起来进行 调试,通过联调后,便可试运行,试运行无误即可投入 正常使用。 程序的错误有两类:语法错误和逻辑错误。

9.6.2调试器窗口 选择?工具?菜单中的?调试器?命令或在命令 窗口输入DEBUG命令,系统打开调试器窗口。 1.跟踪窗口 2.监视窗口 3.局部窗口 4.调用堆栈窗口

9.6.3设臵断点 在调试器窗口可以设臵以下4种类型的断点: 类型1:在定位处中断。 类型2:如果表达式值为真则在定位处中断。 类型3:当表达式值为真时中断。 类型4:当表达式值改变时中断。 不同类型断点的设臵方法大致

相同,但也有一些区别。

9.6.4“调试?菜单项 在调试器窗口中的?调试?菜单项包含执行 程序、选择执行方式、终止程序执行、修改程序 以及调整程序执行速度等命令。 各命令的具体功能请参考教材。


上一篇:作业23--天平
下一篇:二组出题
网站首页网站地图 站长统计
All rights reserved Powered by 海文库
copyright ©right 2010-2011。
文档资料库内容来自网络,如有侵犯请联系客服。zhit326@126.com