Текст подпрограммы и версий
av15r_p.zip  av15e_p.zip  av15c_p.zip 
Тексты тестовых примеров
tav15r_p.zip  tav15e_p.zip  tav15c_p.zip 

Подпрограмма:  AV15R (модуль AV15R_p)

Назначение

Умножение вектора на скаляр.

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

Подпрограмма AV15R выполняет умножение вектора на скаляр по формуле:

             AX  =  ( AX1, AX2, ... , AXn ) 

Вектор  X не обязательно должен занимать последовательные слова памяти машины и может располагаться в памяти с некоторыми постоянными интервалами, которые называются параметром приращения. Этот параметр может быть меньше нуля, если обработка компонент вектора должна проводиться в обратном порядке. В случае, когда параметры приращения равны 1, используется развернутый цикл с шагом 5.

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

procedure AV15R(N :Integer; SA :Real; var SX :Array of Real;
                INCX :Integer; var IERR :Integer);

Параметры

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

Версии

AV15E - вычисление произведения вектора, заданного с расширенной (Extended) точностью, на скаляр.
AV15C - вычисление произведения комплексного вектора на скаляр.

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

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

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

 

В подпрограмме АV15E одномерный массив обозначен DХ и имеет тип Extended.

В подпрограмме АV15С одномерный массив обозначен СХ и имеет тип Complex.

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

Unit TAV15R_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, AV15R_p;

function TAV15R: String;

implementation

function TAV15R: String;
var
N,INCX,IERR,J :Integer;
SA :Real;
const
SX :Array [0..2] of Real = ( 1.0,1.0,1.0 );
begin
Result := '';
N := 3;
SA := 2.0;
INСХ := 1;
IERR := 0;
AV15R(N,SA,SX,INCX,IERR);
Result := Result + Format('%s',['   PEЗYЛЬTAT=']);
Result := Result + #$0D#$0A;
J := 1;
WHILE ( J<=3 ) do
 begin
  Result := Result + Format('%20.16f',[SX[J-1]]) + #$0D#$0A;
  inc(J,1);
 end;
Result := Result + #$0D#$0A;
Result := Result + Format('%s',['   IERR=']);
Result := Result + Format('%3d',[IERR]) + #$0D#$0A;
UtRes('TAV15R',Result);  { вывод результатов в файл TAV15R.res }
exit;
end;

end.

Результаты:     SX  =  (2.0, 2.0, 2.0) ,   IERR  =  0