|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.su/lib_na/cat/av_htm_p/av15r_p.htm
Дата изменения: Tue Nov 10 13:45:11 2015 Дата индексирования: Sun Apr 10 02:32:03 2016 Кодировка: Windows-1251 |
|
Текст подпрограммы и версий av15r_p.zip av15e_p.zip av15c_p.zip |
Тексты тестовых примеров tav15r_p.zip tav15e_p.zip tav15c_p.zip |
Умножение вектора на скаляр.
Подпрограмма 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