Текст подпрограммы и версий 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