两个程序分别是p1.prg 和p2.prg *p1.prg set proc to p1 set talk off y=1 input '请输入求某数的阶乘:' to n do fact with n,y ?str(n,2)+'!='+str(y,10) set talk on procedure fact parameters n,y x=1 do while x<=n y=y*x x=x+1 enddo return*p2.prg set talk off input '请输入半径r(r<=0或r>9999时结束):' to r do while r>0 .and. r<=9999 ?'圆的面积为:',area(r) wait '继续计算圆的面积吗(Y/N)?' to ans if upper(ans)="N" exit endif input '请输入半径r:' to r enddo return*area函数要单独放在一个文件中,名为area.prg parameters r s=pi()*r*r return s*或area函数和主程序同在一个文件中 set proc to p2 set talk off input '请输入半径r(r<=0或r>9999时结束):' to r do while r>0 .and. r<=9999 ?'圆的面积为:',area(r) wait '继续计算圆的面积吗(Y/N)?' to ans if upper(ans)="N" exit endif input '请输入半径r:' to r enddo returnprocedure area parameters r s=pi()*r*r return s
set talk off y=1 input '请输入求某数的阶乘:' to n do fact with n,y ?str(n,2)+'!='+str(y,10) set talk on procedure fact parameters n,y x=1 do while x<=n y=y*x x=x+1 enddo return yset talk off input '请输入半径r(r<=0或r>9999时结束):' to r do while r>0 .and. r<=9999 ?'圆的面积为:',area(r) wait '继续计算圆的面积吗(Y/N)?' to ans if upper(ans)="N" exit endif input '请输入半径r:' to r loop enddo return function area parameters r s=pi()*r*r return s
FOX低版本有CPU频率的限制,所以高性能的机器用FOX可能会有问题,你去找个降速的程序看看。(好象也有这方面的补丁)
*p1.prg
set proc to p1
set talk off
y=1
input '请输入求某数的阶乘:' to n
do fact with n,y
?str(n,2)+'!='+str(y,10)
set talk on
procedure fact
parameters n,y
x=1
do while x<=n
y=y*x
x=x+1
enddo
return*p2.prg
set talk off
input '请输入半径r(r<=0或r>9999时结束):' to r
do while r>0 .and. r<=9999
?'圆的面积为:',area(r)
wait '继续计算圆的面积吗(Y/N)?' to ans
if upper(ans)="N"
exit
endif
input '请输入半径r:' to r
enddo
return*area函数要单独放在一个文件中,名为area.prg
parameters r
s=pi()*r*r
return s*或area函数和主程序同在一个文件中
set proc to p2
set talk off
input '请输入半径r(r<=0或r>9999时结束):' to r
do while r>0 .and. r<=9999
?'圆的面积为:',area(r)
wait '继续计算圆的面积吗(Y/N)?' to ans
if upper(ans)="N"
exit
endif
input '请输入半径r:' to r
enddo
returnprocedure area
parameters r
s=pi()*r*r
return s
2. 在foxbase 里面自定义函数,也不用 function的
3. 在foxbase 里面的自定义的函数必须有单独的文件名,或在一个过程文件里面,
有程序名.
请看ORACLE版我的修改
http://www.csdn.net/expert/topic/1090/1090730.xml?temp=.9642145
y=1
input '请输入求某数的阶乘:' to n
do fact with n,y
?str(n,2)+'!='+str(y,10)
set talk on
procedure fact
parameters n,y
x=1
do while x<=n
y=y*x
x=x+1
enddo
return yset talk off
input '请输入半径r(r<=0或r>9999时结束):' to r
do while r>0 .and. r<=9999
?'圆的面积为:',area(r)
wait '继续计算圆的面积吗(Y/N)?' to ans
if upper(ans)="N"
exit
endif
input '请输入半径r:' to r
loop
enddo
return
function area
parameters r
s=pi()*r*r
return s