- •Модуль «Полиномы»
- •Процедура интегрирования многочлена
- •Процедура диффиренцирования многочлена
- •Interface //ќ §ў ёґ Їа®жҐ¤га ё дгЄжЁп
- •Implementation // ћїЁб ёґ дгЄжЁ© (ђҐ «ё§ жЁп)
- •I: word;
- •I: word;
- •I,k: word;
- •I,j,nu: word;
- •If not(d) then
- •I: word;
- •I,j,nu: word;
- •If not(d) then
- •I, l, t: word;
- •I: word;
- •I: word;
- •I,V,w : word;
Implementation // ћїЁб ёґ дгЄжЁ© (ђҐ «ё§ жЁп)
PROCEDURE PolySum(a,b: RealPtr; n,m: WORD; c: RealPtr);
VAR
I: word;
aa,bb,cc: RealPtr;
BEGIN
aa := a;
bb := b;
cc := c;
IF n > m THEN
BEGIN
FOR i := 0 TO m DO
BEGIN
a := aa;
b := bb;
c := cc;
inc(a,i);
inc(b,i);
Inc(c,i);
c^ := a^+b^
END;
FOR i := m+1 TO n DO
BEGIN
a := aa;
c := cc;
inc(a,i);
Inc(c,i);
c^ := a^
END
END
ELSE
BEGIN
FOR i := 0 TO n DO
BEGIN
a := aa;
b := bb;
c := cc;
inc(a,i);
inc(b,i);
Inc(c,i);
c^ := a^+b^
END;
FOR i := n+1 TO m DO
BEGIN
b := bb;
c := cc;
inc(b,i);
Inc(c,i);
c^ := b^
END
END
END;
PROCEDURE PolySub(a,b: RealPtr; n,m: WORD; c: RealPtr);
VAR
I: word;
aa,bb,cc: RealPtr;
BEGIN
aa := a;
bb := b;
cc := c;
IF n > m THEN
BEGIN
FOR i := 0 TO m DO
BEGIN
a := aa;
b := bb;
c := cc;
inc(a,i);
inc(b,i);
Inc(c,i);
c^ := a^-b^
END;
FOR i := m+1 TO n DO
BEGIN
a := aa;
c := cc;
inc(a,i);
Inc(c,i);
c^ := a^
END
END
ELSE
BEGIN
FOR i := 0 TO n DO
BEGIN
a := aa;
b := bb;
c := cc;
inc(a,i);
inc(b,i);
Inc(c,i);
c^ := a^-b^
END;
FOR i := n+1 TO m DO
BEGIN
b := bb;
c := cc;
inc(b,i);
Inc(c,i);
c^ := -b^
END
END
END;
PROCEDURE PolyMult(a,b: RealPtr; n,m: WORD; c: RealPtr);
VAR
I,k: word;
aa,bb,cc: RealPtr;
BEGIN
aa := a;
bb := b;
cc := c;
{-------------------------------------------}
If n >= m then begin
{-------------------------------------------}
FOR k := 0 to m do
BEGIN
c := cc;
Inc(c,k);
c^ := 0;
FOR i := 0 TO k DO
BEGIN
a := aa;
b := bb;
inc(a,i);
inc(b,k-i);
c^ := c^ + a^ * b^
END
END;
FOR k := m+1 TO m+n DO
BEGIN
c := cc;
Inc(c,k);
c^ := 0;
FOR i := 1 TO k-m DO
BEGIN
a := aa;
b := bb;
inc(a,k-m+1-i);
inc(b,i);
c^ := c^ + a^ * b^
END
END
{-------------------------------------------}
end else begin
{-------------------------------------------}
FOR k := 0 TO n DO
BEGIN
c := cc;
Inc(c,k);
c^ := 0;
FOR i := 0 TO k DO
BEGIN
a := aa;
b := bb;
inc(a,k-i);
inc(b,i);
c^ := c^ + a^ * b^
END
END;
FOR k := n+1 TO n+m DO
begin
c := cc;
Inc(c,k);
c^ := 0;
FOR i := 1 TO k DO
BEGIN
a := aa;
b := bb;
inc(a,i);
inc(b,k-n+1-i);
c^ := c^ + a^ * b^
END
END
{-------------------------------------------}
END
{-------------------------------------------}
END;
PROCEDURE PolyCutOne (n:WORD; k: RealPtr; v:WORD; VAR stl: WORD; p: RealPtr);
VAR