program Project1; {$APPTYPE CONSOLE} uses SysUtils, Math; procedure qwe; begin WriteLn(''); WriteLn(' '); WriteLn; end; procedure FindXY; const x1 : array [1..4] of Real = (1,1,2,1); x2 : array [1..4] of Real = (-1,1,0.5,0.5); var i, j, k, u : byte; q, n, m, r, s : integer; a : array [1..2, 1..2] of Real; b, x, f : array [1..2] of Real; xx, e, h : Real; procedure Func; begin f[1] := tan(x[1]-x[2])-x[1]*x[2]; f[2] := 0.7*x[1]*x[1]+2*x[2] - 1; end; begin n := 2; m := 1000; e := 1e-8; for u := 1 to 2 do begin x[1] := x1[u]; x[2] := x2[u]; s := 0; repeat Func; for i := 1 to n do b[i] := - f[i]; for j := 1 to n do begin xx := x[j]; h := e * abs(xx); x[j] := xx + h; Func; for i := 1 to n do a[i, j] := (f[i] + b[i]) / h; x[j] := xx; end; s := s + 1; if s = m + 1 then Exit; for i := 1 to n - 1 do for j := i + 1 to n do begin a[j, i] := - a[j, i] / a[i, i]; for k := i + 1 to n do a[j, k] := a[j, k] + a[j, i] * a[i, k]; b[j] := b[j] + a[j, i] * b[i]; end; f[n] := b[n] / a[n, n]; for i := n - 1 downto 1 do begin h := b[i]; for j := i + 1 to n do h := h - f[j] * a[i, j]; f[i] := h / a[i, i]; end; r := 0; for i := 1 to n do begin x[i] := x[i] + f[i]; if abs(f[i] / x[i]) > e then r := 1; end until r <> 1; WriteLn(' ', u,' x, y : ',x[1]:4:3, x[2]:8:3); end; end; ReadLn; end