第八章VF程序设计基础_第1页
第八章VF程序设计基础_第2页
第八章VF程序设计基础_第3页
第八章VF程序设计基础_第4页
第八章VF程序设计基础_第5页
已阅读5页,还剩58页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、1,第六章,程序设计基础,2,Visual FoxPro,的工作方式,Visual FoxPro,系统提供有三种工作方式:即单命令,方式、菜单方式及程序文件方式。,1.,单命令方式,Visual FoxPro,单命令方式是利用,Command,窗口来实,现的。用户通过,Command,窗口输入命令,并执行操作。,在,Command,窗口中,可以输入单个的操作命令和系统命,令,完成对数据库的操作管理和系统环境的设置;也可,以建立命令文件及运行命令文件。,Command,窗口不仅是,Visual,FoxPro,命令的执行窗口,,也是,Visual,FoxPro,命令文件的编辑窗口。,所谓单命令方式

2、,即输入一条命令,完成一个操作的,工作方式。,3,2.,菜单方式,在,Visual FoxPro,环境下,也可以通过系统提供的菜单,选项,对数据库资源进行操作管理和对系统环境进行设置;,并通过菜单建立命令文件及运行命令文件。所谓菜单方式,,即通过打开不同的菜单选择并完成不同的操作。我们在以,前各章所讲的内容其实都可说是菜单方式。,3.,程序文件方式,程序文件(简称程序)也叫做命令文件。运用程序文件,方式进行数据库管理,是通过程序文件编辑工具,将对数,据库资源进行操作管理的命令和对系统环境进行设置的命,令,集中在一个以(,.PRG,)为扩展名的命令文件中,然后,再通过菜单方式或命令方式运行该命令

3、文件。所谓命令方,式,即通过程序文件中的命令完成不同的操作。,4,程序文件的建立、修改与执行,1,建立或修改程序文件,可用两种方式调用系统内置的文本编辑器建立或修,改程序文件,:,命令方式,MODIFY,COMMAND,盘符,路径,程序文件,名,或,MODIFY,FILE,盘符,路径,程序文件名,菜单方式,打开“文件”菜单,选择“新建”;在“新建”,窗口,选择“程序”,再选择“新建文件”,5,2,保存程序,程序输入、编辑完毕,单击【文件】,|,【保存】菜单项,,或按,Ctrl+W,复合键,在“另存为”对话框中指定程,序文件的存放位置和文件名,并单击“保存”按钮保,存程序文件并退出文本编辑器。程

4、序文件的默认扩展,名是,.PRG,。,6,3,执行程序,程序文件建立后,可以用多种方式、多次执行它。下面是两,种常用的方式。,(,1,)菜单方式,单击【程序】,|,【运行】菜单项,打开“运行”对话框;,从文件列表框中选择要运行的程序文件,并单击“运,行”命令按钮,启动运行该程序文件,(,2,)命令方式,【格式】,DO,盘符,路径,文件名,【功能】执行指定,盘符,、,路径,下的程序文件,7,执行程序文件时,将依次执行文件中的命令,直到所有命令,执行完毕,或者执行到以下命令:,CANCAL,:终止程序运行,清除所有的私有变量,返回,命令窗口;,RETURN,:结束程序执行,返回调用它的上级程序,若

5、,无上级程序则返回命令窗口;,QUIT,:结束程序执行并退出,Visual FoxPro,系统,返,回操作系统,8,简单的输入输出命令,1.,赋值命令,【格式】,STORE ,表达式表, TO ,内存变量名表,或,内,存变量,=,表达式,【功能】给内存变量赋值。它可以同时给多个变量赋值,,但,内存变量,=,表达式,命令只能给一个变量赋值。,2,ACCEPT,命令,【格式】,ACCEPT,提示信息,TO,内存变量,【功能】在程序执行过程中,将用户交互式输入的内容作,为字符串赋值给指定内存变量。,该命令只接受字符型数据,输入的字符串不需要加定界符。,9,【例】编程从键盘输入某数据库的文件名,要求打

