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

下载本文档

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

文档简介

第2章VisualFoxPro程序设计基础2.1常量与变量VFP的基本的数据类型包括:

(1)数值型N

数值型数据表示数量,由正(+)负(-)号、数字和小数点组成。

(2)货币型Y

用于表示货币数据时,使用货币型。(3)字符型C

数值型数据由任意字符和汉字组成,用于表示姓名、专业、地址、名称等符号信息,数值性质的信息也可用字符表示。(4)日期型D

日期型用于存储日期数据。日期数据可进行各种数值运算。(5)日期时间型T

日期时间型数据同时保存日期和时间,可放入两者的任一个.(6)逻辑型L

逻辑型数据的值只有真、假两个值。2.1.1常量

常量是在程序运行过程中保持不变的量。

(1)数值型数值型常量是平常的数值常数,它由正号(+)、负号(-)、数字(0~9)和小数点组成,如-6.78。为了表示很大或很小的数值型常量,也可以使用科学记数法形式书写,例如1.6E-12表示1.6×10-12

(2)货币型货币型常量用来表示货币值。表示货币型常量时,需在数字前加上美元符号($)。例如$123。货币数据在存储和计算时,采用4位小数。如果一个货币型常量多于4位小数,那么系统会自动将多余的小数位四舍五入。例如,常量$123.456789将存储为

$123.4568(3)字符型字符型常量是由单引号、双引号和方括号括起来的一串字符,这些字符可以是ASCII字符,也可以是汉字。例如‘计算机’,”123”,[数据]。这里将单引号、双引号和方括号称为定界符。字符串常量的定界符必须成对匹配。

注意:不包含任何字符的字符串(“”)叫空串。空串与包含空格的字符串(“”)不同。【例2.1】显示几个字符型常量在命令窗口键入以下两条命令:?”计算机”,’123’,[数据],[‘ABX’”abc”]??”学习”,’字符串’,””,[表示方法]显示结果如下:计算机123数据‘ABX’”abc”学习字符串表示方法(4)日期型

日期型常量有严格的日期格式和传统的日期格式两种,其定界符都是一对花括号。花括号内包括年、月、日三部分内容,各部分内容之间用分隔符分隔。常用的分隔符有斜杠(/)、连字符(-)、句点(.)和空格符。严格的日期格式{^yyyy-mm-dd}第一个字符必须是脱字符^年份必须是4位(如2001、1999)注意:年月日的次序不能颠倒,不能缺省!例如{^2009-04-17}月,日均为2位传统的日期格式传统日期格式中的月、日各为2位数字,而年份可以是2位数字,也可以是4位数字。{10/08/01}、{10-08-01}、{10082001} 这种格式的日期型常量要受到语句 SETDATETO和SETCENTURYTO设置的影响。(5)日期时间型

日期时间型常量包括日期和时间两部分内容,数据两端用花括号括起,日期时间型常量的格式为{^年/月/日[时:[分[:秒]][上午|下午]]}。{^2009-04-17,11:30AM}(6)逻辑型

.T.、.t.、.Y.、.y.表示逻辑型常量的真。

.F.、.f.、.N.、.n.表示逻辑型常量的假。注意:前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。2.1.2变量

变量名由字符(字母、汉字、_和数字)组成,不能以数字打头。变量名不能使用系统保留字。变量有字段变量及内存变量两种。

每个变量都有一个名字,可以通过变量名访问变量。当出现内存变量与字段变量同名时,若简单地用变量名访问,则系统默认为字段变量。如果要访问内存变量,则必须在变量名前加上前缀M.(或M->),例如M.姓名。(2008年4月真题)如果内存变量和字段变量均有变量名“姓名”,那么引用内存变量的正确方法是()。A)M.姓名B)M->姓名C)姓名D)A)和B)都可以D2.1.2变量

1.变量赋值格式:变量名=值

STORE值TO变量名表

两个变量赋值的语句的差别是前者一次只能将一个值赋给一个变量,后者一次可以将一个值赋给多个变量。【例2.2】变量赋值。

r=10s=3.14159*r*rSTORE“面积”TOs1,s2?r,s,s1,s2 &&?为显示后面的内容(2008年4月真题)在VisualFoxPro中,有如下内存变量赋值语句:

X={^2001-07-2810:15:20PM} Y=.F. M=$123.45 N=123.45 Z="123.24"

执行上述赋值语句之后,内存变量X、Y、M、N和Z的数据类型分别是()。

