program polinoms;
uses crt;
type polinom=array[0..50] of real;
var a,b,c,d:polinom;
n1,n2,n3,n4,i,j,k,n:integer;
f,g,h,t,q,r:real;
procedure intput(var n:integer; var p:polinom);
var i:integer;
begin
write('Введите степень многочлена n=');readln(n);
writeln('Введите коэффициенты многочлена, начиная со старшего.');
for i:=n downto 0 do readln(p[i]);
end;
procedure output(n:integer; p:polinom);
var i:integer;
begin
for i:=n downto 0 do write(p[i]:3:2,' ');
writeln;
end;
procedure sum(n:integer; p:polinom;
k:integer; q:polinom;
var m:integer; var r:polinom);
var i:integer;
begin
if k<n
then m:=n
else m:=k;
for i:=0 to m+n-k do r[i]:=p[i]+q[i];
if k<n
then for i:=k+1 to n do r[i]:=p[i]
else if k>n
then for i:=n+1 to k do r[i]:=q[i];
end;
procedure num_mult(n:integer; p:polinom;
k:integer;
var m:integer; var r:polinom);
var i:integer;
begin
m:=n;
for i:=0 to m do r[i]:=k*p[i];
end;
procedure multiply(n:integer; p:polinom;
k:integer; q:polinom;
var m:integer; var r:polinom);
var i,j:integer;
begin
m:=n+k;
for i:=0 to m do r[i]:=0;
for i:=0 to n do
for j:=0 to k do
r[i+j]:=r[i+j]+p[i]*q[j];
end;
| procedure division(n:integer; p:polinom;
m:integer; q:polinom;
var k:integer; var c:polinom;
var r:integer; var s:polinom);
var i:integer;
begin
if n<m
then begin k:=0;c[0]:=0;
r:=n;
for i:=0 to n do s[i]:=p[i];
end
else
begin
k:=n-m;
for i:=k downto 0 do
begin
c[i]:=p[m+i]/q[m];
for j:=m downto 0 do
p[j+i]:=p[j+i]-c[i]*q[j];
end;
r:=m-1;
for j:=0 to r do s[j]:=p[j];
end;
end;
procedure derivation(n:integer; p:polinom;
var m:integer; var r:polinom);
var i:integer;
begin
m:=n-1;
for i:=m downto 0 do
r[i]:=(i+1)*p[i+1];
end;
procedure value(n:integer; p:polinom;
c:real;
var m:real);
var i,t:integer;
b,r:polinom;
begin
i:=1;b[1]:=1;b[0]:=-c;
division(n,p,i,b,t,r,i,b);
m:=b[0];
end;
begin
clrscr;
writeln('Введите первый многочлен');intput(n1,a);
writeln(' Введите второй многочлен '); intput(n2,b);
division(n1,a,n2,b,n3,c,n4,d);
writeln('Частное равно');
output(n3,c);
writeln('Остаток от деления');
output(n4,d);
writeln('Сумма коэффициентов первого многочлена равна');
value(n1,a,1,f);writeln(f);
end.
|