49
铜铜铜铜铜铜铜铜铜铜铜 第 4 第 第第第第第第第 第第第第•铜铜铜铜铜铜铜 •铜铜铜铜铜铜铜 •铜铜铜铜铜铜铜铜

第 4 章 结构化程序设计

  • Upload
    paniz

  • View
    85

  • Download
    4

Embed Size (px)

DESCRIPTION

第 4 章 结构化程序设计. 本章内容: 程序与程序文件 程序的基本结构 子程序和过程文件. 4.1 程序与程序文件. 4.1.1 程序的概念 程序:是能够完成一定任务的命令的有序集合。 程序文件:一组构成程序的命令被存放的文件称为程序文件或命令文件,建立好的程序可多次运行,也可根据需要修改和进一步完善。. 编写程序,显示数据表 XSDA.DBF 中性别为“男”的学生学号、姓名、出生日期。 下面是一个完整的 VFP 程序。 *程序文件名 lx4_1.prg SET TALK OFF && 关闭状态信息 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

第 4 章 结构化程序设计

本章内容:•程序与程序文件 •程序的基本结构•子程序和过程文件

Page 2: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

4.1 程序与程序文件4.1.1 程序的概念

程序:是能够完成一定任务的命令的有序集合。

程序文件:一组构成程序的命令被存放的文件称为程序文件或命令文件,建立好的程序可多次运行,也可根据需要修改和进一步完善。

Page 3: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

• 编写程序,显示数据表 XSDA.DBF 中性别为“男”的学生学号、姓名、出生日期。下面是一个完整的 VFP 程序。

* 程序文件名 lx4_1.prg

SET TALK OFF && 关闭状态信息OPEN DATABASE JXGL && 打开数据库 JXGL.DBC

USE XSDA IN 0 &&D 在当前最小工作区打开XSDA.DBF

CLEAR && 清屏LIST 学号 , 姓名 , 出生日期 FOR 性别 =” 男” && 显示查询到

的信息CLOSE DATABASE && 关闭数据库SET TALK ON && 打开状态信息RETURN && 返回

Page 4: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

此程序的几点说明:1. 命令分行若命令一行写不下,则需分行书写,应在一行末尾输入分号,

然后回车写续行。2. 命令注释

格式一: * < 注释内容 > 在要解释的命令前,又称行首注释。格式二: && < 注释内容 > 在要解释的命令后,又称行尾注释。

3. 程序结尾的专用命令RETUEN :置于程序末尾,返回到调用它的上级程序CANCEL :使程序执行终止,并返回到命令窗口QUIT :使程序终止执行,返回操作系统

4.SET TALK ON|OFF 命令

Page 5: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

4.1.2 程序文件的建立、修改与运行在 VFP 中,一个程序文件就是一个 ASCII 文本文件,因而

可用各类编辑工具来建立。1. 命令方式( 1 )程序文件的建立和修改命令格式: MODIFY COMMAND [< 程序文件名 >|?]功能:打开一个编辑窗口,从中可以修改或创建程序文件。 (2) 程序的运行命令格式: DO < 文件名 >功能:运行已建立的程序文件。说明:该命令除了可以从命令窗口调用程序外,还可以在程

序中使用,可以从一个程序调用子程序。如果文件不加扩展名,系统会假定它具有 .PRG 的扩展名。

Page 6: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

2. 通过项目管理器( 1 )程序文件建立,操作步骤如下: 首先打开已建立的项目文件,选择“全部”选项卡中

“代码”,并在“代码”中选择“程序”。

Page 7: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

( 2 )程序文件的运行在“管理项目器”的“代码”选项卡中的“程序”项中,

选择程序,按下“运行”按钮,该程序的结果即显示于 VFP的主窗口里。

3. 菜单方式( 1 )程序文件的建立

执行“文件”|“新建”命令,在对话框中选取择“程序”文件,出现程序编辑窗口,在程序编辑窗口逐条输入程序内容,保存程序文件。

