RosettaCodeData/Task/Averages-Arithmetic-mean/Ada/averages-arithmetic-mean.ada

23 lines
677 B
Ada
Raw Permalink Normal View History

2013-04-10 14:58:50 -07:00
with Ada.Float_Text_Io; use Ada.Float_Text_Io;
with Ada.Text_IO; use Ada.Text_IO;
procedure Mean_Main is
2019-09-12 10:33:56 -07:00
type Vector is array (Positive range <>) of Float;
function Mean (Item : Vector) return float with pre => Item'length > 0;
function Mean (Item : Vector) return Float is
2013-04-10 14:58:50 -07:00
Sum : Float := 0.0;
begin
for I in Item'range loop
Sum := Sum + Item(I);
end loop;
2019-09-12 10:33:56 -07:00
return Sum / Float(Item'Length);
2013-04-10 14:58:50 -07:00
end Mean;
A : Vector := (3.0, 1.0, 4.0, 1.0, 5.0, 9.0);
begin
2019-09-12 10:33:56 -07:00
Put(Item => Mean (A), Fore => 1, Exp => 0);
2013-04-10 14:58:50 -07:00
New_Line;
-- test for zero length vector
2019-09-12 10:33:56 -07:00
Put(Item => Mean(A (1..0)), Fore => 1, Exp => 0);
2013-04-10 14:58:50 -07:00
New_Line;
end Mean_Main;