Total circles area: Difference between revisions

m
→‎{{header|REXX}}: added optimization.
m (→‎{{header|REXX}}: added/changed some comments.)
m (→‎{{header|REXX}}: added optimization.)
Line 1,207:
parse var data minX minY . 1 maxX maxY . /*assign some min & max vals.*/
do j=1 for circles; _=j*3-2 /*assign circles with datam. */
@x.j=word(data,_); @y.j=word(data,_+1); @r.j=word(data,_+2)
@r.j=word(data,_+2); @rr.j=@r.j**2
minX=min(minX, @x.j-@r.j); maxX=max(maxX, @x.j+@r.j)
minY=min(minY, @y.j-@r.j); maxY=max(maxY, @y.j+@r.j)
Line 1,217 ⟶ 1,218:
do col=0 to box; x=minX+col*dx /*process the grid cols. */
do k=1 for circles /*now process each circle. */
if (x-@x.k)**2+(y-@y.k)**2 <= @rrr.k**2 then do; #=#+1; leave; end
end /*k*/
end /*col*/
end /*row*/
/*stick a fork in it, we're done.*/</lang>
 
say 'with' box "boxes, approximate area is: " format(# * dx * dy ,,6)</lang>
'''outputs''' using a varying number of boxes:
/*stick a fork in it, we're done.*/</lang>
'''outputs'''
<pre>
with 500 boxes, approximate area is: 21.561556