program StatsCalculator;
uses
SysUtils;
function CalculateMean(data: array of Double): Double;
var
sum: Double;
i: Integer;
begin
if Length(data) = 0 then
Exit(0.0);
sum := 0.0;
for i := 0 to High(data) do
sum := sum + data[i];
CalculateMean := sum / Length(data);
end;
function CalculateStandardDeviation(data: array of Double; mean: Double): Double;
var
i: Integer;
sumOfSquares, diff: Double;
begin
if Length(data) < 2 then
Exit(0.0);
sumOfSquares := 0.0;
for i := 0 to High(data) do
begin
diff := data[i] - mean;
sumOfSquares := sumOfSquares + (diff * diff);
end;
CalculateStandardDeviation := Sqrt(sumOfSquares / (Length(data) - 1));
end;
var
numbers: array[0..4] of Double = (3.4, 1.8, 4.3, 5.0, 6.2);
mean, stddev: Double;
begin
mean := CalculateMean(numbers);
stddev := CalculateStandardDeviation(numbers, mean);
Writeln(Format('Mean: %.2f', [mean]));
Writeln(Format('Standard Deviation: %.2f', [stddev]));
end.
(*
run:
Mean: 4.14
Standard Deviation: 1.66
*)