|
Текст подпрограммы и версий av06r_p.zip av06e_p.zip av06c_p.zip |
Тексты тестовых примеров tav06r_p.zip tav06e_p.zip tav06c_p.zip |
Вычисление выражения (A + (U,V)) / B, где A и B - заданные числа, U и V - заданные векторы.
Для заданных векторов U и V длины N вычисляется выражение (А + (U,V)) / В, где
N
(U,V) = ∑ UK*VK
K=1
- скаляpное пpоизведение вектоpов U и V, а А и В - заданные числа.
function AV06R(var U :Array of Real; var V :Array of Real; A :Real;
B :Real; N :Integer): Real;
Параметры
| U, V - | одномерные массивы длины N, в которых задаются исходные векторы (тип: вещественный); |
| A, B - | заданные числа (тип: вещественный); |
| N - | размерность векторов U и V (тип: целый). |
Версии
| AV06E - | вычисление выражения (А + (U,V)) / В с расширенной (Extended) точностью; |
| AV06C - | вычисление выражения (А + (U,V)) / В для комплексных U, V, А и В . |
Вызываемые подпрограммы: нет
Замечания по использованию
| 1. |
В функции АV06E параметры U, V, А, В имеют тип Extended. | |
| 2. |
В функции АV06С параметры U, V, А, В имеют тип Complex. | |
| 3. |
В функции АV06С скалярное произведение вычисляется по формуле
N
(U,V) = ∑ UK*VK .
K=1
|
Unit tAv06r_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, AV06R_p;
function tAv06r: String;
implementation
function tAv06r: String;
var
N :Integer;
A,B,S :Real;
const
U1 :Array [0..3] of Real = ( 1.0,2.0,3.0,4.0 );
U2 :Array [0..3] of Real = ( 1.0,0.0,1.0,0.0 );
begin
ReSULt := '';
N := 4;
A := 3.0;
B := 2.0;
S := AV06R(U1,U2,A,B,N);
Result := Result + Format(' %20.16f',[S]);
UtRes('tAv06r',Result); { вывод результатов в файл tAv06r.res }
exit;
end;
end.
Результат: S = 3.5