Текст подпрограммы и версий
bs03r_p.zip , bs03e_p.zip
Тексты тестовых примеров
tbs03r_p.zip , tbs03e_p.zip

Подпрограмма:  BS03R (модуль BS03R_p)

Назначение

Вычисление медианы заданной выборки.

Математическое описание

Пусть задан выборочный вектор X = (x1, x2,..., xN). Подпрограмма упорядочивает его компоненты по возрастанию и вычисляет выборочное значение медианы XMED:

           XMED = x(N + 1)/2   для нечетных N,   

           XMED = 0.5(xN/2 + x(N/2)+1)   для четных N .

С.А.Айвазян, И.С.Енюков, Л.Д.Мешалкин. Прикладная статистика: основы моделирования и первичная обработка данных. М.,"Финансы и статистика", 1983 г.

Использование

procedure BS03R(var X :Array of Real; var N :Integer; var XMED :Real); 

Параметры

X - заданный вещественный выборочный вектор длины N;
N - длина вектора X (тип: целый);
XMED - вещественная переменная, содержащая выборочное значение медианы.

Версии

BS03E - вычисление медианы выборки в режиме расширенной (Extended) точности.

Вызываемые подпрограммы

AVZ5R - упорядочивание вектора по возрастанию значений его компонент; используется в подпрограмме BS03R.
AVZ5E - упорядочивание вектора заданного с расширенной (Extended) точностью, по возрастанию его компонент; используется в подпрограмме BS03E.

Замечания по использованию

  По окончании работы подпрограммы массив X содержит компоненты исходного вектора X в возрастающем порядке.

Пример использования

Unit tbs03r_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, BS03R_p;

function tbs03r: String; 

implementation

function tbs03r: String;
var
N :Integer;
XMED :Real;
const
X :Array [0..3] of Real = ( 1.0,2.0,3.0,4.0 );
begin
Result := '';
N := 4;
BS03R(X,N,XMED);
Result := Result + Format('%s',[' TBS03R: XMED =']);
Result := Result + Format('%20.16f',[XMED]) + #$0D#$0A;
UtRes('tbs03r',Result);  { вывод результатов в файл tbs03r.res }
end;

end.


Результаты:  XMED = 2.5