Averages/Simple moving average: Difference between revisions

m
→‎{{header|REXX}}: reformatted the output.
m (→‎{{header|REXX}}: collapsed non-essentical (generating) DO loops, removed some dead code.)
m (→‎{{header|REXX}}: reformatted the output.)
Line 2,790:
/*──────────────────────────────────────────build 2nd half of the list. */
do k=n%2 to 1 by -1; @.j=k; j=j+1; end /* ··· decreasing values.*/
/*──────────────────────────────────────────show an indented item list. */
do i=1 for n; say left('',60) 'item' right(i,3)'='right(@.i,3); end
/*──────────────────────────────────────────perform a simple moving avg.*/
say ' do m=1 for n ' " SMA with " ' SMA with /*OK then, let's start the SMA*/
say 'm=' right(m,3), number ' " period " p ' period /*show where we're at in list.*/q
say ' ──────── ' "──────────" '───────────'
" sma("p')=' left(sma(p,m),11), /*show nicely aligned SMA P. */
 
" sma("q')=' left(sma(q,m),11) /* " " " " Q. */
do m=1 for n /*show simple moving average. */
say center(@.m,10) left(sma(p,m),11) left(sma(q,m),11)
end /*m*/
exit /*stick a fork in it, we're done.*/
Line 2,807:
'''output''' using the generated default list of numbers:
<pre>
SMA with SMA item 1= 1with
number period 3 period 5
item 2= 2
──────── ────────── ───────────
item 3= 3
1 1 item 4= 41
2 1.5 item 5= 1.5
3 2 item 6= 52
4 3 item 7= 42.5
5 4 item 8= 3
i= 7 5 sma(3)=4.66666667 sma(5)=4.266666667 3.8
item 9= 2
4 4.66666667 4.2
item 10= 1
i= 1 3 sma(3)=1 4 sma(5)=14.2
i= 2 sma(3)=1.5 3 sma(5)=1 3.58
i= 3 1 sma(3)=2 2 sma(5)=2 3
i= 4 sma(3)=3 sma(5)=2.5
i= 5 sma(3)=4 sma(5)=3
i= 6 sma(3)=4.66666667 sma(5)=3.8
i= 7 sma(3)=4.66666667 sma(5)=4.2
i= 8 sma(3)=4 sma(5)=4.2
i= 9 sma(3)=3 sma(5)=3.8
i= 10 sma(3)=2 sma(5)=3
</pre>