Вычислить значения много члена и его первую производную, используя формулу Горнера значения функции в заданном интервале с заданным шагом. Значения аргумента подобрать самостоятельно y=9x^9+8х^8+7х^7+6х^6+5х^5+4х^4+3х^3+2х^2+х — Pascal(Паскаль)

{$N+}
uses crt;
const n=20;
type mas=array[1..n+1] of real;
function Pow(os:real;pk:byte):extended;
var i:byte;
    res:real;
begin
res:=1;
for i:=1 to pk do
res:=res*os;
Pow:=res;
end;
function Summ(x:real;m:mas;k:byte):extended;
var i:byte;
    sm:real;
begin
sm:=0;
for i:=n+1 downto 1 do
sm:=sm+Pow(x,k)*m[i];
Summ:=sm;
end;
procedure Proiz(m1:mas;var m2:mas);
var i:byte;
begin
for i:=1 to n do
m2[i]:=m1[i]*(n-i+1);
end;
procedure Vyvod(x:real;var m:mas;k:byte);
var i:byte;
begin
write(m[1]:0:2,'x^',k);
for i:=2 to k-1 do
if m[i]<0 then write(m[i]:0:2,'x^',k-i+1)
else write('+',m[i]:0:2,'x^',k-i+1);
if m[n]<0 then write(m[k]:0:2,'x')
else write('+',m[k]:0:2,'x');
if m[k+1]<0 then write(m[k+1]:0:2,'=')
else write('+',m[k+1]:0:2,'=');
write(Summ(x,m,i-1):0:8);
writeln;
end;
var a,p:mas;
    x:real;
    i:byte;
begin
clrscr;
randomize;
for i:=1 to n+1 do
a[i]:=5*random;
write('x=');readln(x);
writeln('Summa polynoma:');
Vyvod(x,a,n);
Proiz(a,p);
writeln('Proizvodnaya:');
Vyvod(x,p,n-1);
readln
end.

Leave a Comment

31 − 24 =