Averages/Arithmetic mean: Difference between revisions

→‎{{header|Oz}}: New ooRexx version
m (→‎{{header|REXX}}: change style of "output". -- ~~~~)
(→‎{{header|Oz}}: New ooRexx version)
Line 1,320:
m = s./n;
end;</lang>
 
=={{header|Oz}}==
<lang ooRexx>
call testAverage .array~of(10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
call testAverage .array~of(10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, .11)
call testAverage .array~of(10, 20, 30, 40, 50, -100, 4.7, -11e2)
call testAverage .array~new
 
::routine testAverage
use arg numbers
say "numbers =" numbers~toString("l", ", ")
say "average =" average(numbers)
say
 
::routine average
use arg numbers
-- return zero for an empty list
if numbers~isempty then return 0
 
sum = 0
do number over numbers
sum += number
end
return sum/numbers~items
</lang>
Output:
<pre>
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, -1100
average = -130.6625
 
numbers =
average = 0
</pre>
 
=={{header|Oz}}==