A)D、L、Y、N、C B)T、L、Y、N、C C)T、L、M、N、C D)T、L、Y、N、SB2.1.2变量

2.显示变量格式1:DISPLAYMEMORY[LIKE<通配符>][TOPRINTER[PROMPT]|TOFILE<文件名>]

格式2:LISTMEMORY[LIKE<通配符>] [TOPRINTER[PROMPT]|TOFILE<文件名>]

显示内存变量名和当前信息。*表示任意多个字符,?表示任意一个字符。

TOPRINTER:显示记录送打印机打印。带PROMPT项,打开打印对话框,在该对话框中对打印机进行设置。

TOFILE文件名:显示记录送到指定的文件中保存,扩展名为.txt。2.1.2变量

格式:

RELEASE

变量名表|ALL[LIKE变量名描述|EXCEPT变量名描述]

格式:

CLEARMEMORY

前者清除命令中描述的内存变量,后者清除所有的内存变量。3.内存变量的释放(2006年9月真题)从内存中清除内存变量的命令是()。

A)Release B)Delete C)Erase D)DestroyA2.1.3数组

数组的定义数组就是变量名相同而下标不同的一组变量。格式:

DIMENSION<数组名>(<下标上限1>[,<下标上限2>])[,…]

DECLARE<数组名>(<下标上限1>[,<下标上限2>])[,…]例如,命令DIMENSIONx(5),y(2,3)定义了两个数组:一维数组x含5个元素:x(1)、

x(2)、

x(3)、

x(4)、

x(5)。二维数组y含6个元素:y(1,1)、y(1,2)、y(1,3)、y(2,1)、y(2,2)、y(2,3)。数组创建后,系统自动给每个数组元素赋以逻辑值.F.可以用一维数组的形式访问二维数组。例如命令DIMENSIONy(2,3)定义了一个二维数组y, 含6个元素:y(1,1)、y(1,2)、y(1,3)、y(2,1)、y(2,2)、y(2,3)。用一维数组的形式可依次表示为:y(1)、y(2)、y(3)、y(4)、y(5)、y(6),其中y(4)与y(2,1)是同一变量。2.1.3数组(2006年4月真题)执行下列命令序列后,最后一条命令的显示结果是

DIMENSIONM(2,2)()

M(1,1)=10 M(1,2)=20 M(2,1)=30 M(2,2)=40 ?M(2)

A)变量未定义的提示

B)10 C)20 D).F.C2.2表达式

表达式是由数据元素和操作符适当连接而成的式子。1.数值表达式数值表达式用于进行数值运算。操作符功

能+,-正负号**,^幂*,/,%乘,除,取余+,-加减优先级从高到低为:+,-号

**,^

*,/,%

+,-。2.2表达式2.字符表达式字符表达式用于进行字符运算。操作符功

能+前后两个字符串首位连接形成一个新的字符串-连接前后两个字符串,将前字符串的尾部空格移到合并后的新字符串尾部$判左侧字符串是否包含在右侧字符串中

优先级从高到低为:+,-$。2.2表达式3.日期时间表达式日期时间表达式用于进行日期运算。

格式结果及类型<日期>+<天数>日期型。指定若干天后的日期。<天数>+<日期>日期型。指定若干天后的日期。<日期>-<天数>日期型。指定若干天前的日期。<日期>-<日期>数值型。指定两个日期相差的天数。<日期时间>+<秒数>日期时间型。指定若干秒后的日期时间。<秒数>+<日期时间>日期时间型。指定若干秒后的日期时间。<日期时间>-<秒数>日期时间型。指定若干秒前的日期时间。<日期时间>-<日期时间>数值型。指定两个日期相差的秒数。(2006年4月真题)表达式{^2005-10-310∶0∶0}-{^2005-10-39∶0∶0}的数据类型是

。数值型(N)2.2表达式4.关系表达式

关系操作符用于进行关系运算

操作符功

能<小于>大于=等于<>,#,!=不等于<=小于等于>=大于等于==字符串精确等于比较关系操作符没有优先级。2.2表达式(1)数值型、货币型按其数值论大小。(2)字符型字符按在字符序列中的排列顺序论大小。VFP中可分为三种情况:

Machine字符序列从小到大为:空格大写字母小写字母一级汉字(按拼音排序)。

PinYin字符序列汉字按拼音排序;对于西文字符从小到大为:空格小写字母大写字母。