6、开该数据,库并显示其内容。程序文件名为,PROG2.PRG,。,MODI,COMMAND,PROG2,SET,TALK,OFF,CLEAR,ACCEPT,“,请输入数据库名:”,TO,AAA,OPEN,DATABASE,&AAA,ACCEPT,请输入表名,TO,BBB,USE,&BBB,LIST,USE,SET,TALK,ON,RETURN,10,3,INPUT,命令,【格式】,INPUT,提示信息,TO,内存变量,【功能】在程序执行过程中,将用户交互式输入的内,容赋值给指定内存变量。,可以输入字符型、数值型、逻辑型、日期型和日期时,间型等类型数据,而且可以是常量、变量、函数或表达式,等形式,

7、按回车键结束输入,系统将输入的数据赋值给,内存变量,。,11,【例】从键盘输入两个任意正数,编程求以两数为边长的,长方形面积。程序文件名为,PROG4.PRG,SET,TALK,OFF,CLEAR,INPUT,“,长方形一边的长为:”,TO,A,INPUT,“,长方形另一边的长为:”,TO,B,S=A*B,?,“,长方形的面积为:”,S,SET,TALK,ON,RETURN,12,4,WAIT,命令,?,【格式】,WAIT,提示信息,TO,内存变量,?,【功能】显示提示信息,暂停程序执行,直到用户按任意键,或单击鼠标时继续执行程序。,?,若选择可选项,TO,内存变量,,将输入的单个字符作为字,

8、符型数据赋给指定的,内存变量,;若用户是按,Enter,键或单击,鼠标,,内存变量,的值为空串。,?,若省略所有可选项,屏幕显示“键入任意键继续,”,默认提,示信息,13,【例】在,STUDENT,数据库的,STUD,表中显示任意一个系学,生的情况。程序文件名为,PROG6.PRG,SET,TALK,OFF,CLEAR,OPEN,DATABASE,STUDENT,USE,STUD,WAIT,“,请输入待查学生的系号(,1,3,):”,TO,N,IF,VAL(N)1,.OR.,VAL(N)3,WAIT,“,输入无效,结束程序运行!”,WINDOW,TIMEOUT,5,RETURN,ELSE,ST

9、ORE,“,0,”+N,TO,AAA,LIST,FOR,系别号,=AAA,ENDIF,CLOSE,DATABASE,SET,TALK,ON,RETURN,14,5,三条输入命令的异同,?,ACCEPT,命令只能接受字符型数据,不需定界符,,输入完毕按回车键结束;,?,WAIT,命令只能输入单个字符,且不需定界符,,输入完毕不需按回车键;,?,INPUT,命令可接受数值型、字符型、逻辑型、日,期型和日期时间型数据,数据形式可以是常量、,变量、函数和表达式,如果是字符串,需用定界,符,输入完毕按回车键结束。,15,定位输入命令,【格式】,行,列,SAY,提示信息,GET,变量,READ,【功能】在

10、屏幕指定的行列位置输入数据。,说明,:,行,列,SAY,提示信息,GET,变量,注意,:,该命令必须与,READ,配合使用,.,16,输出命令,1.,非格式输出,:?,或,?,2.,格式输出,:,行,列,SAY,表达式,3.,文本输出,:,TEXT,输出文本,ENDTEXT,17,常用其它命令,1.,清屏命令,:CLEAR,2.,返回命令,:RETURN,3.,终止程序执行,:CANCEL,4.,退出系统,:QUIT,5.,注释命令,【格式,1,】,NOTE,注释内容,【格式,2,】,*,注释内容,【格式,3,】,&,注释内容,【功能】增强程序文件的易读性或放弃,注释内容,中语句的执行,18,

