I'm trying to make a program to find the determinant of a matrix like this :
program determinan;
uses crt;
type
arr=array of array of real;
var
mat:arr;
uk:byte;
procedure ukuran(var x:arr;var n:byte);
begin
write('Masukkan ukuran matriks : ');readln(n);
setlength(x,n+1,n+1);
end;
procedure masuk(var x:arr;n:byte);
var
i,j:byte;
begin
writeln('Masukkan elemen matriks : ');
for i:= 1 to n do
for j:= 1 to n do
begin
write('E(',i,',',j,'):');
read(x[i,j]);
end;
end;
procedure tulis(x:arr;n:byte;nama:string);
var
i,j:byte;
begin
writeln('Matriks ',nama,' : ');
for i:= 1 to n do
begin
for j:=1 to n do
write(x[i,j]:0:0,' ');
writeln;
end;
end;
procedure segitiga(var x:arr;n:byte);
var
i,j,k:byte;
nano :real;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
begin
nano:=x[j,i]/x[i,i];
for k:=i to n do x[j,k]:=x[j,k]-nano*x[i,k];
end;
end;
function determinan(x:arr;n:byte):real;
var
i:byte;
begin
determinan:=1;
for i:=1 to n do
determinan:=determinan*x[i,i];
end;
begin
clrscr;
writeln('-----------------------------');
writeln('Program Menghitung Determinan');
writeln('-----------------------------');
ukuran(mat,uk);
masuk(mat,uk);writeln;
tulis(mat,uk,'asal');writeln;
segitiga(mat,uk);
tulis(mat,uk,'segitiga atas');writeln;
writeln('Determinan : ',determinan(mat,uk):0:0);
readkey;
end.
But, if I input with 3x3 matrix with elements (1,1,1;1,1,1;1,1,1) it will be exit with error 207. It's also happened if I try to input matrix with same colum element. But, it not happened in 2x2 matrix. Please, tell me what is the reason of such behavior because I can't fund it