Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2008, 00:11   #1
Yulichkaa
Новичок
Джуниор
 
Регистрация: 15.03.2008
Сообщений: 1
Вопрос Помогите!!!Пожалуйста!!С программкой в Паскале...

Нужно с помощью процедур или функций составить подпрограмму для получения обратной матрицы.
Yulichkaa вне форума Ответить с цитированием
Старый 16.03.2008, 03:06   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Держи функцию.
Код:
const MAX=100;
TMatrix=array [1..MAX,1..MAX] of extended;

procedure Inverse(var A,Result:TMatrix; dim:integer);
var i,j,k:integer;
    temp:TMatrix;
    value:extended;
begin

  for i:=1 to dim do
    for j:=1 to dim do
    begin
      temp[i,j]:=A[i,j];
     
      if i=j then
        Result[i,j]:=1.0
      else
        Result[i,j]:=0.0;
    end;

  for i:=1 to dim-1 do
  begin
    value:=temp[i,i];


    for j:=1 to dim do
    begin
      temp[i,j]:=temp[i,j]/value;
      Result[i,j]:=Result[i,j]/value;
    end;

    for j:=i+1 to dim do
    begin
      value:=temp[j,i];

      for k:=1 to dim do
      begin
        temp[j,k]:=temp[j,k]-temp[i,k]*value;
        Result[j,k]:=Result[j,k]-Result[i,k]*value;
      end;
    end;

  end;

  value:=temp[dim,dim];

  for i:=1 to dim do
  begin
    temp[dim,i]:=temp[dim,i]/value;
    Result[dim,i]:=Result[dim,i]/value;
  end;

  for i:=dim downto 2 do
    for j:=i-1 downto 1 do
    begin
      value:=temp[j,i];

      for k:=1 to dim do
      begin
        temp[j,k]:=temp[j,k]-temp[i,k]*value;
        Result[j,k]:=Result[j,k]-Result[i,k]*value;
      end;
    end;
  
end;
Если нужны комментарии, могу кинуть исходник. Здесь я их печатать не собираюсь.
Carbon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ребятки, помогите с программкой на С++ Zinerit Помощь студентам 1 17.06.2008 20:27
Помогите пожалуйста со строками в паскале. radist Паскаль, Turbo Pascal, PascalABC.NET 6 14.01.2007 01:26