endif
endfor
endfor
endfor return
*30人吃饭男人用3元,妇女用2元,小孩用1元,用50元,问各多少人 SET TALK OFF CLEA
FOR X=1 TO 17 ? ENDFOR RETU
**36个人搬砖,一次36块,男人一人搬走4块,女人一人搬走3块,小孩两人搬走1块
*问男,女,小孩各多少人? clear for x=1 to 9
for y=1 to 12
for z=1 to 36
if 4*x+3*y+z/2=36 and x+y+z=36
?x,y,z
FOR Y=1 TO 25
FOR Z=1 TO 50
IF 3*X+2*Y+Z=50 AND X+Y+Z=30
??\男\女\小孩\
ENDIF
ENDFOR
ENDFOR
endif
endfor
endfor
endfor return
*用100元买100只鸡,公鸡5元,母鸡3元,小鸡1元买3只 SET TALK OFF CLEA
FOR X= 1 TO 20
FOR Y= 1 TO 33
FOR Z=1 TO 100
IF 5*X+3*Y+Z/3=100 AND X+Y+Z=100
??\公鸡\母鸡\小鸡\
ENDIF
ENDFOR
ENDFOR ?
ENDFOR RETU
*猴子吃枣;一堆枣,一群猴子,第一天吃了一半,不过瘾,又吃了一个, *第二天吃了剩下的一半,不过瘾,又吃了一个,到第十天一看只有一个了。问有多少枣?
clea s=1
for n=1 to 9 s=2*(s+1) endfo ?s
?\
m=10
do while m>=1 ?m,s,s/2+1 if s>1
s=s/2-1 ??s
endif m=m-1 enddo retu N=1
初始条件 <终止条件>
初始条件 <终止条件>
Do while n<=100
m=1
Do while m<=100
IF 5*X+3*Y+Z/3=100 AND X+Y+Z=100
??\公鸡\母鸡\小鸡\
ENDIF
改变循环变量
m=m+1 enddo
N=n+1 enddo
改变循环变量
SET TALK OFF clea r=1 c=10
DO WHILE R<=4 S=1
do while s<=2*r-1
@r,c say \
c=c+1 s=s+1
enddo
c=10-r r=r+1 enddo retu
2过程文件的建立及重要性C Visual FoxPro 的过程如下所示: PROCEDURE myproc
*本行是注释,但也可为可执行代码。 ENDPROC
习惯上,过程是为完成某个操作而编写的代码,函数用来计算并返回一个值。在 Visual FoxPro 中,这二者区别不大。
子程序与过程的区别
相同点:都可以被主程序或上级程序调用。DO < >
不同点:子程序以.prg文件形式存在,过程和主程序一起存放,放在主程序后面,以proc 开头标记。
FUNCTION myfunc
* 本行为注释,但也可作为可执行代码 ENDFUNC
可以将过程和函数保存在单独的程序文件中,也可放在一般程序的结尾。不能把可执行的主程序代码放在过程或函数之后。
若将过程或函数放在单独的程序文件中,可以在应用程序中使用 SET PROCEDURE TO 命令访问它们。例如,保存过程或函数的文件名为 FUNPROC.PRG,可在“命令”窗口中使用下面的命令调用它们: SET PROCEDURE TO funproc.prg 调用过程或函数
在程序中有两种调用过程或函数的方式:
使用 DO 命令,例如: ? DO myproc
?
- 或者 -
在函数名后加上一对小括号,例如: ? myfunc( )
?
如果向过程或函数发送值或接收它们的返回值,则两种方式都可以加以扩展。 向过程或函数发送值
若要向过程或函数传递值,可以使用参数。例如,下面的过程接收一个参数: PROCEDURE myproc( cString ) * 下行显示一条信息
MESSAGEBOX (\ENDPROC
注释 在过程或函数定义行的括号中包含参数,表明该参数的作用域仅为该过程或函数,例如 PROCEDURE myproc (cString)。也可以使用 LPARAMETERS,让函数或过程来接收局部作用域的参数。
在函数中,参数以同样方式工作。要向函数或过程传递参数值,可以使用字符串或包含字符串的变量,如下表所示。
可以向过程或函数传递多个参数,参数之间用逗号分开。例如,下面的过程有三个参数:日期、字符串和数字。
PROCEDURE myproc( dDate, cString, nTimesToPrint ) FOR nCnt = 1 to nTimesToPrint
? DTOC(dDate) + \ ENDFOR ENDPROC
下面的代码将调用这个过程:
DO myproc WITH DATE(), \
过程的定义 Proc <过程名> <语句序列> Endproc