Stroke字符序列汉字按笔画排序;对于西文字符从小到大为:空格大写字母小写字母。2.2表达式

(3)日期型按日期论大小,日期或时间越往前越小。例如,{^2009-04-01}<{^2009-05-01}(4)逻辑型假小于真。即.F.<.T.2.2表达式5.逻辑表达式

逻辑表达式用于进行逻辑运算

操作符功

能.NOT.或!逻辑非.AND.逻辑与.OR.逻辑或优先级从高到低为:.NOT.,!.AND..OR.(2006年4月真题)设X=“11”,Y=“1122”,下列表达式结果为假的是()。

A)NOT(X==Y)AND(X$Y) B)NOT(X$Y)OR(<>Y) C)NOT(X>=Y) D)NOT(X$Y)D2.2表达式6.综合表达式的运算优先级

首先执行:数值运算符,字符运算符,日期运算符其次执行:关系运算符

最后执行:逻辑运算符2.3常用函数

1.数值函数

INT(n) 取数值n的整数部分。CEILING(n) 返回大于或等于数值n的最小整数。FLOOR(n) 返回小于或等于数值n的最大整数。SQRT(n) 求n的算术平方根。

ABS(n) 返回n的绝对值。MAX(n1,n2[,…])求n1,n2,…中数值最大的。MIN(n1,n2[,…])求n1,n2,…中数值最小的。

MOD(n1,n2) 求n1/n2的余数。ROUND(n1,n2)将n1的值按n2位四舍五入。

MOD(n1,n2) 求n1/n2的余数其中:n1是被除数,n2是除数。余数的正负号与除数相同。如果被除数与除数同号,那么函数值即为两数相除的余数;如果被除数与除数异号,则函数值为两数相除的余数再加上除数的值。2.3常用函数2.3常用函数【例2.3】数值函数应用。

?INT(680.34) &&显示680?SQRT(9) &&显示3.00?MAX(2,4.5,-100) &&显示4.5?MOD(26,10) ,MOD(23,-5) &&显示6-2?ROUND(1536.2854,3) &&显示1536.285?ROUND(1536.2854,2) &&显示1536.29?ROUND(1536.2854,0) &&显示1536?ROUND(1536.2854,-1) &&显示15402.3常用函数2.字符函数

LEN(c) 返回字符串c的长度(字符数)

SPACE(n)返回n个空格的字符串。LEFT(s,n) 取字符串s左边n个字符。RIGHT(s,n) 取字符串s右边n个字符。

SUBSTR(s,n1,n2)取字符串s第n1个字符开始n2个字符。

TRIM(s)

去掉字符串s右边的空格字符。

LTRIM(s)

去掉字符串s左边的空格字符。

ALLTRIM(s)

去掉字符串s左右两边的空格字符。AT(s1,s2,n)返回字符串s1在字符串s2中第n次出现 的位置。没有定位到则返回0。STUFF(s1,n1,n2,s2)

用s2替换s1中从第n1位开始,长度为n2的一个子串。【例2.4】 STORE‘GOODBYE!’TOs1 STORE‘MORNING’TOs2 ?STUFF(s1,6,3,s2),STUFF(s1,1,4,s2)

GOODMORNINGMORNINGBYE!2.3常用函数(2008年9月真题)

LEFT(“12345.6789”,LEN(“子串”))的计算结果是

。2.(2008年4月真题)有如下赋值语句:a=“计算机”,b=“微型”,结果为“微型机”的表达式是()。

A)b+LEFT(a,3) B)b+RIGHT(a,1) C)b+LEFT(a,5,3) D)b+RIGHT(a,2)3.(2008年4月真题)下列程序段执行后,内存变量s1的值是()。

s1="network" s1=stuff(s1,4,4,"BIOS") ?s1 A)networkB)netBIOSC)netD)BIOS1234DB4.(2007年9月真题)命令?LEN(SPACE(3)-SPACE(2))的结果是A)1()

B)2 C)3 D)5

D

5.(2007年4月真题)?AT(“EN”,RIGHT(“STUDENT”,4))的执行结果是

2

2.3常用函数3.日期函数

DATE() 返回当前日期。TIME() 返回当前时间字符串“hh:mm:ss”。DATETIME()返回当前日期时间。

YEAR(d) 返回日期d年的数值。MONTH(d)返回日期d月的数值。

DAY(d) 返回日期d日的数值。

HOUR(t) 返回日期时间t的小时部分(24小时制)。