( 2 )程序文件的运行选择菜单“程序”中的“运行”命令,出现“运行”对

话框,在“运行”对话框中选择程序文件后单击“运行”按钮。如要运行在程序编辑窗口的当前正在编辑的程序,可单击常用工具栏上的“运行”按钮。

Page 8: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

4.1.3 程序设计中常用的输入输出命令1.ACCEPT 命令

格式: ACCEPT [< 提示信息 >] TO < 内存变量名 >

功能 : 在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。说明 : ① 如果选用 < 字符表达式 > ,那么系统会首先显示该表达式的值,作为提示信息,并将输入的字符串赋值给 < 内存变量 > 。 ② 该命令只能接收字符串,而不需加定界符,否则系统将把定界符作为字符串的一部分。 ③ 若不输入任何字符而直接按回车键,系统将把空串赋值给指定的内存变量。

Page 9: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

【例 4-2 】编程从键盘输入学生姓名,在XSDA 中查找并显示其内容。

* 程序文件名 lx4_2.prg 。SET TALK OFF

CLEAR

USE XSDA

ACCEPT " 请输入要查找的学生名: " TO XM

LOCATE FOR 姓名 =XM

DISP

USE

SET TALK ON

RETURN

Page 10: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

• 2.INPUT 通用数据接收命令

说明 :

① 如果选用 < 字符表达式 > ,那么系统会首先显示该表达式的值,作为提示信息,并将输入的数据赋值给 < 内存变量 > 。

② 可以输入字符型、数值型、逻辑型、日期型等类型数据,而且可以是常量、变量或表达式等形式,按回车键结束输入。

③ 输入非数值型数据要加定界符。如输入逻辑型常量时要用圆点定界( .T. )、输入日期型常量要用大括号{ ^2004-05-10}、输入字符型加””或’’等。

格式: INPUT[< 字符表达式 >] TO < 内存变量 >

Page 11: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

【例 4-3 】编写程序 , 查找指定籍贯和出生日期以后的学生。

* 程序文件名 lx4_3.prg

SET TALK OFF

CLEAR

USE XSDA

INPUT " 请输入学生籍贯: " TO JG

INPUT " 请输入出生日期: " TO CSRQ

DISP FOR 籍贯 =JG AND 出生日期 >CSRQ && 结果显示在查询窗口里

SET TALK ON

USE

RETURN

Page 12: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

3.WAIT 命令格式: WAIT [ < 字符表达式 > ] [TO < 内存变量 >]

功能:显示信息并暂停程序执行,当按下任意键或单击鼠标后继续执行。

说明:① 字符表达式,系统将先显示字符表达式的值作为提示信息,并

将输入的单字符赋值给 < 内存变量 > 。若不选用提示信息,则显示 “按任意键继续……”。

②< 内存变量 > 用来保存用户键入的单字符,其类型只能是字符型。若不选 TO < 内存变量 >短语,键入的单字符不保留。

③ 如果指定 WINDOW 子句,则会出现一个 WAIT 提示窗口,在窗口中显示提示信息。提示窗口一般定位于 WINDOW 子句。

④TIMEOUT 选项指在中断WAIT 命令之前,等待键盘或鼠标输入的秒数,一旦超时就不再等待用户按键,自动向下执行。

Page 13: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

【例 4-4 】用 WAIT 命令在信息提示窗口显示:谢谢使用 Visual FoxPro!

WAIT “谢谢使用 Visual FoxPro!” WINDOWS TIMEOUT 10

Page 14: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

4. 格式输入输出命令格式: @ < 行 , 列 > [ SAY < 字符表达式 > ] [ GET < 内存变量 >] … READ

功能:在指定的行、列位置显示或打印输出结果,也可接受数据的输入。

