51 lines
852 B
Text
51 lines
852 B
Text
|
|
function ExecSeries(string s,double b,e,i) as string
|
||
|
|
'===================================================
|
||
|
|
'
|
||
|
|
sys a,p
|
||
|
|
string v,u,tab,cr,er
|
||
|
|
'
|
||
|
|
'PREPARE OUTPUT BUFFER
|
||
|
|
'
|
||
|
|
p=1
|
||
|
|
cr=chr(13) chr(10)
|
||
|
|
tab=chr(9)
|
||
|
|
v=nuls 4096
|
||
|
|
mid v,p,s+cr+cr
|
||
|
|
p+=4+len s
|
||
|
|
'
|
||
|
|
double x,y,z 'shared variables
|
||
|
|
'
|
||
|
|
'COMPILE
|
||
|
|
'
|
||
|
|
a=compile s
|
||
|
|
er=error
|
||
|
|
if er then
|
||
|
|
print "runtime error: " er : exit function
|
||
|
|
end if
|
||
|
|
'
|
||
|
|
'EXECUTE
|
||
|
|
'
|
||
|
|
for x=b to e step i
|
||
|
|
if p+128>=len v then
|
||
|
|
v+=nuls len(v) 'extend buffer
|
||
|
|
end if
|
||
|
|
call a
|
||
|
|
u=str(x) tab str(y) cr
|
||
|
|
mid v,p,u : p+=len u
|
||
|
|
next
|
||
|
|
'
|
||
|
|
freememory a 'release compiled code
|
||
|
|
'
|
||
|
|
return left v,p-1 'results
|
||
|
|
'
|
||
|
|
end function
|
||
|
|
|
||
|
|
'=====
|
||
|
|
'TESTS
|
||
|
|
'=====
|
||
|
|
|
||
|
|
'Expression, StartVal, EndVal stepVal, Increment
|
||
|
|
|
||
|
|
print ExecSeries "y=x*x*x", 1, 10, 1
|
||
|
|
print ExecSeries "y=sqrt x",1, 9 , 1
|