Averages/Arithmetic mean: Difference between revisions

no edit summary
(Pari/GP)
No edit summary
Line 941:
[1000 3 1 4 1 5 9 -1000] -> 2.875
[1E+20 3 1 4 1 5 9 -1E+20] -> 0.0</pre>
 
=={{header|REXX}}==
<lang rexx>
test1='10 9 8 7 6 5 4 3 2 1'
say 'numbers='test1
say 'average='avg(test1)
say
 
test2='10 9 8 7 6 5 4 3 2 1 0 0 0 0 .11'
say 'numbers='test2
say 'average='avg(test2)
say
 
test3='10 20 30 40 50 -100 4.7 -11e2'
say 'numbers='test3
say 'average='avg(test3)
say
 
test4=''
say 'numbers='test4
say 'average='avg(test4)
say
 
test5='1 2 3 4 five 6 7 8 9'
say 'numbers='test5
say 'average='avg(test5)
say
 
exit
 
/*---------------------AVG subroutine------------------*/
avg: procedure; arg y
s=0
do j=1 to words(y)
x=word(y,j)
if \datatype(x,'N') then return '*error* non-numeric' x
s=s+x
end
return s/max(1,words(y))
</lang>
Output:
<pre style="height:30ex;overflow:scroll">
numbers=10 9 8 7 6 5 4 3 2 1
average=5.5
 
numbers=10 9 8 7 6 5 4 3 2 1 0 0 0 0 .11
average=3.674
 
numbers=10 20 30 40 50 -100 4.7 -11e2
average=-130.6625
 
numbers=
average=0
 
numbers=1 2 3 4 five 6 7 8 9
average=*error* non-numeric FIVE
</pre>
 
=={{header|Ruby}}==