11、环境设置命令,1.,对话开关语句,【格式】,SET,TALK,OFF|ON,【功能】关闭或打开命令执行时的对话开关,2.,19,程序的基本结构,Visual FoxPro,系统提供的命令丰富,且功能强大,把,这些命令和程序设计语句有效地组织在一起,就形成了实现,某一特定功能的程序。,Visual FoxPro,系统的程序有两个特点:一是程序控制,流模式,由顺序、分支、循环三种基本结构构成。二是面向,对象可视化的结构程序模块,在每个模块的内部也是由程序,控制流组成。常见的控制结构如下:,1,顺序结构,顺序结构是在程序执行时,根据程序中语句的书写顺序,依次执行的命令序列。,Visual FoxPr

12、o,系统中的大多数命令,都可以作为顺序结构中的语句。,2,分支结构是在程序执行时,根据不同的条件,选择执行,20,3,循环结构,循环结构则能够使某些语句或程序段重复执行若干次。如,果某些语句或程序段需要在一个固定的位置上重复操作,使用,循环是最好的选择。,4,过程结构,在许多应用程序中,有一些程序段需要反复执行多次,这,些程序段不在一个固定的位置上,而是分散在程序的许多位置,上重复执行,可将其与嵌入它的程序分开,形成独立的程序序,列,待使用时再调入程序中,以实现不同位置上的重复操作。,这样做增强了程序的可读性和模块化。我们称这种具有独立功,能而且可以被其它程序调用的程序序列为过程。,注意,:,

13、Visual,FoxPro,程序是命令行的序列,每个命令都以回车键结束,,一行只能写一条命令;若一条命令太长,一行写不下,也可分,行书写,并在分行处加上续行符“;”,再按回车键。,21,顺序结构,例,:,统计,XS,表中的学生数,例,:,查看,CJ,表中学号为,2000105,的同学所修课,程及成绩,.,例,:,将,KC,表中课程号为,03,的课程名修改为”现,代信息技术与,CAI,”,22,分支结构形式有如下三种:,1,单向分支语句,即根据用户设置的条件表达式的值,决,定某一操作是否执行。,(,1,)语句格式:,IF,条件表达式,命令行序列,ENDIF,(,2,)语句功能:,该语句首先计算条

