Код:
Const
A0:Array[1..5,1..5] of Real=(( 7.8, 0.1, 2.5, 3.4, 0.8),
( 2.3,-10.8, 1.8, 2.1, 2.6),
( 4.5, 2.3, 9.8, 2.7, 0.3),
( 0.2, 0.4, 1.7, 2.5, 0.2),
( 2.5, 0.3, 0.2, 2.5, 5.5));
B0:Array[1..5] of Real=(38.493, 8.085, 58.74, 19.581, 47.052);
VAR
i,j,k,m:Integer;
Dummy,R:Real;
A:Array[1..5,1..5] of Real;
B:Array[1..5] of Real;
BEGIN
A:=A0;
B:=B0;
For i:=1 to 5 do
begin
For j:=1 to 5 do write(A[i,j]:6:2,'*x',j,' + ');
Writeln(' = ',B[i]:6:3);
end;
writeln;
For k:=1 to 5 do
begin
If A[k,k]=0 then
begin
m:=k;
repeat
Inc(m);
until A[m,k]<>0;
For j:=1 to 5 do
begin
Dummy:=A[k,j];
A[k,j]:=A[m,j];
A[m,j]:=Dummy;
end;
Dummy:=B[k];
B[k]:=B[m];
B[m]:=Dummy;
end;
For i:=k to 5 do
begin
R:=A[i,k];
If R<>0 then
begin
For j:=k to 5 do
A[i,j]:=A[i,j]/R;
B[i]:=B[i]/R;
end;
end;
For i:=k+1 to 5 do
If A[i,k]=1 then
begin
For j:=k to 5 do
A[i,j]:=A[k,j]-A[i,j];
B[i]:=B[k]-B[i];
end;
end;
For i:=5 downto 1 do
For j:=5 downto i+1 do
B[i]:=B[i]-B[j]*A[i,j];
Writeln('The result and its testing:');
For i:=1 to 5 do
begin
Dummy:=0;
For j:=1 to 5 do
Dummy:=Dummy+B[j]*A0[i,j];
Writeln('x[',i,']= ',B[i]:6:3,' Sum= ',Dummy:6:3,' B[',i,']= ',B0[i]:6:3);
end;
Readln
END.