对于第一段程序,要拆成两个程序,即在硬盘上有两个PRG文件,
test.prg 和 myproc.prg, 然后执行test.prg就可以了.
第二段程序我还没看,晚上帮你看看,现在有事要出去.***** test.prg
set proc to myproc
set talk off
y=1
input "input a number: " to n
do fact with n,y
?str(n,2)+'!='+str(y,10)***** myproc.prg
proc fact
para n,y
x=1
do whil x<=n
y=y*x
x=x+1
endd
return
test.prg 和 myproc.prg, 然后执行test.prg就可以了.
第二段程序我还没看,晚上帮你看看,现在有事要出去.***** test.prg
set proc to myproc
set talk off
y=1
input "input a number: " to n
do fact with n,y
?str(n,2)+'!='+str(y,10)***** myproc.prg
proc fact
para n,y
x=1
do whil x<=n
y=y*x
x=x+1
endd
return
*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
1. 在foxbase 里面并没有PI()这个函数
2. 在foxbase 里面自定义函数,也不用 function的
3. 在foxbase 里面的自定义的函数必须有单独的文件名,或在一个过程文件里面,
有程序名.
*****circle.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.prg (求圆面积的函数,去掉function,改PI()为3.1415926)
parameters r
s=3.1415926*r*r
return s
*pi.prg
return 3.1415926
不能当饭吃的.不如学ORACLE,SQL SERVER,或MySQL吧.