




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
考点 程序的基本结构 DO循环结构 程序的基本结构 SCAN循环结构 程序的基本结构 IF循环结构 模块的定义和调用 参数传递 变量的作用域 程序调试,第7章 结构化程序设计,Visual FoxPro的工作方式,Visual FoxPro系统提供有三种工作方式:即单命令方式、菜单方式及程序文件方式。 1.单命令方式 Visual FoxPro单命令方式是利用命令窗口实现的。用户通过命令窗口输入命令,并执行操作。在命令窗口中,用户可以输入单个的操作命令和系统命令,完成对数据库的操作管理和系统环境的设置;也可以建立命令文件及运行命令文件。 命令窗口不仅是Visual FoxPro命令的执行窗口,也是Visual FoxPro命令文件的编辑窗口。 所谓单命令方式,即输入一条命令,完成一个操作的工作方式。,2.菜单方式 在Visual FoxPro 环境下,也可以通过系统提供的菜单选项,对数据库资源进行操作管理和对系统环境进行设置;并通过菜单建立命令文件及运行命令文件。所谓菜单方式,即通过打开不同的菜单选择并完成不同的操作 3.程序文件方式 程序文件(简称程序)也叫做命令文件。运用程序文件方式进行数据库管理,是通过程序文件编辑工具,将对数据库资源进行操作管理的命令和对系统环境进行设置的命令,集中在一个以(.PRG)为扩展名的命令文件中,然后再通过菜单方式或命令方式运行该命令文件。所谓命令方式,即通过程序文件中的命令完成不同的操作。,7.1 程序与程序文件,7.1.1 程序的概念 程序 是能够完成一定任务的命令的有序集合。这组文件被存放在成为程序文件或命令文件的文本文件中。默认的是扩展名为.prg的文件,采用程序方式的好处,1)可以利用编辑器,方便的输入、修改和保存程序 2)可以用多种方式,多次运行程序 3)可以在一个程序中调用另一个程序,有关Visual FoxPro程序的几点说明,1注释语句 【格式1】NOTE 【格式2】* 【格式3】& 【功能】增强程序文件的易读性或放弃中语句的执行 2对话开关语句 【格式】SET TALK OFF|ON 【功能】关闭或打开命令执行时的对话开关 3命令的分行 Visual FoxPro程序是命令行的序列,每个命令都以回车键结束,一行只能写一条命令;有时,若一条命令太长,一行写不下,也可分行书写,并在分行处加上续行符“;“,再按回车键。,7.1.2 程序文件的建立、修改与执行,1建立或修改程序文件 可用两种方式调用系统内置的文本编辑器建立或修改程序文件 1)命令方式 MODIFY COMMAND 程序文件名 既可以新建程序,也可以修改程序,若磁盘中不存在该程序,允许此命令则是新建。若程序已存在则是打开程序文件可对其修改。 2)菜单方式 打开“文件“菜单,选择“新建“ 在“新建“窗口,选择“程序“,再选择“新建文件“若选择“打开“程序,则选中要修改的程序。,2保存程序 程序输入、编辑完毕,单击【文件】|【保存】菜单项,或按Ctrl+W复合键,在“另存为“对话框中指定程序文件的存放位置和文件名,并单击“保存“按钮保存程序文件并退出文本编辑器。程序文件的默认扩展名是.PRG。,3执行程序 程序文件建立后,可以用多种方式、多次执行它。 (1)菜单方式 单击【程序】|【运行】菜单项,打开“运行“对话框 从文件列表框中选择要运行的程序文件,并单击“运行“命令按钮,启动运行该程序文件 (2)命令方式 【格式】DO 【功能】执行指定的程序文件 执行程序文件时,将依次执行文件中的命令,直到所有命令执行完毕,或者执行到以下命令: CANCAL:终止程序运行,清除所有的私有变量,返回命令窗口; DO: 转去执行另一个程序 RETURN:结束程序执行,返回调用它的上级程序,若无上级程序则返回命令窗口; QUIT:结束程序执行并退出Visual FoxPro系统,返回操作系统,7.1.3 交互式语句/键盘输入命令,1ACCEPT命令 【格式】ACCEPT TO 【功能】在屏幕上显示提示信息,等待用户从键盘输入,再把输入内容赋值给指定的内存变量。 该命令只接受字符型数据,输入的字符串不需要加定界符 ,若不输入任何内容或者单击鼠标则把空字符串赋给指定的变量。,例9-1:要求用户从键盘上输入用户名,然后把输入的用户名显示出来。,ACCEPT “请输入用户名:“ TO NAME ?NAME,格式:INPUT TO ,2. 数据输入命令,功能:在屏幕上显示提示信息,等待用户从键盘输入,再把输入内容赋值给指定的内存变量。,注:INPUT命令能接受任何类型的表达式: 输入C 型数据时,要使用 或 “ “ 作为定界符; 输入L 型数据时,.T. 和 .F. ,两边的 . 不能省; 输入D 型数据时,要用 或CTOD( ) 将字符串转成日期型变量。,例9-2:求任意两数之和。,INPUT “请输入一个数x:“ TO X INPUT “请输入另一个数y:“ TO Y ?X+Y,J=2800 INPUT “输入 J+200 :“ TO A ACCEPT “输入 J+200 :“ TO B ?“A=“,A ? “B=“,B 注:执行时,先后两次输入同样的内容:J+200,例9-3: 给出下列A、B的结果,格式:WAIT TO window TIMEOUT ,3. 只能输入一个字符的命令,功能:当程序执行某一处需要暂停时使用此命令。 如果没有提示信息默认的是“按任意键继续。内存变量是用来保存用户按下的键如果用户按的是空键或者任意键则内存变量保存的是空串 ,如果不选to则内存变量不被保存,timeout 指定等待的秒数。,注:WAIT命令响应速度快,它只接受一个字符,不需用户键入回车键。,? “您选择的是第“ + CHOICE + “个选项“,WAIT “请选择相应代码:“ TO CHOICE,例9-4:,例 Wait “输入无效请重新输入“ window timeout 5 程序运行时则主窗口右上角出现提示信息“输入无效请重新输入“ 用户按下任意键或者5秒后提示窗口关闭。,二输出类语句,1. 非格式输出语句,格式1: ? 内存变量名表,格式2: ? 内存变量名表,注:语句1 是在光标所在行的下一行开始显示, 语句2 则是在当前光标位置开始显示。,功 能:显示内存变量、常量或表达式的值。,三. 设置会话状态语句,语句格式2: SET TALK OFF,功能 语句1:设置会话状态开通。 语句2:设置会话状态关闭。,语句格式1: SET TALK ON,四. 清屏与注释语句,语句格式: CLEAR,1. 清屏语句,功 能 :清除屏幕上所有显示内容,光标回到屏幕左上角。,2. 注释语句,语句格式2: * ,注:语句1、2、3 在程序中,系统不执行。,语句格式1: NOTE ,功 能 : 在程序中加入说明性语句。,语句格式3: & ,五. RETURN命令,注:一般RETURN出现于程序末尾。,格式: RETURN /TO MASTER/TO ,功能 : 结束一个程序的执行。,六. 终止程序执行语句,语句格式2: QUIT,注: 语句1:在终止程序执行后,返回到VFP命令状态; 语句2:返回到操作系统状态。,语句格式1: CANCEL,功能:终止程序执行,关闭所有打开的命令文件。,7.2 程序的基本结构,Visual FoxPro系统的程序有两个特点:一是程序控制流模式,由顺序、选择、循环三种基本结构构成。二是面向对象可视化的结构程序模块,在每一个模块的内部也是由程序控制流组成。常见的控制结构如下: 1顺序结构 顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。Visual FoxPro系统中的大多数命令都可以作为顺序结构中的语句。 2选择结构 选择结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题,3循环结构 循环结构则能够使某些语句或程序段重复执行若干次。如果某些语句或程序段需要在一个固定的位置上重复操作,使用循环是最好的选择。 4过程结构 在许多应用程序中,有一些程序段需要反复执行多次,这些程序段不在一个固定的位置上,而是分散在程序的许多位置上重复执行,可将其与嵌入它的程序分开,形成独立的程序序列,待使用时再调入程序中,以实现不同位置上的重复操作。这样做增强了程序的可读性和模块化。我们称这种具有独立功能而且可以被其它程序调用的程序序列为过程。,在计算机应用的许多场合,要求程序根据不同的条件采用不同的处理方法。如果条件满足,则执行某一些语句;如果条件不满足,则执行另一些语句。 Visual FoxPro提供条件语句、分支语句两种选择结构。,7.2.1 选择结构程序设计,选择结构形式有如下三种: 1条件语句 1. 单条件语句,即根据用户设置的条件表达式的值,决定某一操作是否执行。 (1)语句格式: IF条件表达式 命令行序列 ENDIF (2)语句功能: 该语句首先计算条件表达式的值,当条件表达式的值为真时,执行命令行序列;否则,执行ENDIF后面的第一条命令,7.2.1 选择结构,【例7-6】求一元二次方程AX2BXC0的实根。程序文件名为PROG6.PRG CLEAR INPUT “a=“ TO A INPUT “b=“ TO B INPUT “c=“ 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 RETURN,语句格式: IF 条件 语句序列1 ENDIF,2. 双条件 选择语句,.Y.,.N.,ELSE 语句序列2,注: (1) IF和ENDIF必须配对使用,而ELSE可选。 (2) IF、ELSE、ENDIF必须各占一行。 (3) 可以为关系表达式、逻辑表达式。 (4)在语句序列1和语句序列2中可以嵌套IF语句。,执行过程: 如果成立,就执行语句序列1; 如果不成立,执行语句序列2。 执行完命令行序列1或命令行序列2 后都将执行ENDIF后面的第一条命令。,【例7-7】编写一密码校验程序(假设密码为ABC)。程序文件名为PROG7.PRG CLEAR ACCEPT “请输入您的密码:“ TO AAA IF AAA=“ABC“ CLEAR ? “欢迎使用本系统!“ ELSE ?“密码错误!“ WAIT QUIT ENDIF,INPUT “请输入行李重量:“ TO W IF W40 YF=0.22*W ELSE YF= 0.22*40 + (W-40)*0.4 ENDIF ? “应交托运费为:“+LTRIM(STR(YF,10,2)+“元“ RETURN,例 火车托运行李: 每人不超过40公斤,每公斤0.22元;超过40公斤时, 超出部分每公斤0.40元。填空完成以下程序。,3. 分支选择语句(选择语句|情况语句),说明: DO CASE和第一个CASE子句之间不能插入任何语句。 DO CASE和ENDCASE必须配对使用,且DO CASE,CASE,OTHERWISE和ENDCASE各子句必须各占一行。 在语句序列中可嵌套情况语句。,格式: DO CASE CASE 条件表达式1 语句序列1 CASE 条件表达式2 语句序列2 CASE 条件表达式n 语句序列n OTHERWISE 语句序列n+1 ENDCASE,6.3 程序的基本控制结构, 多分支结构:DO CASEENDCASE 例: INPUT “请输入成绩:“ TO X DO CASE CASE X90 ? “优“ CASE X=80 ? “良“ CASE X=60 ? “及格“ OTHERWIZE ? “差“ ENDCASE,功能:系统依次测试语句中各个条件表达式的值: 若为真,即执行相应条件表达式后的语句序列, 然后脱离情况语句,执行ENDCASE的下一语句。若所有的条件表达式的值均为假,则执行OTHERWISE后面的语句序列, 然后脱离情况语句,执行ENDCASE下一语句 。,开始判断,语句序列1,序列2,序列n,序列n+1,ENDCASE后面的语句,条件1,条件2,条件n,其它,【例7-8】假设收入(P)与税率(R)的关系如下表,编程求税金。程序文件名为PROG8.PRG 0 P800 R= 0.05 800 P2000 0.08 2000P5000 0.1 P5000 CLEAR INPUT “请输入收入:“ TO P DO CASE CASE P800 R=0 CASE P2000 R=0.05,CASE P5000 R=0.08 OTHERWISE R=0.1 ENDCASE TAX=P*R ? “税金为:“,TAX SET TALK ON RETURN,(1)IF ENDIF和DO CASE ENDCASE 必须配对使用,DO CASE与第一个CASE条件表达式之间不应有任何命令。 (2)条件表达式可以是各种表达式或函数的组合,其值必须是逻辑值。 (3)命令行序列可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。 (4)DO CASE ENDCASE 命令,每次最多只能执行一个命令行序列。在多个CASE项的条件表达式值为真时,只执行第一个条件表达式值为真的命令行序列,然后执行ENDCASE的后面的第一条命令,使用选择语句应注意的几点,A=3000 DO CASE CASE A=1000 B=A CASE A=2000 B=2*A CASE A=3000 B=3*A ENDCASE ? B,例 阅读下列程序段,写出运行结果:,循环,就是按给定的条件连续地重复执行一段特定功能的程序。循环结构也称为重复结构。,7.2.2 循环结构程序设计,Visual FoxPro给出了三种循环结构: 条件循环(DO WHILEENDDO) 计算循环(FORENDFOR) 扫描循环(SCANENDSCAN),语句格式: DO WHILE LOOP EXIT ENDDO,循环体,ENDDO后的语句,条件,.T.,.F.,条件循环结构流程图,一、条件循环,循环体,功能:有条件连续地重复执行DO WHILE与ENDDO之间的语句序列,直到为假或因执行EXIT语句而结束。,条件,(2)循环体中的LOOP是可选项。遇到LOOP时,强行返回到循环开始语句。Loop 可以放在 do while 和end do 之间的任何位置 (3)循环体中的EXIT也是可选项。遇到它时便无条件地退出循环,强行跳出循环,接着执行ENDDO后的语句 (4)通常LOOP或EXIT出现在循环体内嵌套的分支语句中,根据条件来决定是LOOP回去,还是EXIT出去。,功能说明: (1)系统执行该语句时,先判断循环开始DO WHILE的条件是否成立, 如果条件为真,则执行循环体中的语句序列。当执行到ENDDO时,返回到DO WHILE,再次判断条件是否为真,以确定是否再次执行循环体。若条件为假,则结束循环 ,执行ENDDO后面的语句。 如果第一次判断条件时,条件即为假,则循环体一次都不执行,这就是称为“先判断后执行“的语句。,i=1,? OK,i=i+1,ENDDO,DO WHILE,RETURN,CLEAR,i=20,1,1,2,2,2,3,20,20,21,&设置循环变量初值,&修改循环变量,例 在屏幕上换行显示字符串OK20次,? OK,在以循环变量作为循环控制参数的条件循环中, 循环体内一定要有修改循环变量的语句,否则 就会出现死循环。,注意,例 求自然数1至4的和。,分析算法:,1. i=1 , s=0 ;,2. 累加第 i 个数,3. 累加次数加1,4. 当 i= 4 重复做2 ;,5. ? s 。,S=0,i=1,1=4,S=0+1,i=1+1,.T.,2=4,S=1+2,i=2+1,3=4,S=3+3,i=3+1,4=4,S=6+4,i= 4+1,5=4,.F.,? 10,S=0 i=1 DO WHILE i=4 S=S+i i=i+1 ENDDO ? S RETURN,若求自然数1至N的和呢?,程序:求自然数1至4的和,S=0,i=1,INPUT 请输入N的值: TO N,DO WHILE i=4,S=S+i,i=i+1,ENDDO,?S,RETURN,i=N,推广1,若求自然数1至N的积呢?,程序:求自然数1至N的和,S=0,i=1,INPUT 请输入N的值: TO N,DO WHILE i=N,S =S + i,i =i + 1,ENDDO,?S,RETURN,推广2,S=1,S=S*i,例 阅读程序,并说出程序的运行结果,程序结果,2,3,4,5,6,程序结果,2,4,5,6,E,E,例 求1100以内所有奇数的和。,SET TALK OFF S=0 I=0 Do while I100 I = I + 1 If int(I/2) = I/2 Loop endif S = S + I Enddo ? “1到100的奇数和 S= “, S SET TALK ON Return,以循环变量作为控制参数控制循环。,S=0 I=1 Do while I100 S = S + I I = I + 2 Enddo ? s,程序改进:,【例】逐条显示在STUDENT数据库的STUD表中性别为“男“的所有记录 CLEAR OPEN DATABASE 学生管理 USE 学生基本信息 DO WHILE .NOT. EOF() IF 性别=“男“ DISPLAY ENDIF SKIP ENDDO CLOSE DATABASE RETURN,语句格式: FOR XA TO B STEP C LOOP EXIT ENDFOR | NEXT,二、计数循环,循环体,功能:执行该语句时,首先将初值赋给循环变量,然后判断循环条件是否成立。若循环条件成立则执行循环体,然后循环变量增一个步长值,并再次判断循环条件是否成立,若循环条件不成立则结束该循环语句,执行ENDFOR之后的语句,循环变量,循环初值,步长值,循环终值,使用FOR循环语句的有关说明: 省略STEP ,则步长为默认值1; 初值、终值以及步长都可以是数值表达式,但这些表达式仅在循环语句开始执行的时候计算一次。在循环语句的执行过程中,初值、终值和步长是不会改变的,并由此确定循环的次数; 可以在循环体内改变循环变量的值,但会改变循环执行次数; EXIT和LOOP命令可以出现在循环体内。执行LOOP命令时,结束本次循环,循环变量增加一个步长值,返回FOR循环头判断循环条件是否成立。当执行EXIT命令的时候,程序跳出循环,执行循环尾后面的语句,例 求1100之和。,clear S=0 for I=1 to 100 S=S+I Endfor ?“S=“,S Return,6.3 程序的基本控制结构, FOR ENDFOR 【例】编程输出矩形乘法口诀表 SET TALK OFF CLEAR FOR I=1 TO 9 FOR J=1 TO 9 ? STR(I,1)+“*“+STR(J,1)+“=“+STR(I*J,2)+“ “ ENDFOR ? ENDFOR SET TALK ON RETURN,6.3 程序的基本控制结构,【例】编程输出下三角形乘法口诀表 SET TALK OFF CLEAR FOR I= 1 TO 9 FOR J=1 TO I ? STR(J,1)+“*“+STR(I,1)+“=“+STR(I*J,2)+“ “ ENDFOR ? ENDFOR,例 阅读程序,写出程序运行结果,S=0 FOR K=1 TO 10 STEP 2 IF K=7 LOOP ENDIF S=S+K ENDFOR ? S RETURN,三、表文件扫描循环“指针“型循环控制语句 “指针“型循环控制语句,即根据用户设置的表中的当前记录指针,决定循环体内语句的执行次数据。 (1)语句格式: SCAN范围FOR条件表达式1 WHILE 条件表达式2 命令行序列 ENDSCAN 默认范围是全部 (2)语句功能: 该语句在指定的范围内,用数据记录指针来控制循环次数。执行语句时,首先判断函数EOF()的值,若其值为“真“,则结束循环,否则,结合条件表达式1或条件表达式2,执行命令行序列,记录指针移到指定的范围和条件内的下一条记录,重新判断函数EOF()的值,直到函数EOF()的值为真时结束循环。,使用循环语句时应注意的几点 1)DO while和ENDDO、FOR和ENDFOR、SCAN和ENDSCAN必须配对使用。 2)命令行序列可以是任何FoxPro命令或语句,比如循环语句,即可以为多重循环。 3)循环变量应是数值型的内存变量或数组元素。 4)EXIT和LOOP命令嵌入在循环体内,可以改变循环次数,但是不能单独使用。EXIT的功能是跳出循环,转去执行ENDDO、ENDFOR、ENDSCAN后面的第一条命令;LOOP的功能是转回到循环的开始处,重新对“条件“进行判断,相当于执行了一次ENDDO、ENDFOR、ENDSCAN命令,它可以改变命令行序列中部分命令的执行次数。EXIT、LOOP可以出现在命令行序列的任意位置。,【例】输出STUDENT数据库的STUD表中所有团员的姓名和地址 CLEAR OPEN DATABASE 学生管理 USE 学生基本信息 SCAN FOR 性别=“男生“ ? 姓名,年龄 ENDSCAN CLOSE DATABASE RETURN,对数据表扫描时三种循环的等价格式,表文件扫描循环: SCAN FOR ENDSCAN,条件循环: DO WHILE .NOT. EOF() SKIP ENDDO,计数循环: n=RECCOUNT() FOR i=1 TO n GO i ENDFOR,循环嵌套,循环体内又设置循环的情况称为多重循环,又称为循环嵌套。 内外循环的层次必须分明,不允许有交叉现象出现。 循环结构可以与分支结构嵌套,同样不允许有交叉现象出现。,以下交叉情形不允许出现:,一、模块的定义和调用 VFP的模块有两种。一种是命令文件即外部过程,一种是过程,即内部过程。过程也叫子程序,是一个相对独立的程序段, 可以被其他程序调用。调用子程序的程序称为主程序。,第四节多模块程序设计,过程的定义 格式:PROCEDURE |FUNCTION 表示一个过程的开始并命名过程名。 return 执行到return命令时控制将转回到调用程序,并返回表达式的值 如果不带表达式则返回逻辑真(.t.) ENDPROC |ENDFUNC TO MASTER 表示一个过程的结束 说明:主程序可以调用子程序,子程序还可以调用另外的子程序,这就是子程序的嵌套调用。实际上,子程序和主程序都是相对的,任何一个程序可以调用其他程序,也可以被其他程序调用。每个被调用程序的末尾或返回处都要加上RETURN命令。,过程文件,过程文件是将将多个过程存放在一个文件中形成的文件。最多允许包含128个过程,也就是一个含有过程的命令文件。使用一个过程文件只作为一个打开文件,过程文件也是程序文件,建立方法与程序文件一样,用modify command命令。扩展名也是.PRG。 过程文件中的过程不能作为一个命令文件单独存盘或独立运行。一个应用系统中可以有多个过程文件,但同一时间只能打开一个过程文件。 过程文件的格式 PROCEDURE RETURN PROCEDURE RETURN PROCEDURE RETURN,(2)过程的调用 过程可以存放在程序文件中,也可以存放在过程文件里,存放在不同文件中的过程调用方法也不完全相同。 1.过程的调用 DO IN WITH 或者() 步骤: (1)调用某过程文件中的过程时,必须先打开该过程文件,打开过程文件命令为: SET PROCEDURE TO ,.ADDITIVE 说 明:选用ADDITIVE选项,则不关闭原先已打开的过程文件。 (2)然后调用其中的过程,过程文件的关闭命令 【格式一】SET PROCEDURE TO关闭所有打开的过程文件。 【格式二】RELEASE PROCEDURE ,. 关闭个别过程文件,例如:下面是一个模块定义和调用的程序示例。涉及三个文件:程序文件F1.PRG,其中的代码为主程序,另外包含一个过程P1;程序文件F2.PRG作为子程序被主程序调用;过程文件F3.PRG包含两个过程P2和P3。,*主程序:F1.PRG ?“主程序开始“ SET PROCEDURE TO F3 F2() DO P1 ?“主程序结束“ *过程P1 PROCEDURE P1 ?“过程P1开始“ ?“调用P3()“ ?“返回值:“,P3() ?“过程P1结束“ ENDPROC,*子程序:F2.PRG ?“子程序F2开始“ ?“调用P2()“ X=P2() ?“返回值为:“,X ?“子程序F2结束“ RETURN *过程文件:F3.PRG PROCEDURE P2 RETURN PROCEDURE P3 RETURN 100,二参数的传递 主程序与模块程序之间的数据交互是通过传递参数实现的。模块程序可以接收调用程序传递过来的参数,并能够根据接收到的参数控制程序流程或对接收到的参数进行处理,从而大大提供模块程序功能设计的灵活性。传递与接收的数据(常量、变量、表达式)统称为参数,主程序传递的称为实参,子程序接收的程序称为形参。调用模块时系统会自动把实参赋给形参。 说明:1.形参与实参对应个数、类型一致,名字可以不同.当形参个数少于实参时,出错,形参个数多于实参,多余值为.f. 传递参数的形式两种 1、按值传递则表示向一个自定义的函数按值传递一个变量。把变量的值赋给了形参,当自定义的函数改变了变量的值时,但调用该函数的原始值不发生变化。实参为常量或表达式。实参送给形参,形参不能返回给实参。 2、按引用传递则表示向一个自定义的函数按值传递一个变量把变量的地址赋给了形参,如果自定义函数中改变了变量的值,则调用该函数的程序中变量的值随着变化。实参为变量。实参送给形参,形参再送给实参。,1)有参过程中的形式参数定义 有参过程中的形式参数定义语句为: 命令格式1: PARAMETERS , 命令格式2: LPARAMETERS , 说明 PARAMETERS 声明形参变量被看作是模块程序中建立的私有变量,还可以在其下属模块中有效。 LPARAMETERS 声明形参变量被看作是模块程序中建立的局部变量,只在本模块中有效 该语句必需是过程中第一条语句。中的参数可以是任意合法的内存变量名,调用模块程序的格式为: 格式1:DO | WITH 格式2: |(实参序列) 说明:(1)格式1如果实参是常量或表达式或者用括号括起的变量,系统会计算出实参的值,把它赋值给相应的形参变量,即按值传递。形参的变化不会影响实参。如果实参是变量,传递的是变量的地址,即引用传递。在模块中形参变量的值改变,则形参变量的值也会改变 (2)默认按值传递 如果只是用括号括起的变量则是按值传递,如果在变量前加一个则是按引用传递。 若实参是变量可以重新设置参数传递方式:(只对格式2起作用) set udfparms to value / reference 选择value则表示按值传递,形参的改变不影响实参 选用 reference则按引用传递,形参的改变影响实参,例:按值传递和按址传递示例 CLEAR STORE 100 TO X1,X2 SET UDFPARMS TO VALUE DO P4 WITH X1,(X2) ? “第一次“,x1,x2 STORE 100 TO X1,X2 P4(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 逆变器岗位面试题及答案
- 外科职位笔试题及答案
- 骨科结业考试题及答案
- 上海低压证考试试题及答案
- 仓管考试试题及答案
- 郭德纲面试题及答案
- 普通跳绳考试题及答案
- 教研组年度工作总结
- 2025年公用设备工程师之专业基础知识(暖通空调+动力)考前冲刺试卷A卷含答案
- 21.2.2解一元二次方程-公式法(第2课时)(教学课件)数学人教版九年级上册
- 原发性骨质疏松症诊疗指南(2022)解读
- 新概念英语“第一册”单词对照表
- 新生儿早期基本保健(EENC)-新生儿早期基本保健(EENC)概述(儿童保健课件)
- 加油站高处坠落事故现场处置方案
- 比亚迪汉DM-i说明书
- 心肾综合征及其临床处理
- 男性性功能障碍专家讲座
- GB/T 1040.3-2006塑料拉伸性能的测定第3部分:薄膜和薄片的试验条件
- 第37次全国计算机等级考试考务培训-课件
- 新生入学登记表新生入学情况表word模版
- 《高情商沟通》课件
评论
0/150
提交评论