sample032.PAS

{* Решение системы 3-х уравненй с тремя неизвестными *}

Unit SAMPLE032;
Interface
Implementation
Begin
 writeln('
решение системы 3-х уравненй с тремя неизвестными
{ решение системы 3-х уравнений с тремя неизвестными }
{ ------------------------------------------------------------------------ }
{ решение уравнений вида: }
{ |a1*x + b1*y + c1*z = d1| }
{ |a2*x + b2*y + c2*z = d2| }
{ |a3*x + b3*y + c3*z = d3| }
{ }
{ метод решения: }
{ |d1 b1 c1| |a1 d1 c1| |a1 b1 d1| }
{ |d2 b2 c2| |a2 d2 c2| |a2 b2 d2| }
{ |d3 b3 c3| |a3 d3 c3| |a3 b3 d3| }
{ x = ---------- y = ---------- z = ---------- }
{ |a1 b1 c1| |a1 b1 c1| |a1 b1 c1| }
{ |a2 b2 c2| |a2 b2 c2| |a2 b2 c2| }
{ |a3 b3 c3| |a3 b3 c3| |a3 b3 c3| }
{ }
{ выражаем определители третьего порядка: }
{ e := (a1*b2*c3+b1*c2*a3+c1*a2*b3-a3*b2*c1-b3*c2*a1-c3*a2*b1); }
{ ex := (d1*b2*c3+b1*c2*d3+c1*d2*b3-d3*b2*c1-b3*c2*d1-c3*d2*b1); }
{ ey := (a1*d2*c3+d1*c2*a3+c1*a2*d3-a3*d2*c1-d3*c2*a1-c3*a2*d1); }
{ ez := (a1*b2*d3+b1*d2*a3+d1*a2*b3-a3*b2*d1-b3*d2*a1-d3*a2*b1); }
{ x = ex/e }
{ y = ey/e }
{ z = ez/e }
{ ------------------------------------------------------------------------ }
'
);
End.

Program pas;

Uses sample032.pas; {* Эту строку можно удалить *}
Var {* В работе нам потребуются переменные: *}
  a1 : real;
  a2 : real;
  a3 : real;
  b1 : real;
  b2 : real;
  b3 : real;
  c1 : real;
  c2 : real;
  c3 : real;
  d1 : real;
  d2 : real;
  d3 : real;
  x  : real;
  y  : real;
  z  : real;
  e  : real;
  ex : real;
  ey : real;
  ez : real;
Begin
  writeln('введите коэффициенты уравнения:a1, b1, c1, d1, a2, b2, c2, d2, a3, b3, c3, d3');
  readln(a1, b1, c1, d1, a2, b2, c2, d2, a3, b3, c3, d3);
  e := (a1 * b2 * c3 + b1 * c2 * a3 + c1 * a2 * b3 - a3 * b2 * c1 - b3 * c2 * a1 - c3 * a2 * b1);
  ex := (d1 * b2 * c3 + b1 * c2 * d3 + c1 * d2 * b3 - d3 * b2 * c1 - b3 * c2 * d1 - c3 * d2 * b1);
  ey := (a1 * d2 * c3 + d1 * c2 * a3 + c1 * a2 * d3 - a3 * d2 * c1 - d3 * c2 * a1 - c3 * a2 * d1);
  ez := (a1 * b2 * d3 + b1 * d2 * a3 + d1 * a2 * b3 - a3 * b2 * d1 - b3 * d2 * a1 - d3 * a2 * b1);
  If ( e = 0 ) And ( (ex = 0) Or (ey = 0) Or (ez = 0) ) Then
    writeln('бесконечное множество решений')
  Else If ( e0 ) And ( (ex = 0) Or (ey = 0) Or (ez = 0) ) Then
    writeln('нет решений')
  Else Begin
    x := ex / e;
  y := ey / e;
  z := ez / e;
  writeln('x = ', x);
  writeln('y = ', y);
  writeln('z = ', z);
End;

  End......