vfp数据库及程序设计第6章程序设计及过程基础ppt课件_第1页
vfp数据库及程序设计第6章程序设计及过程基础ppt课件_第2页
vfp数据库及程序设计第6章程序设计及过程基础ppt课件_第3页
vfp数据库及程序设计第6章程序设计及过程基础ppt课件_第4页
vfp数据库及程序设计第6章程序设计及过程基础ppt课件_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章 程序设计及过程根底 .Visual FoxPro的任务方式 Visual FoxPro系统提供有两种任务方式。单命令方式:在命令窗口发布命令,或者经过系统菜单进展操作,也叫交互式方式;批命令执行方式:把许多条指令聚集在一同生成一个文件扩展名为.prg,称为程序设计或者自动运转方式。程序可以看成是多条命令按一定规那么组织成的一个有机的序列。程序设计特点:1可以保管所执行的命令集合,及存储程序文件;2可以以多种方式反复执行;3便于设计运用软件。.6.1 程序和程序文件 有关此Visual FoxPro程序的几点阐明 :1注释语句【格式1】NOTE 【格式2】* 【格式3】& 【功能】加强程

2、序文件的易读性或放弃中语句的执行 2对话开关语句【格式】SET TALK OFF|ON【功能】封锁或翻开命令执行时的对话开关3命令的分行Visual FoxPro程序是命令行的序列,每个命令都以回车键终了,一行只能写一条命令;可用续行符“;,再按回车键。6.1.1 根本阐明.6.1.2 程序文件的建立、修正与执行 1建立或修正程序文件 命令方式 MODIFY COMMAND 程序文件名或 MODIFY FILE 程序文件名必需输入后缀名.PRG 菜一方式 (1) 翻开“文件菜单,选择“新建;在“新建窗口,选择“程序,再选择“新建文件; (2) 工程管理器的“代码选项卡。.2保管程序程序输入、编

3、辑终了,单击【文件】|【保管】菜单项,或按Ctrl+W组合键,在另存为对话框中指定程序文件的存放位置和文件名,并单击保管按钮保管程序文件并退出文本编辑器。程序文件的默许扩展名是.PRG。.3执行程序1工具栏方式当预备运转的程序窗口为活动窗口时,单击运转图标2菜一方式【程序】|【运转】3命令方式【格式】DO .4. 程序执行过程及终了条件执行程序文件时,将依次执行文件中的命令,直到一切命令执行终了或者执行到以下命令: CANCAL:终止程序运转,去除一切的私有变量,前往命令窗口; DO :调用执行另一个程序 RETURN:终了程序执行,前往调用它的上级程序,假设无上级程序那么前往命令窗口; QU

4、IT:终了程序执行并退出Visual FoxPro系统,前往操作系统 .6.1.3 程序设计的三个过程 1数据输入 原始数据,可以从键盘输入,也可以从表中输入;当在程序中直接赋值的时候,矫正程可以省略;2计算处置 根据处理的问题,用一种算法书写出所需求的语句。3数据输出 把计算的结果输出,普通是屏幕,也可以有其它方式的输出。.6.1.4 输入输出命令1ACCEPT命令【格式】ACCEPT TO 【功能】在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。执行后暂停,等待用户从键盘输入一串字符,回车,将字符串赋给变量,程序继续向下执行。 该命令只接受字符型数据,输入的字符串不需

5、求加定界符。.【例】编程从键盘输入某表的文件名,要求翻开该表并显示其内容。SET TALK OFFCLEARACCEPT 请输入表名 TO BBBUSE &BBBLISTUSESET TALK ONRETURN.【例】编写程序,在JBQK表中查找并显示恣意一个职工的情况。USE jbqkACCEPT 请输入职工的姓名: TO XMLOCA FOR 姓名=XM?职工 +XM+的根本情况如下:?职工号:+编号?姓别:+性别?部门: +部门?出生日期: +DTOC(出生年月)use .2INPUT命令 【格式】INPUT TO 【功能】在程序执行过程中,将用户交互式输入的内容赋值给指定内存变量 可以

6、输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等方式,按回车键终了输入,系统将输入的数据赋值给。.【例】写程序:从键盘输入两个恣意整数,计算这两个数的和、差、积、商。 CLEARINPUT 请输入第一个数: TO AINPUT 请输入第二个数: TO B? 这两个数的和为: , A+B? 这两个数的差为: , A-B? 这两个数的积为: , A*B? 这两个数的商为: , A/B.【例】从键盘输入两个恣意正数,编程求以两数为边长的长方形面积。程序文件名为PROG4.PRGSET TALK OFFCLEARINPUT 长方形一边的长为: TO AIN

7、PUT 长方形另一边的长为: TO BS=A*B? 长方形的面积为: , SSET TALK ONRETURN.3WAIT命令【格式】WAIT TO WINDOW AT, TIMEOUT【功能】显示提示信息,暂停程序执行,直到用户按恣意键或单击鼠标时继续执行程序。该命令将输入单个字符假设用户是按Enter键或单击鼠标,的值为空串。.【例】在课程表中显示恣意一门课程的情况。SET TALK OFFCLEARUSE 课程WAIT 请输入课程序号15: TO N; WINDOWS AT 30,40 TIMEOUT 3IF VAL(N)5 WAIT 输入无效,终了程序运转! WINDOW TIMEOU

8、T 5 RETURNELSE STORE K0 +N TO AAA LIST FOR 课程号=AAAENDIFUSESET TALK ONRETURN .4三条输入命令的异同ACCEPT命令只能接受字符型数据,不需定界符,输入终了按回车键终了; WAIT命令只能输入单个字符,且不需定界符,输入终了不需按回车键; INPUT命令可接受数值型、字符型、逻辑型、日期型和日期时间型数据,数据方式可以是常量、变量、函数和表达式,假设是字符串,需用定界符,输入终了按回车键终了。 .5. 格式化输入输出命令格式: SAY FONT “字体, 字号 GET FONT “字体, 字号 DEFAULT功能:在屏幕

9、指定行列输出表达式的值并修正内存变量的值。阐明:1中行自上而下编号,列自左至右编号,编号从0开场,行列可以运用小数准确定位;2省略SAY选项,GET变量值在行列指定位置开场显示,假设选SAY选项,先显示表达式的值,然后再显示GET变量值;3) FONT选项设置表达式和内存变量的字体和字号;4GET中的变量必需有初值或用DEFAULT中的命令定值;5GET选项必需用READ命令激活。.【例】 查找学生成果大于等于指定成果的且数学大于等于指定分数的学生学号,姓名,入学成果,数学成果。clear 10, 10 say 输入入学成果: get rxcj default 150read 10, 10 s

10、ay 输入数学分数: get sxfs default 60read 10, 10 say 入学成果为 +str(rxcj)+ 数学成果为 +str(sxfs)select 学生.学号, 学生.姓名, 学生.入学成果, 学生成果.数学;from 学生, 学生成果 where 学生.入学成果 = rxcj and 学生成果.数学 = sxfs;and 学生.学号=学生成果.学号 return. 6.1.5 计算机算法的概念广义地说,为处理一个问题而采取的方法和步骤,就称为“算法;对同一个问题,可以有不同的解题方法和步骤;为了有效地进展解题,不仅需求保证算法正确,还要思索算法的质量,选择适宜的算法

11、。.计算机算法可分为两大类别:数值运算算法:求数值解,例如求方程的根、求函数的定积分等。非数值运算:包括的面非常广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。.S1:输入半径rS2:计算周长l=2*PI()*rS3:计算面积s=PI()*r*rS4:输出周长和面积S5:终了 问题1 输入半径r,输出圆的周长和面积?顺序构造 是指在程序执行时,根据程序中语句的书写顺序依次执行的命令序列,从第一条语句开场执行到最后一条语句。Visual FoxPro系统中的大多数命令都可以作为顺序构造中的语句。.S1:输入年份到变量y;S2:假设y不能被4整除,那么输出y “不是闰年。

12、然后转到S6;S3:假设y能被4整除,不能被100整除,那么输出y “是闰年。然后转到S6;S4:假设y能被400整除,输出y“是闰年, 然后转到S6 ;S5:输出y “不是闰年;S6:终了 问题2 输入一个年份,判别这一年能否是闰年,并将结果输出。分析:闰年的条件是:(1)能被4整除,但不能被100整除的年份都是闰年,如1996,2004年是闰年;(2)能被400整除的年份是闰年。如1600,2000年是闰年。不符合这两个条件的年份不是闰年。 . 以上算法中每做一步都分别分别出一些范围(已能断定为闰年或非闰年),逐渐减少范围,直至执行S5时,只能够是非闰年。“其它 包括能被4整除,又能被10

13、0整除,而不能被400整除的那些年份(如1900) 是非闰年。. 在处置实践问题时,只需顺序构造是不够的,经常会遇到一些条件的判别,流程根据条件能否成立有不同的流向。这种先根据条件做出判别,再决议执行哪一种操作的构造称为分支构造,也称为选择构造。 分支构造是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来处理有选择、有转移的诸多问题。.问题3 求12345的值,并输出出来。 步骤1:先求12,得到结果2步骤2:将步骤1得到的乘积2再乘以3,得到结果6步骤3:将6再乘以4,得24步骤4:将24再乘以5,得120太繁琐假设要求121000,那么要写999个步骤. S1:使p=1; S2:

14、使i=2; S3:使pi,乘积仍放在变量p中,可表示为:p=p*i; S4:使i的值加1,即i=i+1; S5:假设i不大于5,前往重新执行步骤S3以及其后的步骤S4和S5,否那么,转S6;S6:终了,最后得到p的值就是5!的值。可以设两个变量:一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,而直接将每一步骤的乘积放在被乘数变量中。设p为被乘数,i为乘数。用循环算法来求结果, 算法可改写: . 用这种方法表示的算法具有通用性、灵敏性。S3到S5组成一个循环,在实现算法时 要反复多次执行S3,S4,S5等步骤,直到某一时辰,执行S5步骤时经过判别,乘数i已超越规定的数值而不前往S3

15、步骤为止。此时算法终了,变量p的值就是所求结果。 循环构造 循环构造可以使某些语句或程序段反复执行假设干次。即从某处开场,按照一定条件反复执行某一处置步骤,反复执行的处置步骤称为循环体。.程序的根本构造 1顺序构造 顺序构造是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。Visual FoxPro系统中的大多数命令都可以作为顺序构造中的语句。2分支构造 分支构造是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来处理有选择、有转移的诸多问题。3循环构造 循环构造那么可以使某些语句或程序段反复执行假设干次。.用流程图表示算法美国国家规范化协会ANSI(American Nat

16、ional Standard Institute)规定了一些常用的流程图符号:起止框判别框处置框输入/输出框注释框流向线衔接点.流程图是表示算法的较好的工具。一个流程图包括以下几部分:(1)表示相应操作的框;(2)带箭头的流程线;(3)框内外必要的文字阐明。 .例 将求5!的算法用流程图表示假设需求将最后结果打印出来,可在菱形框的下面加一个输出框。 . 例 断定20002500年中的每一年能否闰年,将结果输出用流程图表示算法要比用文字描画算法逻辑明晰、易于了解。 .三种根本构造的图示 顺序构造选择构造.当型(While型)循环构造 直到型(Until型)循环 .三种根本构造的共同特点:(1)只

17、需一个入口。 (2)只需一个出口。(3)构造内的每一部分都有时机被执行到。(4)构造内不存在“死循环(无终止的循环)。 . 图中没有一条从入口到出口的途径经过A框不正确的流程表示:流程内的死循环. 1 编写程序文件P1.PRG,运转程序,察看结果。要求程序完成以下步骤: (1)用SQL语句中CREATE TABLE创建一个学生成果表,其中包括如下字段:姓名C8、课程名C10、成果N3 (2)用SQL语句中INSERT INTO 添加如下数据 张三 计算机 90 李四 英语 80 (3)用SELECT查询语句查询一切记录。 6.2 程序的三种根本构造 CLEARCREATE TABLE 学生成果

