Руководство к решению задач по механике материалов и конструкций. Егодуров Г.С - 241 стр.

UptoLike

Рубрика: 

241
{процедура общего вида для транспонирования матриц}
Procedure GMTRA(A:Matr; Var B: Matr; M;K: Integer);
Begin
For I:=1 to M do
For J:=1 to K do B[j,i]:=A[i,j];
End;
{Процедура общего вида для перемножения матриц}
Procedure GMPRD(A,B: Matr; Var C: Matr; M,N,K: Integer);
Begin
For I:=1 to M do
Begin
For J:=1 to K do
Begin
C[i,j]:=0;
For L:=1 to N do C[i,j]:=C[i,j]+A[i,L]*B[L,j];
End;
End;
{Процедура общего вида для вычисления минора}
Procedure getMinor)var Mat:Matr; N,l,m:integer;var Minor: Matr);
{Выделяет из матрицы Mat размерности N минор Minor, получающийся
вычеркиванием l-й строки и m-го столбца}
var i,j:byte;
begin
for i:=1 to N do
if (i<l) then
for j:=1 to N do
if (j<m) then Minor [i,j]:=Mat[i,j]
else Minor [i,j]:Mat[i,j+1]
else
for j:=1 to N do
if (j<m) then Minor[i,j]:=Mat[i+1j]
else Minor[i,j]:=Mat[i+1,j+1];
end;
{Функция для вычисления определителя матрицы}
function det (Mat:Matr; N:Integer):real;
{Вычисляется детерминант матрицы Mat размерности N.USES: getMinor}
var
i,j:byte;
Minor;Matr;
sum:real;
begin
if (N=1) then det:=Matr[1,1]
else begin
sum:=0;
for i:=1 to N do
begin
getMinor(Mat,N,1,i,Minor);
if Odd(i) then sum:=sum+Mat[1,i]*det(Minor,N-1)
else sum:=sum-Mat[1,i]*det(Minor,N-1);
end;
det:=sum;
end;
      {процедура общего вида для транспонирования матриц}
      Procedure GMTRA(A:Matr; Var B: Matr; M;K: Integer);
               Begin
                       For I:=1 to M do
                       For J:=1 to K do B[j,i]:=A[i,j];
               End;
      {Процедура общего вида для перемножения матриц}
      Procedure GMPRD(A,B: Matr; Var C: Matr; M,N,K: Integer);
               Begin
                       For I:=1 to M do
                                Begin
                                        For J:=1 to K do
                                                Begin
                                        C[i,j]:=0;
                                        For L:=1 to N do C[i,j]:=C[i,j]+A[i,L]*B[L,j];
                                                End;
                                        End;
      {Процедура общего вида для вычисления минора}
      Procedure getMinor)var Mat:Matr; N,l,m:integer;var Minor: Matr);
      {Выделяет из матрицы Mat размерности N минор Minor, получающийся
вычеркиванием l-й строки и m-го столбца}
      var i,j:byte;
      begin
               for i:=1 to N do
                       if (i