说明:① 行、列指定显示信息的起始位置(屏幕上的行、列号)。②SAY < 字符表达式 > 在指定的起始位置显示信息。③GET < 内存变量 > 等待输入变量的值, GET 子句的变量必须用 READ 命令激活(即 GET 子句必须与 READ 命令配合使用),在多个 GET 子句后,仅用一个 READ 命令即可。

Page 15: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

4.2 程序的基本结构4.2.1 顺序结构 顺序结构是最简单的程序结构,它按

命令在程序中出现的先后次序依次执行。

【例 4-1 】到【例 4-3 】所给的程序均为顺序结构程序。

Page 16: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

4.2.2 分支结构 分支结构是指程序流程发生了分支,

程序执行时根据条件选择其中某一分支执行的程序结构。 Visual FoxPro 6.0 的分支结构按分支多少分为三类 :

单分支单分支双分支双分支多分支多分支

Page 17: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

1. 单分支结构

格式: IF〈条件表达式〉 〈语句序列〉 ENDIF

条件表达式

语句序列

ENDIF 后面的语句

图 4-3 单分支结构流程图

功能:首先计算〈条件表达式〉的值,当〈条件表达式〉的值为真时,执行〈语句序列〉;否则,跳过“语句序列”,直接执行 ENDIF 后面的第一条语句。

Page 18: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

【例 4-5 】 输入货物重量,计算该货物的托费,记费标准每公斤为 0.1元,当超过 50公斤后,超出数为 0.2元。

* 程序文件名 LX4_5.prgINPUT “ 请输入货物重量:” TO w IF w<=50 f=w*0.1 &&货物重量没有超过 50公斤时的计算公式ENDIFIF w>50 f=50*0.1+(w-50)*0.2 &&货物重量超过 50公斤时的公式ENDIF? “托运费为 :”,fRETURN

Page 19: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

2.双分支结构格式:IF < 条件表达式 >

<语句序列 A>

ELSE

<语句序列 B>

ENDIF

条件表达式

语句序列A

ENDIF 后面的语句

假真

语句序列B

Page 20: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

例 4-5 也可以用双分支编程。 * 程序文件名 LX4 _6.prgCLEARINPUT “ 请输入货物重量:” TO w IF w<=50 f=w*0.1 &&货物重量没有超过 50公斤时的计算公式

ELSE f=50*0.1+(w-50)*0.2 &&货物重量超过 50公斤时

的计算公式ENDIF? “托运费为 :”,fRETURN

Page 21: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

3. 多分支结构格式: DO CASECASE < 条件 1> <语句序列 1>CASE < 条件 2> <语句序列 2> …CASE < 条件 n> <语句序列 n>[OTHERWISE <语句序列 n+1>]ENDCASE

功能:依次判断各条件表达式,直至某条件表达式成立,就执行该 CASE 和下一个 CASE之间的语句序列,然后转向执行 ENDCASE 后继语句。

说明:① 不管有几个 CASE 条件成立,只有最先成

立的那个 CASE 条件的对应语句序列被执行。② 若所有条件都不成立,如有 OTHERWISE

项,则执行该项后的语句序列 n+1;若无OTHERWISE 项,则直接执行 ENDCASE 后的语句。

③DO CASE 和 ENDCASE必须成对出现, DO CASE 是本结构的入口, ENDCASE是本结构的出口。

Page 22: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

运行一个程序,随机输出一条信息: CLEAR

AA=INT(RAND()*10) &&随机产生一个 10 以内的整数DO CASE

CASE AA=0

? “这次产生的随机数是: 0”

CASE AA=1

? “这次产生的随机数是: 1”

CASE AA=2

? “这次产生的随机数是: 2”

CASE AA=3

? “这次产生的随机数是: 3”

OTHERWISE

? “这次产生的随机数是:大于 3!”ENDCASE

Page 23: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

4.2.3 循环结构VFP支持循环结构的语句包括:

DO WHILE-ENDDO

FOR-ENDFOR/NEXT

SCAN-ENDSCAN

Page 24: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

1. DO WHILE-ENDDO语句DO WHILE < 条件 >