14、件表达式的值,当条件表达式,的值为真时,执行命令行序列;否则,执行,ENDIF,后,面的第一条命令,。,分支结构,条件式,真,语句序列,假,ENDIF,之后语句,23,【例,7,】求一元二次方程,AX,2,BX,C,0,的实根。程序文件,名为,PROG7.PRG,。,SET,TALK,OFF,CLEAR,INPUT,TO,A,INPUT,TO,B,INPUT,TO,C,Z,B2-4*A*C,IF,Z=0,X1=(-B+SQRT(Z)/(2*A),X2=(-B-SQRT(Z)/(2*A),?,X1,X2,ENDIF,SET,TALK,ON,RETURN,24,2,双向分支语句,即根据用户设置的条

15、件表达式的值,选择,两个操作中的一个来执行。,(,1,)语句格式:,IF,条件表达式,命令行序列,1,ELSE,命令行序列,2,ENDIF,(,2,)语句功能:,该语句首先计算条件表达式的值,当条件表达式,的值为真时,执行命令行序列,1,中的命令;否则,执行,命令行序列,2,中的命令;执行完命令行序列,1,或命,令行序列,2,后都将执行,ENDIF,后面的第一条命令。,真,条件式,假,语句序列,2,语句序列,1,ENDIF,后面语句,25,【例,10,】编写一密码校验程序(假设密码为,ABC,)。程序文,件名为,PROG10.PRG,。,SET,TALK,OFF,CLEAR,ACCEPT,“,

16、请输入您的密码:”,TO,AAA,IF,AAA=”ABC”,CLEAR,?,”,欢迎使用本系统!”,ELSE,?”,密码错误!”,WAIT,QUIT,ENDIF,SET,TALK,ON,26,3,多向分支,多向分支语句,即根据多个条件表达式的值,选,择执行多个操作中的一个对应执行,。,(,1,)语句格式:,DO CASE,CASE,条件表达式,1,命令行序列,1,CASE,条件表达式,2,命令行序列,2,CASE,条件表达式,N,命令行序列,N,OTHERWISE,命令行序列,N+1,ENDCASE,真,条件式,2,语句序列,1,ENDCASE,后面语句,条件式,1,Otherwise,条件式

17、,2,真,语句序列,2,真,语句序列,n-1,有,语句序列,n,无,27,(,2,)语句功能:,该语句根据给出的,N,个条件表达式的值,选,择,N+1,个命令行序列中的一个执行。当所有,CASE,中条件表达式的值都是假时,如果有,OTHERWISE,项,则执行命令行序列,N+1,,再执行,ENDCASE,后,面,的,第,一,条,命,令,;,否,则,,,直,接,执,行,ENDCASE,后面的第一条命令。,28,【例】假设收入(,P,)与税率(,R,)的关系如下表,编程求税金。,程序文件名为,PROG12.PRG,。,0,P,800,R=,0.05,800,P,2000,0.08,2000,P,5

18、000,0.1 P5000,SET,TALK,OFF,CLEAR,INPUT,“,请输入收入:”,TO,P,DO,CASE,CASE,P800,R=0,CASE,P2000,R=0.05,29,CASE,P5000,R=0.08,OTHERWISE,R=0.1,ENDCASE,TAX=P*R,?,”,税金为:”,TAX,SET,TALK,ON,RETURN,30,4,使用分支语句应注意的几点,(,1,),IF,ENDIF,和,DO,CASE,ENDCASE,必须,配对使用,,DO,CASE,与第一个,CASE,条件表达式之,间不应有任何命令。,(,2,)条件表达式可以是各种表达式或函数的,组合

19、,其值必须是逻辑值。,(,3,)命令行序列可以由一个或多个命令组成,,可以是条件控制语句组成的嵌套结构。,(,4,),DO,CASE,ENDCASE,命令,每次最多只,能执行一个命令行序列。在多个,CASE,项的条件,表达式值为真时,只执行第一个条件表达式值,为真的命令行序列,然后执行,ENDCASE,的后面的,第一条命令。,31,循环结构,1,DO,WHILE,循环语句,【格式,1,】,DO,WHILE,条件表达式,语句序列,ENDDO,ENDDO,后面的语句,条件表达式式,真,循环体,假,一个循环结构一般应具备如下的,条件:,(,1,)循环的初始条件:一般为给,循环控制变量赋初值;,(,2

20、,)循环头:循环语句的起始,,设置、判断循环条件;,(,3,)循环尾:循环语句的结尾;,(,4,)循环体:位于循环头和循环,尾之间、循环控制重复执行的语句,序列,32,【格式,2,】,DO,WHILE,条件表达,式,语句序列,1,LOOP,语句序列,2,EXIT,语句序列,3,ENDDO,ENDDO,后面的语句,条件表达式式,真,假,循环体,LOOP,EXIT,?,LOOP,语句:强行返回到循环开始语句。,?,EXIT,语句:强行跳出循环,接着执行,ENDDO,后的语句,33,【例】编程求,1,2,3,100,之和。程序文件,名为,PROG16.PRG,。,SET,TALK,OFF,CLEAR

21、,S=0,I=1,DO,WHILE,I=100,S=S+I,I=I+1,ENDDO,?,”,1,2,3,100,”,S,SET,TALK,ON,RETURN,34,【例】逐条显示在,STUDENT,数据库的,STUD,表中性别为“男”,的所有记录。程序文件名为,PROG20.PRG,。,SET,TALK,OFF,CLEAR,OPEN,DATABASE,STUDENT,USE,STUD,DO,WHILE,.NOT,.,EOF(),IF,性别,=,”,男”,DISPLAY,ENDIF,SKIP,ENDDO,CLOSE,DATABASE,SET,TALK,ON,RETURN,35,【例】编程显示,S

22、TUDENT,数据库的,STUD,表中除“李宁”以,外的所有记录。程序文件名为,PROG22.PRG,。,SET,TALK,OFF,CLEAR,OPEN,DATABASE,STUDENT,USE,STUD,DO,WHILE,.NOT,.,EOF(),IF,姓名,=,”,李宁”,SKIP,LOOP,ENDIF,DISPLAY,SKIP,ENDDO,CLOSE,DATABASE,SET,TALK,ON,RETURN,36,2,FOR,循环语句,【格式】,FOR,循环变量,=,初值,TO,终,值,STEP,步长,循环体,ENDFOR|NEXT,37,使用,FOR,循环语句的有关说明:,省略,STEP

23、,步长,,则步长为默认值,1,;,初值、终值和步长都可以是数值表达式,,但这些表达式仅在循环语句开始执行时计算一次。循环,语句执行过程中,初值、终值和步长是不会改变的,并,由此确定循环的次数;,可以在循环体内改变循环变量的值,但会改变循环执行,次数;,EXIT,和,LOOP,命令可以出现在循环体内。执行,LOOP,命令,时,结束本次循环,循环变量增加一个步长值,返回,FOR,循环头判断循环条件是否成立。执行,EXIT,命令时,程,序跳出循环,执行循环尾后面的语句,38,【例】从键盘输入,10,个数,编程找出其中的最大值和最小值。程,序文件名为,PROG23.PRG,。,SET,TALK,OFF

24、,CLEAR,INPUT,“,请从键盘输入一个数:”,TO,A,STORE,A,TO,MAX,MIN,FOR,I=2,TO,10,INPUT,“,请从键盘输入一个数:”,TO,A,IF,MAXA,MAX=A,ENDIF,IF,MINA,MIN=A,ENDIF,ENDFOR,?,“,最大值为:”,MAX,?,“,最小值为:”,MIN,SET,TALK,ON,RETURN,39,3,“指针”,“指针”型循环控制语句,即根据用户设置的表中的当,前记录指针,决定循环体内语句的执行次数据。,(,1,),语句格式:,SCAN,范围,FOR,条件表达式,1,WHILE,条件表达式,2,命令行序列,ENDSC

25、AN,(,2,)语句功能:,该语句在指定的范围内,用数据记录指针来控制循环次,数。执行语句时,首先判断函数,EOF,()的值,若其值为,“真”,则结束循环,否则,结合条件表达式,1,或条件,表达式,2,,执行命令行序列,记录指针移到指定的范围,和条件内的下一条记录,重新判断函数,EOF,()的值,直到函,数,EOF,()的值为真时结束循环。,40,【例,30,】输出,STUDENT,数据库的,STUD,表中所有团员的姓名,和地址。程序文件名为,PROG30.PRG,。,SET,TALK,OFF,CLEAR,OPEN,DATABASE,STUDENT,USE,STUD,SCAN,FOR,是否团员

26、,?,姓名,地址,ENDSCAN,CLOSE,DATABASE,SET,TALK,ON,RETURN,41,4,使用循环语句时应注意的几点,(,1,),DO,WHILE,和,ENDDO,、,FOR,和,ENDFOR,、,SCAN,和,ENDSCAN,必须配对使用。,(,2,)命令行序列可以是任何,FoxPro,命令或语句,也,可以是循环语句,即可以为多重循环。,(,3,)循环变量应是数值型的内存变量或数组元素。,(,4,),EXIT,和,LOOP,命令嵌入在循环体内,可以改变循环次,数,但是不能单独使用。,EXIT,的功能是跳出循环,转去执,行,ENDDO,、,ENDFOR,、,ENDSCAN

27、,后面的第一条命令;,LOOP,的功,能是转回到循环的开始处,重新对“条件”进行判断,相,当于执行了一次,ENDDO,、,ENDFOR,、,ENDSCAN,命令,它可以改,变命令行序列中部分命令的执行次数。,EXIT,、,LOOP,可,以出现在命令行序列的任意位置。,42,5,多重循环,多重循环即循环的嵌套,是在一个循环结构的循环体中,又包含另一个循环。我们称外层循环为外循环,被包含,的循环为内循环。嵌套层数一般没有限制,但内循环的,循环体必须完全包含在外循环的循环体中,不能相互交,叉。正确的嵌套关系如,:,DO,WHILE,条件表达式,1,语句序列,11,DO,WHILE,条件表达式,2,语

28、句序列,21,DO,WHILE,条件表达式,3,语句序列,3,ENDDO,语句行序列,22,ENDDO,语句行序列,12,ENDDO,43,【,例,】,编,程,输,出,下,三,角,形,乘,法,口,诀,表,。,程,序,文,件,名,为,PROG27.PRG,。,SET,TALK,OFF,CLEAR,X=1,DO,WHILE,X=9,Y=1,DO,WHILE,Y=X,S=X*Y,?,STR(Y,1)+,”,*,”,+STR(X,1)+,”,=,”,+STR(S,2)+,”,“,Y=Y+1,ENDDO,?,X=X+1,ENDDO,SET,TALK,ON,RETURN,44,过程及过程调用,Visual

29、,FoxPro,与其他高级语言一样,支持结构化程序设,计方法,允许将若干命令或语句组合在一起作为整体调用,这,些可独立存在并可整体调用的命令语句组合称为过程,。,1.,调用过程语句,即执行已有的过程。,语句格式:,DO,过程名,WITH,参数表,语句功能:执行以过程名为名的过程。,2.,过程返回语句,即返回过程的调用处。,语句格式:,RETURN,TO,MASTER,TO,过程名,语句功能:将控制返回到调用程序中调用命令的下一语句。,45,外部过程,外部过程也叫子程序,和主程序一样是以程序文件(,.PRG,)的,形式单独存储在磁盘上,【例】分别建立如下程序文件,,*,MAIN.PRG,SET,

30、TALK,OFF,?,”,正在执行主程序”,DO,SUB1,SET,TALK,ON,*SUB1.PRG,?,”,正在执行,SUB1,”,RETURN,46,内部过程,?,内部过程:把多个过程组织在一个文件中,(,这个文件称之为,过程文件,),,或者把过程放在调用它的程序文件的末尾。,?,Visual FoxPro,为了识别过程文件或者程序文件中的不同过,程,规定过程文件或者程序文件中的过程必需用,PROCEDURE,语句说明。其格式为:,PROCEDURE,过程名,命令序列,RETURN ,表达式,47,过程放在程序文件中,【例】建立如下程序文件,,*,MAIN.PRG,SET,TALK,OF

31、F,?,”,正在执行主程序”,DO,SUB1,SET,TALK,ON,Procedure,SUB1,?,”,正在执行,SUB1,”,RETURN,48,过程文件的建立,过,程,文,件,的,建,立,方,法,与,程,序,文,件,相,同,。,可,用,MODIFY,COMMAND,过程文件名,命令或调用其他文字编辑软件来建立。,过程文件的结构一般为:,PROCEDURE,过程名,1,命令序列,1,RETURN,PROCEDURE,过程名,2,命令序列,2,RETURN,PROCEDURE,过程名,N,命令序列,N,RETURN,49,1,过程文件的调用,调用某过程文件中的过程时,必须先打开该过程文件,

32、,打开过程文件命令为:,【格式】,SET,PROCEDURE,TO,过程文件名,任何时候系统只能打开一个过程文件,当打开一个新的,过程文件时,原已打开的过程文件自动关闭。,2,过程文件的关闭,关闭过程文件可用下列命令:,【格式一】,SET,PROCEDURE,TO,【格式二】,CLOSE,PROCEDURE,50,【例,32,】用过程文件实现对,STUDENT,数据库的,STUD,表进行查询、删除和插入操作。,主程序如下:,*,PROG32,&,主程序文件名,SET,TALK,OFF,CLEAR,OPEN,DATABASE,STUDENT,SET,PROCEDURE,TO,PROCE,&,打开

33、过程文,USE,STUD,INDEX,ON,姓名,TO,XM,DO,WHILE,.T,.,&,显示菜单,CLEAR,2,20,SAY,“,学籍管理系统”,4,20,SAY,“,A:,按姓名查询”,6,20,SAY,“,B:,按记录号删除”,51,8,20,SAY,“,C:,插入新的记录”,10,20,SAY,“,D:,退出”,CHOISE=,”,”,12,20,SAY,”,请选择,A,、,B,、,C,、,D,:”,GET,CHOISE,READ,DO,CASE,CASE,CHOISE=,”,A,”,DO,PROCE1,CASE,CHOISE=,”,B,”,DO,PROCE2,CASE,CHOI

34、SE=,”,C,”,DO,PROCE3,CASE,CHOISE=,”,D,”,EXIT,ENDCASE,ENDDO,SET,PROCEDURE,TO,&,关闭过程文件,CLOSE,DATABASE,SET TALK ON,52,过程文件如下:,*,PROCE.PRG,&,过程文件名,PROCEDURE,PROCE1,&,查询过程,CLEAR,ACCEPT,”,请输入姓名:”,TO,NAME,SEEK,NAME,IF,FOUND(),DISPLAY,ELSE,?,”,查无此人”,ENDIF,WAIT,RETURN,53,PROCEDURE,PROCE2,&,删除记录过程,CLEAR,INPUT,

35、”,请输入要删除的记录号,:,”,TO,N,GO,N,DELETE,WAIT,”,物理删除吗,Y/N:,”,TO,FLAG,IF,FLAG=,”,Y,”,.OR.,”,y,”,PACK,ENDIF,RETURN,PROCEDURE,PROCE3,&,插入新的记录过程,CLEAR,APPEND,RETURN,54,过程调用中的参数传递,1,有参过程中的形式参数定义,有参过程中的形式参数定义语句为:,【格式】,PARAMETERS,参数表,该语句必需是过程中第一条语句。,参数表,中,的参数可以是任意合法的内存变量名,55,2,程序与被调用过程间的参数传递,程序与被调用过程间的参数传递是通过过程调用

36、语句,DO,过程名,WITH,参数表,中,WITH,参数表,子句来实现的。,【说明】,(,1,),DO,命令,参数表,中参数称为实际参数,,PARAMATERS,命,令,参数表,中的参数称为形式参数。两个,参数表,中的参数,必须相容,即个数相同,类型和位置一一对应;,(,2,)实际参数可以是任意合法表达式,形式参数是过程中的局部,变量,用来接收对应实际参数的值;,(,3,),Visual FoxPro,的参数传递规则为:如果实际参数是常数或,表达式则传值,如果实际参数是变量则传址,即传递的不是实,参变量的值而是实参变量的地址,这样,过程中对形参变量值,的改变也将使实参变量值改变。如果实参是内存

37、变量而又希望,进行值传递,可以用圆括号将该内存变量括起来,强制该变量,以值方式传递数据,56,【例】用参数传递编程,计算圆的面积。,*,主程序名,PROG34,SET TALK OFF,CLEAR,S=0,INPUT ”,请输入圆的半径,:” TO R,DO AREA WITH R,S,? ”,圆的面积为,:”,S,SET TALK ON,PROCEDURE AREA,&,计算面积的过程,PARAMETER X,Y,&,形参说明,Y=3.1416*X*2,RETURN,57,过程的嵌套调用,Visual FoxPro,中允许一个过程调用第二个过程,第二个,过程又可调用第三个过程,,,这种调用关系称为过程,的嵌套调用,DO,过程,A,RETURN.,DO,过程,B,RETURN.,DO,过程,C,RETURN,.,.RETURN,主程序,过程,A,过程,B,过程,C,5

温馨提示

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

评论

0/150

提交评论