Текст подпрограммы и версий
avz7r_p.zip  avz7e_p.zip  avz7c_p.zip 
Тексты тестовых примеров
tavz7r_p.zip  tavz7e_p.zip  tavz7c_p.zip 

Функция:  AVZ7R (модуль AVZ7R_p)

Назначение

Нахождение индекса максимальной по абсолютной величине компоненты вещественного вектора.

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

Если несколько компонент вектора имеют максимальное абсолютное значение, то из их индексов выбирается минимальный.

Вектор не обязательно должен занимать последовательные слова (ячейки) памяти машины и может располагаться в памяти с некоторыми интервалами (постоянными для данного вектора), которые называются параметрами приращения.
Параметр приращения может быть меньше нуля, если обработка компонент вектора должна производиться в обратном порядке.

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

function AVZ7R(N :Integer; var SX :Array of Real; INCX :Integer;
                var IERR :Integer): Integer;

Параметры

N - размерность вектора (тип: целый);
SX - вещественный одномерный массив длины N * | INСХ |, содержащий данный вектор;
INCX - параметр приращения, задающий расположение вектора в массиве (тип: целый);
IERR - целая переменная, указывающая характер ошибки; при этом:
IЕRR=65 - когда N ≤ 0 .

Версии

AVZ7E - нахождение индекса максимальной компоненты вещественного вектора, заданного с расширенной (Extended) точностью;
AVZ7C - нахождение индекса максимальной компоненты комплексного вектора.

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

UTAV10 - подпрограмма выдачи диагностических сообщений при работе подпрограмм АVZ7R и АVZ7С.
UTAV11 - подпрограмма выдачи диагностических сообщений при работе подпрограммы АVZ7E.

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

 

В функции АVZ7E одномерный массив, содержащий вектор, обозначен DХ и имеет тип Extended.

В функции АVZ7С одномерный массив, содержащий вектор, обозначен CX и имеет тип Complex.

Подпрограммы - функции АVZ7R и АVZ7E определяют наименьший индекс  i  такой, что

            | xi |  =  max [ | xj | :  j = 1, 2, ... , N ] 

Подпрограмма - функция АVZ7С определяет наименьший индекс  i  такой, что

            | xi |  =  max [ | Re(xj )| + | Im(xj )| :  j = 1, 2, ..., N ] 

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

Unit TAVZ7R_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, AVZ7R_p;

function TAVZ7R: String;

implementation

function TAVZ7R: String;
var
N,INCX,IERR,IZ :Integer;
const
SX :Array [0..10] of Real = ( 1.0,0.0,3.0,0.0,4.0,0.0,2.0,0.0,4.0,0.0,3.0 );
begin
Result := '';
N := 6;
INСХ := 2;
IERR := 0;
IZ := AVZ7R(N,SX,INCX,IERR);
Result := Result + Format('%s',['   PEЗYЛЬTAT=']);
Result := Result + Format('%3d',[IZ]) + #$0D#$0A;
Result := Result + Format('%s',['  IERR=']);
Result := Result + Format('%3d',[IERR]) + #$0D#$0A;
UtRes('TAVZ7R',Result);  { вывод результатов в файл TAVZ7R.res }
exit;
end;

end.

Результаты:   IZ    =  3. ,   IERR  =  0