procedure DividePolynoms(const n : Integer; const m : Integer; p : array of double; const q : array of double; var k : Integer; var h : array of double; var r : array of double; Epsilon : Double); var J : Integer; I : Integer; begin if n>=m then begin j := n-m; repeat h[j] := p[j+m]/q[m]; i := m; repeat p[i+j] := p[i+j]-h[j]*q[i]; i := i-1; until not (i>=0); j := j-1; until not (j>=0); k := m-1; while True do begin if k<0 then begin Break; end; if Abs(p[k])>=Epsilon then begin Break; end; k := k-1; end; end else begin k := n; end; if K>=0 then begin i := k; while i>=0 do begin r[i] := p[i]; i := i-1; end; end; end; const p1: array[0 .. 2] of double = (0, -8, 6); p2: array[0 .. 1] of double = (0, 2); var k: integer; r, h: array[0 .. 10] of double; begin dividepolynoms(2, 1, p1, p2, k, h, r, 0.001); readln; end.