|
Текст подпрограммы и версий bs03r_p.zip , bs03e_p.zip |
Тексты тестовых примеров tbs03r_p.zip , tbs03e_p.zip |
Вычисление медианы заданной выборки.
Пусть задан выборочный вектор 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