Для вычисления определителей матриц n*n по схеме Гаусса- Pascal(Паскаль)

program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
const n=10;//порядок матрицы
var Matrica:array[1..n,1..n] of real;
    i,j, kol:integer;
    det,k:real;
    q:integer; // индикатор состояния процесса
function _Rus(s:String):String; //Для правильного отображения русских шрифтов
var i:integer;
    _s:String;
begin
_s:=s;
for i:=1 to length(s) do  begin
case ord(s[i]) of
192..239: _s[i]:=chr(ord(s[i])-64);
240..255: _s[i]:=chr(ord(s[i])-16);
168: _s[i]:=chr(240);
184: _s[i]:=chr(241);
  end;
end;
 _Rus:=_s;
end;
 
begin
repeat
randomize; //инициализация ГСЧ
for i:=1 to n do
 for j:=1 to n do
   Matrica[i,j]:=(Random(10)+1);
 
for i:=1 to n do begin
 for j:=1 to n do write(Matrica[i,j]:0:0,' ');
 writeln;
 end;
 
   det:=1;
   for kol:=1 to n-1 do begin
   
for i:=kol to n do begin
  det:=det*Matrica[i,kol];
  k:=Matrica[i,kol];
  for j:=kol to n do Matrica[i,j]:=Matrica[i,j]/k;
  end;
 
  det:=-det;
  for j:=kol to n do Matrica[kol,j]:=-Matrica[kol,j];
 
  for i:=kol+1 to n do
   for j:=kol to n do Matrica[i,j]:=Matrica[i,j]+Matrica[kol,j];
 
 det:=-det;
  for j:=kol to n do Matrica[kol,j]:=-Matrica[kol,j];
          end;
 
     det:=det*Matrica[n,n];
 
 writeln('det= ',det:0:4);
 writeln(_Rus('Если хотите продолжить - введите 1, а если нет - введите -1'));
 read(q);
 until(q=-1);
  { TODO -oUser -cConsole Main : Insert code here }
end.
program Project2;
 const n=10;//порядок матрицы
var Matrica:array[1..n,1..n] of real;
    i,j, kol:integer;
    det,k:real;
    q:integer; // индикатор состояния процесса
function _Rus(s:String):String; //Для правильного отображения русских шрифтов
var i:integer;
    _s:String;
begin
_s:=s;
for i:=1 to length(s) do  begin
case ord(s[i]) of
192..239: _s[i]:=chr(ord(s[i])-64);
240..255: _s[i]:=chr(ord(s[i])-16);
168: _s[i]:=chr(240);
184: _s[i]:=chr(241);
  end;
end;
 _Rus:=_s;
end;
 
begin
repeat
randomize; //инициализация ГСЧ
for i:=1 to n do
 for j:=1 to n do
   Matrica[i,j]:=(Random(10)+1);
 
for i:=1 to n do begin
 for j:=1 to n do write(Matrica[i,j]:0:0,' ');
 writeln;
 end;
 
   det:=1;
   for kol:=1 to n-1 do begin
   
for i:=kol to n do begin
  det:=det*Matrica[i,kol];
  k:=Matrica[i,kol];
  for j:=kol to n do Matrica[i,j]:=Matrica[i,j]/k;
  end;
 
  det:=-det;
  for j:=kol to n do Matrica[kol,j]:=-Matrica[kol,j];
 
  for i:=kol+1 to n do
   for j:=kol to n do Matrica[i,j]:=Matrica[i,j]+Matrica[kol,j];
 
 det:=-det;
  for j:=kol to n do Matrica[kol,j]:=-Matrica[kol,j];
          end;
 
     det:=det*Matrica[n,n];
 
 writeln('det= ',det:0:4);
 writeln(_Rus('Если хотите продолжить - введите 1, а если нет - введите -1'));
 read(q);
 until(q=-1);
end.

Leave a Comment

− 5 = 4