Текст подпрограммы и версий
zp30r_p.zip  zp30e_p.zip 
Тексты тестовых примеров
tzp30r_p.zip  tzp30e_p.zip 

Функция:  ZP30R (модуль ZP30R_p)

Назначение

Вычисление значения полинома с вещественными коэффициентами от заданного вещественного аргумента.

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

ZP30R вычисляет значение полинома степени NР с вещественными коэффициентами

        A(1) + A(2)*X + A(3)*X2 + ... + A(NP + 1)*XNP 

от заданного вещественного аргумента по схеме Горнера.

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

function ZP30R(NP :Integer; var A :Array of Real; X :Real): Real;

Параметры

NP - заданная степень полинома (тип: целый);
A - вещественный вектор длины NР + 1, содержащий коэффициенты исходного полинома в порядке возрастания степеней;
X - заданное значение аргумента (тип: вещественный).

Версии

ZP30E - вычисление значения полинома с вещественными коэффициентами от заданного вещественного аргумента с расширенной (Extended) точностью. При этом вектор А и значение аргумента Х должны иметь тип Extended.

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

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

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

Unit tzp30r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, ZP30R_p;

function tzp30r: String;

implementation

function tzp30r: String;
var
NP,_i :Integer;
X,Y :Real;
const
A :Array [0..4] of Real = ( 24.0,-50.0,35.0,-10.0,1.0 );
begin
Result := '';  { результат функции }
NP := 4;
X := 3.0;
Y := ZP30R(NP,A,X);
Result := Result + Format('%10d ',[NP]) + #$0D#$0A;
Result := Result + #$0D#$0A;
for _i:=0 to 4 do
 begin
  Result := Result + Format('%20.16f ',[A[_i]]);
  if ( ((_i+1) mod 4)=0 )
   then Result := Result + #$0D#$0A;
 end;
Result := Result + #$0D#$0A;
Result := Result + Format(' %20.16f %20.16f ',[X,Y]) + #$0D#$0A;
UtRes('tzp30r',Result);  { вывод результатов в файл tzp30r.res }
exit;
end;

end.


Результат:    Y  =  0.0