<语句序列 1>

[LOOP]

<语句序列 2>

[EXIT]

<语句序列 3>

ENDDO

循环体

条件

ENDDO 后面的语句

Page 25: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

【例 4-9 】计算 S=1 + 2 + 3 + ··· + 10之和。

* 程序文件名 lx4_9.prg

SET TALK OFF

s=0

i=1

DO WHILE i<=10

s=s+i

i=i+1

ENDDO

?"1~10 的和为 :", s

SET TALK ON

RETURN用变量 i 作为计数器,计算循环次数, i 可从 1 开始,每次循环增加 1 ,直至 10;用变量 s 作为累加器,初值为 0

Page 26: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

2.FOR-ENDFOR/NEXT语句格式: FOR <循环变量 >=<初值 > TO < 终值 > [STEP < 步长 >]

<循环体 >

ENDFOR|NEXT

功能:首先将初值赋给循环变量后,判断循环变量是否超过终值,若没超过,则执行循环体,循环变量增加一个步长值,再次判断循环变量是否超过终值以决定是否继续执行循环体;若超过,则直接执行 ENDFOR 的后续语句。

Page 27: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

说明:①循环变量没超过终值的 2种情况:

若步长为正,则 <循环变量 >≤< 终值 > 若步长为负,则 <循环变量 >≥< 终值 >

②省略步长时,默认值为 1 。③初值、终值、步长均为数值表达式,仅在循环开始时计算一次,执行循环的过程中并不会改变。④循环变量值在循环体内可以改变,但会影响循环

次数。⑤EXIT 和 LOOP 命令可以出现在循环体内。执行

LOOP 命令时,结束本次循环,循环变量增加一个步长值,返回 FOR循环头判断循环条件是否成立;执行 EXIT 命令时 , 程序跳出循环,执行ENDFOR 后继语句。

Page 28: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

【例 4-11 】用 FOR……ENDFOR计算 S=1 + 2 +3 + ··· + 10 。

* 程序文件名 lx4_11.prg

SET TALK OFF

S=0

FOR I=1 TO 10

S=S+I

ENDFOR

?"1~10 的和为 :",S

SET TALK ON

RETURN

用 FOR……ENDFOR 编写的累计计数程序,程序结构显得十分简洁、清晰。

Page 29: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

3.SCAN-ENDSCAN语句格式:SCAN [范围 ] [FOR< 条件 1>] [WHILE< 条件 2>]

<循环体 >

ENDSCAN

功能:该语句为表扫描型循环语句,执行该语句时,记录指针在当前表的指定范围内自动、从上往下依次移到满足条件的记录上,并对每一条记录执行循环体内的命令,直到全部执行完退出循环;若表中没有满足条件的记录,则直接退出循环。

Page 30: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

说明:①范围:有 ALL 、 NEXT n 、 Record n 和 REST 。

只有范围之内的记录才可能扫描到, SCAN 的默认范围 ALL 。

②FOR< 条件 1> :针对范围之内所有满足条件的记录,执行循环体。

③WHILE< 条件 2> :只有当前记录满足条件,才执行循环体,一旦遇到使条件表达式值为假的记录时, SCAN 命令便终止,转向执行 ENDSCAN后继语句。

④EXIT 、 LOOP 也可在循环体内使用,功能同 DO WHILE-ENDDO 和 FOR-ENDFOR 。

Page 31: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

【例 4-13 】编写程序,从键盘上任意输入一个出生日期,显示 XSDA 表中比该出生日期迟的学生信息。

* 程序文件名 lx4_13.prgSET TALK OFF CLEAROPEN DATA JXGLUSE XSDAGO TOPINPUT " 任意输入一个出生日期 :" TO csrqSCAN FOR 出生日期 >csrq

DISPLAY ENDSCANCLOSE DATABASESET TALK ONRETURN

Page 32: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

语句嵌套 在一个循环中又包含另一个循环,称为循

环嵌套。循环都可以相互嵌套。可以包含另一个循环的循环称为外循环,被包含的循环称为内循环,这种结构又称多重循环。

FOR DO WHILE

FOR FOR

… … ENDFOR ENDFOR

ENDFOR ENDDO

Page 33: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

【例 4-14 】双重循环* 程序文件名 lx4_14.prg

CLEAR

SET TALK OFF

?”i”,”j”

FOR i=1 TO 2

FOR j=3 TO 5

? i,j

ENDFOR

ENDFOR

SET TALK ON

RETURN

结果为:

i j

1 3

1 4

1 5

2 3

2 4

2 5

Page 34: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

【例 4-15 】计算: s=1 ! +2 ! +3 ! +……+10!

程序分析:用 2 层 FOR……ENDFOR语句来实现。

内层循环用于计算每个数的阶乘即 n! ,外层循环控制 n 的值由 1 变化到 10 ,每次循环 n 值增加 1 。

计算 n! 可参照前面计算 1+2+……+10的编程思想方法 ,事先给定 n 值,用变量 p存放 n! 的结果,令 p 的初值为 1 ,在 FOR……ENDFOR语句的循环体中使用命令p=p*i , i 为循环控制变量,每循环一次值加1 ,当 i超过 n时脱离内层循环。

Page 35: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

s=0FOR n=1 TO 10 p=1 FOR i=1 TO n p=p*i ENDFOR s=s+pENDFOR? sRETURN

结果为:

4037913

Page 36: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

编程1 、输出斐波纳契( Fibonacci )数列的前

20 项,数列的规律是:第一、二个数是 1 ,从第三个数起,每个数是前面两个数之和。

2 、编一个程序求 0 ~ 100之间 (S=2+4+6+…+100) 的偶数之和 .

3 、 Y=1+1 / 2+1 / 3+ … +1 / 30

Page 37: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

4.4 子程序和过程文件

– 程序设计时,常常有些运算或处理程序是相同的– 可以将重复出现的或能单独使用的程序写成可供其他

程序调用的独立程序段称为子程序,在 VFP 中也称为过程

– 在程序运行中,是通过主程序或主调程序去调用子程序或过程的,当子程序或过程运行完后,程序返回主调程序的调用处并执行下一条语句。

Page 38: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

4.4.2 过程的定义和调用过程的定义格式 :

PROCEDURE FUNCTION <∣ 过程名 >

<语句序列 >

[RETURN [< 表达式 >]]

[ENDPROC ENDFUNC]∣

Page 39: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

过程的打开和关闭 ( 1 )过程文件的打开:SET PROCEDURE TO < 过程文件名表 >

( 2 )过程文件的关闭:SET PROCEDURE TO 或SET PROCEDURE TO 过程文件名 1, 过程

文件名 2……

Page 40: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

过程的调用格式 1 :使用 DO 命令

DO< 文件名 > <∣ 过程名 >

格式 2: 在名字后加一对小括号 :

< 文件名 > <∣ 过程名 >()

在上面的两种格式里 , 如果模块是程序文件的代码 , 用 < 文件名 > ,否则用 < 过程名 > 。

格式 2既可以作为命令使用(返回值被忽略),也可以作为函数出现在表达式里。在这里, < 文件名 > 不能包含扩展名。

Page 41: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

【例 4-19 】求圆的面积和周长。* 主程序文件名 lx4_19.prgCLEAR S=0L=0INPUT " 请输入圆的半径 :" TO rSET PROCEDURE TO sub.prgDO pro1 ?SDO pro2?LSET PROCEDURE TORETURN

* 过程文件名 sub.prg

PROCEDURE pro1 && 过程名

S=3.14*r**2

RETURN

PROCEDURE pro2 && 过程名

L=2*3.14*r

RETURN

以一个独立的文件形式存在

Page 42: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

4.4.3 参数传递• 过程可以接收调用程序传递过来的参数 ,并能够

