Averages/Arithmetic mean: Difference between revisions
Content added Content deleted
(Pari/GP) |
No edit summary |
||
Line 941: | Line 941: | ||
[1000 3 1 4 1 5 9 -1000] -> 2.875 |
[1000 3 1 4 1 5 9 -1000] -> 2.875 |
||
[1E+20 3 1 4 1 5 9 -1E+20] -> 0.0</pre> |
[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}}== |
=={{header|Ruby}}== |