How to calculate the mean and the standard deviation of an array of floating-point values in Pascal

1 Answer

0 votes
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

*)

 



answered Jun 29, 2025 by avibootz
...