Текст подпрограммы и версий zp30r_p.zip zp30e_p.zip |
Тексты тестовых примеров tzp30r_p.zip tzp30e_p.zip |
Вычисление значения полинома с вещественными коэффициентами от заданного вещественного аргумента.
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