//Данная программа вычисляет детерминант матрицы//PascalABC.NET 3.2 сборка 1318 Var c:char; Reci:array of integer; ma:array of array of integer; n,nc,ip:integer; resf:real; function minor(ip,i,n:integer; var reci:array of integer):real; Var ic,j,c,ipp,icc:integer; res:real; b:boolean; arf:array[1..4] of integer; begin b:=true; c:=0; reci[ip]:=i; ipp:=ip+1; if ipp=nc-1 then begin for ic:=1 to n do begin for j:=1 to ip do if ic=reci[j] then b:=false; if b=true then begin inc(c); arf[c]:=ma[ipp,ic]; end; b:=true; end; inc(ipp); for ic:=1 to n do begin for j:=1 to ip do if ic=reci[j] then b:=false; if b=true then begin inc(c); arf[c]:=ma[ipp,ic]; end; b:=true; end; minor:=arf[1]*arf[4]-arf[2]*arf[3]; end else begin for ic:=1 to n do begin for j:=1 to ip do if ic=reci[j] then b:=false; if b=true then res+=ma[ipp,ic]*power(-1,ipp+i)*minor(ipp,ic,n,reci); b:=true; end; minor:=res; end;end;procedure start();Var i,j:integer;begin write('Введите количество строк и столбцов:'); readln(n); ip:=1; nc:=n; setlength(Reci,n+1); setlength(ma,n+1); for i:=1 to n do setlength(ma[i],n+1); writeln('Введите матрицу:'); for i:=1 to n do for j:=1 to n do readln(ma[i][j]); for i:=1 to n do resf+=ma[ip][i]*power(-1,ip+i)*minor(ip,i,n,reci); writeln('Res:',resf);end;beginrepeatreadln(c);until c in ['Z','z','Y','y'];if c in ['Y','y'] then halt else start();end.Пример работы программы:3 //введено ни z, ни y, повторяем вводz //продолжаем программуВведите количество строк и столбцов:3Введите матрицу:912837465Res:-183