18、2 (姓名 C(8),课程号 C(10),成果 N(3)INSERT INTO 学生成果2 VALUES (张三,计算机,90)INSERT INTO 学生成果2 VALUES (李四,英语,80)SELECT * FROM 学生成果26.2.1 顺序构造 .1单向分支 1语句格式: IF条件表达式 语句序列 ENDIF 2语句功能: 该语句首先计算条件表达式的值,当条件表达式的值为真时,执行语句序列;否那么,执行ENDIF后面的第一条命令。6.2.2 选择构造 .CLEARINPUT A: TO AINPUT B: TO BINPUT C: TO CZ=B2-4*A*CIF Z=0 X1=(

19、-B+SQRT(Z)/(2*A) X2=(-B-SQRT(Z)/(2*A) ?X1,X2ENDIF【例】求一元二次方程AX2BXC0的实根。. 2双向分支1语句格式: IF条件表达式 语句序列1 ELSE 语句序列2 ENDIF2语句功能: 该语句首先计算条件表达式的值,当条件表达式的值为真时,执行语句序列1中的命令;否那么,执行语句序列2中的命令;执行完语句序列1或语句序列2后都将执行ENDIF后面的第一条命令。.CLEARINPUT A: TO AINPUT B: TO BINPUT C: TO CZ=B2-4*A*CIF Z=0 X1=(-B+SQRT(Z)/(2*A) X2=(-B-S

20、QRT(Z)/(2*A) ? 有实根 ? X1,X2ELSE 【例】求一元二次方程AX2BXC0的根,包括实根和虚根。 X1=-B/(2*A) X2=sqrt(-Z) /(2*A) ? 有虚根 ? X1= +STR(X1,8,2)+; + +STR(X2,8,2)+ i ? X2= +STR(X2,8,2)+; - +STR(X2,8,2)+ iENDIF.【例】输入一个人名,并在表JBQK中查找,假设找到了,显示相应的记录;假设没有找到,显示没有找到信息。clearuse jbqkaccept 请输入姓名: to xmlocate for 姓名=xmif not eof() dispelse

21、 ?查无&xm.这个人endifuse. 3IF语句的多重嵌套 IF条件表达式IF 语句序列1ELSE语句序列2ENDIF ELSE 语句序列3 ENDIF 必需保证IFELSEENDIF一一对应,不允许交叉嵌套.【例】假设收入P与税率R的关系如下表,编程求税金。 0 P800R= 0.05 800 P2000 0.08 2000P5000 0.1 P5000 INPUT 请输入收入: TO PIF P800 R=0ELSE IF P2000 R=0.05 ELSE IF Pb if ac ?a else ?c endifelse if bc ?b else ?c endifendif.4多分

22、支选择语句 多向分支语句,即根据多个条件表达式的值,选择执行多个操作中的一个对应执行 。1语句格式:DO CASE CASE条件表达式1 语句序列1 CASE条件表达式2 语句序列2 CASE条件表达式N-1语句序列N-1 OTHERWISE 语句序列NENDCASE. 2语句功能: 该语句根据给出的N个条件表达式的值,选择N+1个命令行序列中的一个执行。当一切CASE中条件表达式的值都是假时,假设有OTHERWISE项,那么执行命令行序列N+1,再执行ENDCASE后面的第一条命令;否那么,直接执行ENDCASE后面的第一条命令。.【例】假设收入P与税率R的关系如下表,编程求税金。 0 P8

23、00R= 0.05 800 P2000 0.08 2000P5000 0.1 P5000 INPUT 请输入收入: TO PDO CASECASE P800 R=0CASE P2000 R=0.05CASE P=90 ?ACASE X=80 ?BCASE X=70 ?CCASE X=60 ?DOTHERWISE ?EENDCASEINPUT 请输入X值: TO XIF X=90 ?AELSE IF X=80 ?B ELSE IF X=70 ?C ELSE IF X=60 ?D ELSE ?E ENDIF ENDIF ENDIFENDIF.IF ENDIF和DO CASE ENDCASE 必需配

24、对运用,DO CASE与第一个CASE条件表达式之间不应有任何命令。条件表达式可以是各种表达式或函数的组合,其值必需是逻辑值。语句序列可以由一个或多个命令组成,可以是条件控制语句组成的嵌套构造。DO CASE ENDCASE 命令,每次最多只能执行一个语句序列。在多个CASE项的条件表达式值为真时,只执行第一个。运用选择语句应留意的几点.6.2.3 循环构造 一个循环构造普通应具备如下几个条件:1循环的初始条件:给循环变量赋初值;2循环头:循环语句的起始,设置、判别循环条件;3循环尾:循环语句的结尾;4循环体:位于循环头和循环尾之间、循环控制反复执行的语句序列 .循环构造 循环继续表达式循环变

25、量初值表达式要反复执行的语句 循环变量变化表达式下一条语句不满足.循环构造 1DO WHILE循环语句【格式1】DO WHILE ENDDO .【例】编程求123100S=0 &用于累加和I=1 &循环变量DO WHILE I=100 ENDDO? 123100,SS=S+I I=I+1将100改为N呢?N从键盘输入.【例】编程求1-35-7101S=0I=1f=1DO WHILE I=101 s= I= f=-fENDDO? 1-35-7101,Ss=s+i*fi=i+2.记录指针控制的循环实现这种循环的方法:利用逻辑表达式.NOT.EOF()作为控制条件,在循环体内设置指针挪动指令,当记录

26、指针指向表中最后一条记录后面时,条件.not.eof()为.F.,退出循环 DO WHILE NOT.EOF()skip ENDDO.【例】用表记录指针控制循环,编写程序求表JBQK中最高工资和最低工资。clearuse jbqkstore 根本工资 to ma,miDO WHILE .NOT. EOF() ma=max(根本工资,ma) mi=min(根本工资,mi) SKIPENDDO?最高工资=,ma?最低工资=,mireturn.【例】用表记录指针控制循环,编写程序显示表JBQK中男职工的信息。clearuse jbqkDO WHILE .NOT. EOF() if 性别=男 disp

27、lay endif SKIPENDDOusereturn.【格式2】DO WHILE LOOP EXIT ENDDO LOOP语句:强行前往到循环开场语句。EXIT语句:强行跳出循环,接着执行ENDDO后的语句 .【例】编程显示JBQK表中除“何兵以外的一切记录。USE JBQKDO WHILE .NOT. EOF() IF 姓名=何兵SKIPLOOPENDIFDISPLAY SKIPENDDO.【例】输入一个数,判别能否为素数。除1以外,只能被1和它本身整除的自然数叫素数,2是独一的偶素数INPUT 输入一个数: TO Ni=2DO WHILE i=N &以上的DO WHILE循环为正常退出

28、?str(n)+是素数ENDIF.循环构造的实现循环实现要点:(1) 找出什么要反复执行 (2) 反复到何时终了反复步骤: 1 输入一个数 2 对正数求和共反复100次例:从键盘输入100个整数,求其中正数之和。store 0 to s,i,xdo while i0s=s+xendifi=i+1enddo?正数之和为+str(s,3).【格式】FOR = TO STEP LOOPEXIT ENDFOR 2FOR循环语句 .运用FOR循环语句的有关阐明: 省略STEP ,那么步长为默许值1;初值、终值和步长都可以是数值表达式,但这些表达式仅在循环语句开场执行时计算一次。循环语句执行过程中,初值、

29、终值和步长是不会改动的,并由此确定循环的次数; 可以在循环体内改动循环变量的值,但会改动循环执行次数; EXIT和LOOP命令可以出如今循环体内。执行LOOP命令时,终了本次循环,循环变量添加一个步长值,前往FOR循环头判别循环条件能否成立。执行EXIT命令时,程序跳出循环,执行循环尾后面的语句 .for语句循环变量赋初值在范围内?循环体for循环后的语句循环变量+1NYFORENDFOR语句流程图.【例】从键盘输入10个数,编程找出其中的最大值和最小值。SET TALK OFFCLEARINPUT 请从键盘输入一个数: TO ASTORE A TO MAX,MINFOR I=2 TO 10

30、INPUT 请从键盘输入一个数: TO A IF MAXA MIN=A ENDIFENDFOR? 最大值为:, MAX? 最小值为:, MINSET TALK ONRETURN .【例】编程实现123100S=0I=1DO WHILE I=100S=S+I I=I+1ENDDO? SS=0FOR I=1 TO 100S=S+IENDFOR?S.【例】编程求1-35-7101S=0I=1f=1DO WHILE I=M ?M ENDIFENDFOR内循环为:判别能否为素数编程求100以内的素数之和.3SCAN循环控制语句 指针型循环控制语句,即根据用户设置的表中的当前记录指针,决议循环体内语句的执

31、行次数。 SCAN范围FOR条件表达式 语句序列 ENDSCAN DO WHILE .NOT. EOF() IF 条件表达式 语句序列 ENDIF SKIPENDDO等价于:.SCAN语句初设记录指针在范围内?满足FOR条件?LOOPEXIT循环体ENDSCANSCAN循环后的语句记录指针+1NYYN.【例】逐条显示在JBQK表中性别为男的一切记录。USE JBQKDO WHILE .NOT. EOF() IF 性别=男 DISPLAY ENDIF SKIPENDDOUSE JBQKSCAN FOR 性别=男 DISPLAYENDSCAN.4.循环语句总结1三条语句的比较2运用循环语句的要点必

32、需有操作来驱动循环的推进。如for语句里循环变量的自加i=i+1),do while里的skip语句循环必需设定终结条件,以使循环停顿下来。A、假设事先知道循环次数,普通运用DO WHILE或FOR循环。B、假设事先不知道循环的次数,只知道在某一条件满足时终了循环,普通运用DO WHILE循环。C、DO WHILE循环和FOR循环可以用于对表的循环处置,也可以用于其它循环处置,而SCAN循环只用于对表的处置。SCAN循环语句的功能是挪动表内指针,所以不能处置除了表之外的其它问题。D、在循环次数N未知下,三种循环构造均可以用来处置表中记录,但最简单、最方便的构造是ScanEndScan循环构造。

33、 .5多重循环 多重循环即循环的嵌套,是在一个循环构造的循环体中又包含另一个循环。我们称外层循环为外循环,被包含的循环为内循环。嵌套层数普通没有限制,但内循环的循环体必需完全包含在外循环的循环体中,不能相互交叉。正确的嵌套关系如:DO WHILE DO WHILE DO WHILE ENDDO ENDDO ENDDO .X=1DO WHILE X=9Y=1DO WHILE Y=XS=X*Y? STR(Y,1)+*+STR(X,1)+=+STR(S,2)+ Y=Y+1ENDDO?X=X+1ENDDO【例】编程输出下三角形乘法口诀表。FOR X=1 TO 9FOR Y=1 TO XS=X*Y? S

34、TR(Y,1)+*+STR(X,1)+=+STR(S,2)+ ENDFOR?ENDFOR.6.3 多模块程序设计 在程序设计时,常遇到这种情况,在同一个程序的不同处,或在不同程序中反复出现具有一样功能的程序段。假设每次都反复编写,将使程序变得非常冗长,而且浪费存储空间。处理这个问题的方法是单独设计这些共用程序段,需求时再调用。这些共用程序在有些高级言语中称为子程序,在vfp中称为过程。调用过程的程序就称为主程序或调用程序。 调用程序与过程之间的关系是调用关系,调用的特点是:从调用程序中调用过程,在执行完过程后将前往调用程序调用途的下一条语句继续执行。 从构造和调用方法上看,过程分外部过程命令文

35、件、内部过程和函数。建立外部过程的方法与建立源程序(即程序文件)的方法完全一样,其扩展名也是.prg;内部过程是指调用程序尾部所附过程和过程文件中的过程;函数本质上也是一段程序或者一个模块,它与内部过程的区别就在于,函数调用后要有前往值,而过程调用不用前往值。留意:过程文件如今已很少运用。.定义内部过程格式:PROCDURE RETURNENDPROC阐明:过程名必需以字母或下划线开头,字母、数字和下划线的组合;RETURN命令是过程前往命令,控制将转回到调用程序或命令窗口,并前往表达式的值,假设省略表达式,那么前往逻辑值.T.; 缺省RETURN命令,那么自动执行一条隐含的RETURN命令;

36、.定义过程文件过程文件由假设干各自独立的过程组成语法PROCEDURE RETURNENDPROCPROCEDURE RETURNENDPROC .调用过程文件在调用过程之前,必需先翻开过程文件格式SET PROCEDURE TO ,.ADDITIVE功能翻开指定的过程文件。阐明1ADDITIVE表示并不封锁已翻开的过程文件。2调用其他命令文件中的过程要先翻开此命令文件,再用Do 或 ()调用。.封锁过程文件语句当过程文件不再用时应将其封锁,以节省内存空间。格式1:SET PROCEDURE TO功能:封锁一切已翻开的过程文件。格式2:Close /RELEASE PROCEDURE ,. 功

37、能:封锁所指定的过程文件。 .主程序与子程序放在同一个程序文件中格式1: do with 实参1,实参2.do sub1do sub2Return&子程序sub1.prgPROCDURE Sub1ENDPROC&子程序sub2.prgPROCDURE Sub2ENDPROC主程序.子程序存放在另一个程序过程文件中运用Set Procedure To 过程文件名翻开过程文件&翻开过程文件Set Procedure To MyFrocdo sub1do sub2return&主程序&子程序sub1.prgPROCDURE Sub1ENDPROC&子程序sub2.prgPROCDURE Sub2EN

38、DPROC&过程文件MyProc.prg.内部过程(1)clearDo GetAreareturnProcedure GetAreainput Input R= to Rif R0 thenArea=pi()*R*R?圆的面积为Area=+Str(Area,10,2)elsemessagebox(圆的半径必需大于0)endifEndproc.内部过程(2)ClearSet Procedure To MyProcDo GetAreaSet Procedure To&MyProc.prgProcedure GetAreainput Input R= to Rif R0 thenArea=pi()*

39、R*R?圆的面积为Area=+Str(Area,10,2)elsemessagebox(圆的半径必需大于0)endifEndproc.参数传送在过程中接纳参数的命令:命令格式1:PARAMETERS ,命令格式2:LPARAMETERS ,阐明:PARAMETERS 语句只能在过程中运用,且必需作为过程中PROCEDURE语句后的第一条可执行语句。形参的数目不能少于实参的数目,多余的形参变量初值为逻辑假.F.,方式参数与真实参数要类型对应一致PARAMETERS中方式参数只能是变量,且为私有变量, LPARAMETERS 中方式参数为部分变量,过程终了后,即被去除。.调用参数传送1调用程序向被

40、调用过程传送参数的命令:命令格式1: DO WITH ,命令格式2: WITH ,阐明:DO WITH语句中的参数也叫实参实参可以是任何类型的常量、变量和表达式,有多个参数时,各参数之间用逗号分隔。 假设参数表中的内存变量与库文件的字段名一样时,那么内存变量前应冠以m-,以区别同名字段变量,否那么字段变量优先于内存变量。 参数表中的内存变量必需先定义或赋值才干运用。采用命令格式1,实参是常量,按值传送,即把实参的值传给形参;实参是变量,按援用传送,即把实参的地址传给形参;采用命令格式2,默许情况下都以按值方式传送参数,假照实参是变量,可以经过命令SET UDFPARMS重新设置参数传送的方式。.求N!的过程ClearInput 请输入N= To NF=1Do GetJC With N,F?Str(N)+!=

温馨提示

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

评论

0/150

提交评论