MINUTE(t)返回日期时间t的分钟部分。

SEC(t)返回日期时间t的秒数部分。2.3常用函数4.数据类型转换函数CTOD(s) 将日期字符串s转换为日期。CTOT(s) 将时间字符串s转换为时间。

DTOC(d) 将日期d转换为日期字符串。

TTOC(t) 将时间t转换为时间字符串。

&<字符型变量>[.] 替换出字符型变量的内容。6.(2006年4月真题)在VisualFoxPro中,宏替换可以从变量中替换出()。

A)字符串 B)数值

C)命令 D)以上三种都可能7.(2005年9月真题)依次执行下列命令后的输出结果是

SETDATETOYMD()。

SETCENTURYON SETCENTURYTO19ROLLOVER10 SETMARKTO"." ?CTOD("49-05-01") A)49.05.01 B)1949.05.01 C)2049.05.01 D)出错DB2.3常用函数5.测试函数

BETWEEN(<表达式T>,<表达式L>,<表达式H>)

判断<表达式T>是否在<表达式L>和<表达式H>之间。ISNULL(<表达式>)

判断表达式的结果是否为NULL值。EMPTY(<表达式>)

判断表达式的结果是否为“空”值。IIF(<条件表达式>,<表达式1>,<表达式2>)

当条件表达式为.T.时,函数取表达式1的值;当条件表达式为.F.时,函数取表达式2的值。VARTYPE(<表达式>[,<逻辑表达式>])

测试表达式的类型,返回一个大写字母。8.(2006年4月真题)在下列的VisualFoxPro表达式中,运算结果不为逻辑真的是()。

A)EMPTY(SPACE(0)) B)LIKE(′xy*′,′xyz′) C)AT(′xy′,′abcxyz′) D)ISNULL(.NULL.)9.(2005年9月真题)下列VisualFoxPro表达式中,运算结果为逻辑真的是()。

A)EMPTY(.NULL.) B)LIKE(′xy?′、′xyz′) C)AT(′xy′、′abcxyz′) D)ISNULL(SPACE(0))CB10.(2007年9月真题)命令?VARTYPE(TIME())的结果是()。

A)C B)D C)T D)出错11.(2006年9月真题)设X=6<5,命令?VARTYPE(X)的输出是()。

A)N B)C C)L D)出错ACVisualFoxPro程序文件,是一个以(.PRG)为扩展名的文本文件。任何可以建立、编辑文本文件的工具,都可以创建和编辑VisualFoxPro程序文件。这些文本编辑工具,可以是VisualFoxPro系统提供的内部编辑器,也可以是其它常用文本编辑软件。2.4程序与程序文件2.4.1程序的概念建立、编辑程序文件有两种方式:1.命令方式

MODIFYCOMMAND〈程序文件名〉2.菜单方式打开“文件”菜单,选择“新建”;在“新建”窗口,选择“程序”,再选择“新建文件”;在“程序文件”编辑窗口,输入程序文件,并保存,此时建立程序文件的操作结束。2.4.2程序文件的建立与执行

调用程序文件,即运行程序文件,是程序文件建立的最终目的。在VisualFoxPro系统中,调用程序文件有很多方法,在这里仅介绍其中两种方法。1.命令方式 在Command窗口中,输入如下命令,则程序文件被调用。

DO〈程序文件名〉2.菜单方式 以菜单方式调用程序文件,操作方法如下:

(1)在VisualFoxPro系统主菜单下,打开“程序”菜单,选择“运行”。(2)在“运行”窗口,输入被调用的程序文件名即可。2.4.2程序文件的建立与执行

1.(2008年9月真题)ModifyCommand命令建立的文件的默认扩展名是()。 A)prg B)app C)cmd D)exe2.(2008年9月真题)欲执行程序temp.prg,应该执行的命令是()。 A)DOPRGtemp.prg B)DOtemp.prg

C)DOCMDtemp.prg D)DOFORMtemp.prg

ABInput<提示信息>to<内存变量>从键盘上接受输入,但不能不输入任何内容;<提示信息>为字符表达式,起提示说明作用;可接受的数据类型:字符型、数值型、逻辑型、日期型、日期时间型输入字符常量必须加定界符,逻辑型常量必须用圆点定界,日期型和日期时间型要用严格的日期格式。2.4.3

简单的输入输出命令

2.4.3

