AFON // радиотехник affonya@mail.ru
← Все проекты Delphi

Статистика массива

Минимум, максимум, среднее и среднеквадратичное отклонение набора чисел.

DP.22 · Алгоритмы

Задача

По массиву вещественных чисел вычислить основные статистики.

Алгоритм

Первый проход считает сумму и экстремумы, второй — сумму квадратов отклонений для СКО.

Исходный код

⇩ Скачать 22-statistika-massiva.dpr

program StatistikaMassiva;
{$mode delphi}{$apptype console}
uses SysUtils, Math;
var a: array[1..8] of Double = (4.2, 7.1, 3.3, 9.8, 5.5, 2.1, 6.6, 8.0);
    i: Integer; sum, mean, sd, mn, mx: Double;
begin
  sum := 0; mn := a[1]; mx := a[1];
  for i := Low(a) to High(a) do begin
    sum := sum + a[i];
    if a[i] < mn then mn := a[i];
    if a[i] > mx then mx := a[i];
  end;
  mean := sum / Length(a);
  sd := 0;
  for i := Low(a) to High(a) do sd := sd + Sqr(a[i] - mean);
  sd := Sqrt(sd / Length(a));
  WriteLn('Минимум:  ', mn:0:3);
  WriteLn('Максимум: ', mx:0:3);
  WriteLn('Среднее:  ', mean:0:3);
  WriteLn('СКО:      ', sd:0:3);
  ReadLn;
end.

Пояснения

Sqr возводит в квадрат, Sqrt берёт корень. Length(a) даёт число элементов.