Эта прога volvo ( я матрицу переправил на другую)
Исходный код
Const
n = 4;
Type
Equation =
Array[1 .. n, 1 .. Succ(n)] Of Double;
matrix =
Array[1 .. n, 1 .. n] Of Double;
Const
a: Equation =
(( 2, 1, -5, 1),
(1, -3, 0, -6),
( 0, 2,-1, 2),
(1,4,-7,6));
Procedure GetMatrix(wout: Integer;
Var m: matrix);
Var i, j: Integer;
Begin
For i := 1 To n Do
For j := 1 To n Do
If j <> wout Then m[i, j] := a[i, j]
Else m[i, j] := a[i, Succ(n)]
End;
Function Det(a: matrix; n: integer): Double;
Var
i, j, k: Integer; d: Double;
Const
Eps = 10E-6;
Begin
For i := 1 To Pred(n) Do
Begin
If Abs(a[i, i]) < Eps Then
Begin
Det := 0.0; Exit
End;
For j := Succ(i) To n Do
Begin
d := a[j, i] / a[i, i];
For k := i To n Do
a[j, k] := a[j, k] - d * a[i, k];
End;
End;
d := 1.0;
For i := 1 To n Do
d := d * a[i, i];
Det := d
End;
Var
i: Integer;
mx: matrix;
Determ: Double;
begin
GetMatrix(Succ(n), mx);
Determ := Det(mx, n);
For i := 1 To n Do
Begin
GetMatrix(i, mx);
WriteLn( 'x(', i, ') = ', (Det(mx, n) / Determ):7:4 )
End
end.
Она работает для матрицы 3 порядка, а почему она не работает для 4 порядка?