Поиск медианы

Медиан - возможное значение признака, которое делит ранжированную совокупность (вариационный ряд выборки) на две равные части: 50 % «нижних» единиц ряда данных будут иметь значение признака не больше, чем медиана, а «верхние» 50 % — значения признака не меньше, чем медиана.

Прошу обратить внимание на функцию Sort(), которая будет использоваться в примере. Как вы наверно уже догадались эта функция сортирует массив, а сам алгоритм можно выбрать абсолютно любой (алгоритмы сортировки были описаны ранее в этой статьей ).

Логика выполнения программы:

  • Отсортировать массив
  • Если кол-во чисел четное, то найти среднее между серединными ячейками массива.
  • Если кол-во числе не четное, то взять серединную ячейку.

Подсказка: функция trunc округляет значение в меньшую сторону

(*Ввод массива*)
for i:=1 to n do readln(M[i]);
(*Сортировка*)
M := Sort(M);
(*Логическое условие*)
if (length(M) mod 2)=0 then mediana:=(M[trunc(length(M))]+M[trunc(length(M))+1])/2
else mediana:=M[trunc(length(M))];
(*Вывод*)
writeln("Медиана=",mediana:5:2);

Настоятельно рекомендуем использовать для переменной mediana тип real.

↑ Расскажите друзьям о статье


Comments system Cackle

© EduNow.su — материалы подлежат полному/частичному копированию при указании прямой ссылки на источник. (Сегодня 24.11.17)