简单的输入输出命令例:clearinput"请输一个字符数据"toa?"a的数据类型是"??vartype(a)ifvartype(a)<>"C"waitwindows"数据类型错误"at10,10endif

2.4.3

简单的输入输出命令accept

<提示信息>to<内存变量>只能接受字符串,输入时不需要加定界符如果不输入任何内容而直接按回车键,系统会把空串赋给指定的内存变量。例:accept"输入字符数据"toa?"a的数据类型是"??vartype(a)2.4.3

简单的输入输出命令wait<提示信息>to<内存变量>不指定提示信息,则默认为“按任意键继续…”如果指定了window子句,则出现一个提示框使用timeout子句设定等待时间2.4.3

简单的输入输出命令例:clearwaitwait"你好!"waitwindowswaitwindows"你好!"waitwindowsat5,5waitwindowsat5,50nowaitwaitwindowsat5,5timeout5waittoswindowat10,10timeout5顺序结构由一系列语句组成,程序运行时按顺序执行语句。【例2.5】一个简单的求ax2+bx+c=0的方程的解程序。a=2b=1c=-1TEMP=b*b-4*a*cx1=(-b+SQRT(TEMP))/(2*a)x2=(-b-SQRT(TEMP))/(2*a)?x1,x2 &&显示-0.5000-1.0000

建立程序文件123.PRG:

MODICOMM1232.5程序的基本结构简单的求ax2+bx+c=0方程解程序

执行程序文件123.PRGDO123主窗口显示:-1.0000 -4.00002.5.1选择结构

选择结构就是如果条件成立,执行指定的语句序列。选择结构语句包括IF分支和CASE分支。

1.简单形式的条件语句语法格式:

IF<条件表达式> <语句序列1>ENDIF功能:若条件表达式为.T.,则执行语句序列1,然后转向ENDIF的下一条语句;否则直接转向ENDIF的下一条语句去执行。if条件语句序列1endif语句序列2假真例:从键盘上输入两个数,按从小到大的顺序输出。开始输出a,ba>b第一个数->a第二个数->b不成立成立输出b,aInput“输入第一个数:”toaInput“输入第二个数:”tobIf(a>b)?b,aendif?a,b语法格式:

IF<条件表达式> <语句序列1> ELSE <语句序列2> ENDIF

2.5.1选择结构2.一般形式的条件语句功能:若条件表达式为.T.,执行语句序列1,否则执行语句序列2。if条件语句序列1endif语句序列3语句序列2

真1.(2005年9月真题)下列程序段的输出结果是(

)。

ACCEPTTOA IFA=[123456]

S=0 ENDIF S=1 ?S RETURN A)0 B)1 C)由A的值决定 D)程序出错B2.下面程序的运行结果是()。(2008年4月真题)

SETEXACTON s="ni"+SPACE(2) IFs="ni" IFs="ni" ?"one" ELSE ?"two"ENDIF ELSE IFs="ni" ?"three" ELSE ?"four" ENDIF ENDIF RETURN A)one B)two C)three D)fourC先在较短字符串尾部加上若干空格3.多分支语句DOCASE...ENDCASE语法格式:

DOCASE CASE<条件1><语句行序列1> CASE<条件2><语句行序列2>

…………… CASE<条件n><语句行序列n> [OTHERWISE<语句行序列>] ENDCASE2.5.1选择结构真endcase后的语句语句序列1语句序列2语句序列n条件1条件2条件notherwise语句序列假假假真真有2.5.2循环结构循环结构是在指程序执行过程中,其中的某段代码被重复执行若干次。1.DOWHILE—ENDDO语句语句格式:dowhile<条件><命令序列>enddo语句序列中遇到退出循环语句EXIT,退出循环体,执行ENDDO后面的语句。这些规则也适用FOR循环和SCAN循环。dowhile条件enddo后面的语句循环体真假例:求S=1+2+…+100clears=0i=1dowhilei<=100s=s+ii=i+1enddo?“S=“,sreturnYi=i+1NY开始打印ss=0i=1结束s=s+ii<=1001.下列程序显示的结果是

。(2005年4月真题)

s=1 i=0 dowhilei<8 s=s+i

i=i+2

enddo ?s132.(2008年9月真题)(2006年9月真题)下列程序段执行以后,内存变量y的值是()。

x=76543 y=0 DOWHILEx>0 y=x%10+y*10 x=int(x/10) ENDDO A)3456 B)34567C)7654D)765433.(2008年4月真题)下列程序段执行以后,内存变量y的值是()。

