📄 det.inc
字号:
//type TMatDet = array[1..10,1..10] of extended;
function Det( a : TMatDet;
n : Longint;
acc : Extended ) : Extended;
label QP;
var i, j, k : Longint;
TempV, zero, v : Extended;
procedure swap( var x, y : Extended );
var v : Extended;
begin
v:=x; x:=y; y:=v;
end;
begin { Det }
TempV:=1.0;
if n > 1 then
begin
zero:=abs(a[1,1]);
for i:=1 to n do
for j:=1 to n do
if zero < abs(a[i,j])
then zero:=abs(a[i,j]);
if zero < acc
then
begin
TempV:=0.0;
goto QP;
end
else
zero:=acc*zero;
for i:=1 to n-1 do
begin
k:=i;
for j:=i+1 to n do
if abs(a[k,i]) < abs(a[j,i]) then k:=j;
if abs(a[k,i]) < zero then
begin
TempV:=0.0;
goto QP;
end;
if i <> k then
begin
for j:=i to n do swap(a[i,j], a[k,j]);
TempV:=-TempV;
end;
v:=1/a[i,i];
TempV:=TempV*a[i,i];
for j:=i+1 to n do a[i,j]:=v*a[i,j];
for j:=i+1 to n do
for k:=i+1 to n do a[j,k]:=a[j,k]-a[j,i]*a[i,k];
end;
end
else
begin
TempV:=a[1,1];
goto QP;
end;
if abs(a[n,n]) < 1.0E-10
then TempV:=0.0
else TempV:=TempV*a[n,n];
QP : Det:=TempV;
end; { Det }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -