program SISTEM_JEDNACINA;
Uses WinCrt;
const jednacina=3;
type MATRICA= array[0..jednacina,0..jednacina+1] of Real;
var d:array[0..jednacina] of real;
a,det:MATRICA;
X:array[1..jednacina] of real;
var i:integer;
procedure UNOS;
var i,j:integer;
begin
writeln (' UNESI JEDNACINU OBLIKA ax+by+cz=d ');
for i:=1 to jednacina do
begin
writeln;
writeln (i,') ');
for j:=1 to jednacina+1 do
begin
write ('a[',i,',',j,']=');
readln(a[i,j]);
end;
end;
end;
procedure DETERMINANTA (a:matrica; n:integer; var det:matrica);
{pravi matricu za odredjivanje determinante, gdje je n=0 matrica sistema,
n=1 matrica za 1. nepoznatu, n=2 za drugu, itd. }
var i,j:integer;
begin
writeln (n,')-------------------------');
for i:=1 to jednacina do
begin
writeln;
for j:=1 to jednacina do
begin
if j=n
then det[i,j]:=a[i,jednacina+1]
else det[i,j]:=a[i,j];
write (det[i,j]:3:2,' ');
end;
end;
writeln;
writeln;
end;
function RAZVIJ_DET (det:matrica):real;
{funkcija koja odredjuje determinantu matrice}
begin
RAZVIJ_DET:=det[1,1]*det[2,2]*det[3,3]+det[2,1]*det[3,2]*det[1,3]+det[3,1]*det[1,2]*det[2,3]
-det[3,1]*det[2,2]*det[1,3]-det[2,1]*det[3,3]*det[1,2]-det[1,1]*det[3,2]*det[2,3];
end;
begin
UNOS;
writeln;
for i:=0 to jednacina do
begin
DETERMINANTA (a,i,det);
d[i]:=RAZVIJ_DET(det);
writeln ('d[',i,']=',d[i]:3:2);
end;
if d[0]=0
then
begin
write ('> Greska, D=0');
exit;
end;
writeln;
for i:=1 to jednacina do
begin
x[i]:=d[i]/d[0];
writeln ('x[',i,']=',x[i]:3:2);
end;
end.
ps: Ovo je pitanje možda više za matematički podforum, ali sam ga zbog programerske prirode postavio ovdje.
HVALA!