CLEAR x=12345 y=0 DOWHILEx>0 y=y+x%10 x=int(x/10) ENDDO ?y A)54321 B)12345C)51D)15BD4.(2007年9月真题)下面程序计算一个整数的各位数字之和,在下划线处应填写的语句是()。

SETTALKOFF INPUT"x="TOx s=0 DOWHILEx!=0 s=s+MOD(x,10)

ENDDO

?s SETTALKON A)x=int(x/10) B)x=int(x%10) C)x=x-int(x/10) D)x=x-int(x%10)A显示VFP命令执行的状态。不显示VFP命令执行的状态。5.(2007年4月真题)执行下列程序,显示的结果是

one="WORK" two="" a=LEN(one) i=a DOWHILEi>=1 two=two+SUBSTR(one,i,1) i=i-1 ENDDO ?twoKROW

2.5.2循环结构2.FOR—ENDFOR语句语句格式:

for<循环变量>=<初值>to<终值>step<步长>

<循环体>

endfor|next只要变量的值小于等于终值,重复执行循环体中的语句序列。具体执行步骤如下:(1)给变量赋初值;(2)判断循环变量的值是否小于等于终值;(3)若不是,则循环结束;(4)若是,则执行语句序列;(5)变量=变量+步长,(若省略STEP,则步长=1);(6)转(2)。2.5.2循环结构循环变量加步长循环变量和终值比较endfor后面的语句循环体给循环变量赋初值假真2.5.2循环结构3.SCAN—ENDSCAN语句scan[<范围>][for<条件1>][where<条件2>]<循环体>

endsacn<范围>的默认值为ALL。1.(2005年4月)在VisualFoxPro中,如果希望跳出SCAN…ENDSCAN循环体,执行ENDSCAN后面的语句,应使用()。A)LOOP语句B)EXIT语句C)BREAK语句D)RETURN语句2.(2005年9月)在VisualFoxPro中,可以使用

语句跳出SCAN...ENDSCAN循环体外执行ENDSCAN后面的语句。BEXIT

2.6多模块程序设计

程序模块语句1211232232程序由语句和模块组成模块是一个独立的程序段,可以被其他模块和程序调用,也可以调用其他模块2.6.1模块的定义和调用模块可以是子程序,也可以是过程。子程序和前面讲的程序一样是一个独立的.PRG文件。可以被主程序和其他子程序调用。过程是能够完成某项功能的一段程序代码,可以放在程序代码的后面,也可以保存在单独文件里,叫做过程文件其扩展名也是.PRG。procedure<过程名>……endprocfunction<过程名>……endfunc必须以字母和下划线开头1.模块及其定义2.模块的调用格式1:

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

格式2:

在名字后面加一对小括号

<文件名>|<过程名>()2.6.1模块的定义和调用过程可存放在下列位置:(1)一个独立的程序的结束语句后面可同时存放多个过程,包含该过程的程序可直接调用该过程。

(2)在一个过程文件中,集中存放多个过程。要调用过程文件中的过程,首先要打开过程文件,一旦过程文件被打开,那么其中的所有过程都可以被调用。格式:SETPROCEDURETO[过程文件名表][ADDITIVE]系统可同时打开多个过程。选ADDITIVE,在打开当前过程文件时原先的过程不关闭。不再使用过程文件时用RELEASEPROCEDURE命令关闭指定过程文件。2.6.1模块的定义和调用格式1:PARAMETERS变量名表格式2:LPARAMETERS变量名表VFP中,参数传递有下列两种方法:(1)按引用方式传递调用程序通过引用方式向过程传送变量和数组。如果在被调用的过程中一个值被改变,则新的值被送回调用程序的相关的变量或数组中。(2)按赋值方式传递如果要通过赋值方式向过程传送变量或数组,被调用的过程中任何参数的改变都不会传送到调用程序相关的变量或数组中。2.6.2参数传递传递参数的语句(用在主程序中)do

文件名或过程名with

实参文件名或过程名(实参)接受参数的语句(与传递参数的do语句配合使用,放在被调用模块中作为第一条执行语句)parameters

形参2.6.2参数传递clearm=1n=2doAA?m,nprocedureAAm=100n=200returnendprocclearm=1n=2doAAwithmc=AA(n)?m,n,cprocedureAAparametersxx=100returnxendproc格式1格式2如果采用格式1,则:如果

温馨提示

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

评论

0/150

提交评论