Averages/Simple moving average: Difference between revisions

Content added Content deleted
m (→‎{{header|REXX}}: used better verbage is describing the output section.)
m (→‎{{header|REXX}}: collapsed non-essentical (generating) DO loops, removed some dead code.)
Line 2,787: Line 2,787:
@.=0 /*define stemmed array, init 0*/
@.=0 /*define stemmed array, init 0*/
/*──────────────────────────────────────────build 1st half of the list. */
/*──────────────────────────────────────────build 1st half of the list. */
do j=1 for n%2 /* ··· increasing values. */
do j=1 for n%2; @.j=j; end /* ··· increasing values.*/
@.j=j
end /*j*/
/*──────────────────────────────────────────build 2nd half of the list. */
/*──────────────────────────────────────────build 2nd half of the list. */
do k=n%2 to 1 by -1 /* ··· decreasing values. */
do k=n%2 to 1 by -1; @.j=k; j=j+1; end /* ··· decreasing values.*/
@.j=k
j=j+1
end /*k*/
/*──────────────────────────────────────────show an indented item list. */
/*──────────────────────────────────────────show an indented item list. */
do i=1 for n
do i=1 for n; say left('',60) 'item' right(i,3)'='right(@.i,3); end
say left('',60) 'item' right(i,3)'='right(@.i,3)
end /*i*/
/*──────────────────────────────────────────perform a simple moving avg.*/
/*──────────────────────────────────────────perform a simple moving avg.*/
do m=1 for n /*OK then, let's start the SMA*/
do m=1 for n /*OK then, let's start the SMA*/
smaP=sma(p,m) /*simple moving average for P.*/
say 'm=' right(m,3), /*show where we're at in list.*/
" sma("p')=' left(sma(p,m),11), /*show nicely aligned SMA P. */
smaQ=sma(q,m) /* " " " " Q.*/
/*show 2 nicely formatted SMAs*/
" sma("q')=' left(sma(q,m),11) /* " " " " Q. */
end /*m*/
say 'm='right(m,3), /*show where we're at in list.*/
" sma("p')='left(sma(p,m),11), /*show nicely aligned sma P. */
" sma("q')='left(sma(q,m),11) /* " " " " Q. */
end /*m*/
exit /*stick a fork in it, we're done.*/
exit /*stick a fork in it, we're done.*/
/*──────────────────────────────────SMA subroutine──────────────────────*/
/*──────────────────────────────────SMA subroutine──────────────────────*/
Line 2,814: Line 2,804:
s=s+@.k
s=s+@.k
end /*k*/
end /*k*/
return s/i
return s/i</lang>
</lang>
'''output''' using the generated default list of numbers:
'''output''' using the generated default list of numbers:
<pre>
<pre>