对接收到的参数进行处理,从而大大提供模块程序功能设计的灵活性。

• 允许在调用命令和被调用过程中设置数量相同,类型一致的参数,按其排列顺序一一对应。

• 调用命令将一系列参数的值传送给被调用程序中的对应参数。

• 被调用程序运行结束时,再将相应参数的值 (可能已被改变 )返回。

Page 43: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

调用模块程序的格式为:格式 1 : DO< 文件名 > <∣ 过程名 >WITH<实参 1>[,<实参 2>,…]

格式 2 : < 文件名 > <∣ 过程名 ><实参 1>[,<实参 2>,…]

说明:( 1 )参数可以是常量、变量和表达式( 2 )采用格式 1 调用模块时如果实参是常量或一般形式的表

达式,系统会计算出实参的值,并把它们赋值给相应的形参变量。这种情形称为按值传递。如果实参是变量,那么传递的是变量的地址。这种情形称为按引用传递。

( 3 )采用格式 2 调用模块程序时,默认情况下都以按值方式传递参数。如果实参是变量,可以通过命令 SET UDFPARMS命令重新设置参数传递的方式。该命令的格式如下:

SET UDFPARMS TO VALUE|REFERENCE

Page 44: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

参数语句有以下格式:语句格式:

PARAMETERS 〈形参参数表〉

语句功能:接受调用命令中相应参数的值,并在调用结束后返回对

应参数的计算结果 说明:参数表必须与调用命令中的参数相匹配。参数语句与带参数调用语句必须配合使用,成对出现。

Page 45: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

【例 4-20 】编写按值传递和按引用传递程序* 程序文件名 lx4_20.prgclearstore 100 to x1,x2set udfparms to value && 格式

2 按值传递参数do p3 with x1,(x2)?"第一次 :",x1,x2store 100 to x1,x2p3(x1,(x2))?"第二次 :",x1,x2set udfparms to reference && 格

式 2 按引用传递参数

程序运行结果为:第一次: 101 100第二次: 100 100第三次: 101 100第四次: 101 100

do p3 with x1,(x2)?"第三次 :",x1,x2store 100 to x1,x2p3(x1,(x2))?"第四次 :",x1,x2procedure p3parameters x1,x2store x1+1 to x1store x2+1 to x2endproc

Page 46: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

4.4.4 变量的作用域1.公共变量格式: PUBLIC < 内存变量表 >

在任何模块中都可使用的变量称为公共变量。2.私有变量格式: PRIVATE < 内存变量名表 >

私有变量的作用域是建立它的模块以及其调用的下属各层模块。

3.局部变量格式: LOCAL < 内存变量表 >

局部变量只能在定义它的模块中使用,该模块运行结束时局部变量自动释放。

Page 47: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

【例 4-21 】通过程序了解变量的作用域* 程序文件名 lx4_21.prgCLEARRELEASE ALL && 清除所有用户定义

的内存变量PRIVATE Z Y=1 && 此处 Y 为私有变量Z=1DO Change?" 主程序中 ..."? 'X=',X && 显示 X=1 , X 为公共变量? 'Y=',Y && 显示 Y=1 ,? 'Z=',Z && 显示 Z=4Procedure ChangePUBLIC X &&公共变量 X ,全局有效LOCAL Y && 此处为 Y局部变量,只

在过程 Change 中有效。

X=1Y=3Z=Z+3?" 子程序中 ..."? 'X=',X && 显示 X=1? 'Y=',Y && 显示 Y=3? 'Z=',Z && 显示 Z=4ENDPROC

结果如下:子程序中 ...X= 1Y= 3Z= 4主程序中 ...X= 1Y= 1Z= 4

Page 48: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

编程练习:

利用参数传递和过程文件,求m !+n ,

m 和 n 的值由用户输入。

Page 49: 第 4 章 结构化程序设计

铜陵学院数学与计算机系

本章结束

第 4 章 结构化程序设计