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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2011, 02:59   #1
Рома Раст
Новичок
Джуниор
 
Регистрация: 28.12.2011
Сообщений: 1
По умолчанию Скласти блок-схему до програми на тему : "Пошук оберненої матриці"

Скласти блок-схему до програми на тему : "Пошук оберненої матриці" в Турбо Паскаль 7.0
Помогите пожалуйста написать блок схему к программе:

Program InversMatrix;
const max_size=10; {max size matrix }
type matr=array[1..max_size,1..max_size] of real;
label 1;
var
a,invers,tmp_matrix : matr;
size : Integer; {size matrix}
i,j :Integer;
dt : real;
procedure PrintMatr(m:matr;n:integer);
var i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(m[i,j]:8:3);
writeln;
end;
end;
Function Pow (x:Integer; y:Integer):Integer;
var
i,z :Integer;
begin
z := 1;
for i:=1 to y do
z := z * x;
Pow := z;
end;
procedure GetMatr(a:matr; var b:matr; m,i,j:integer);
var ki,kj,di,dj:integer;
begin
di:=0;
for ki:=1 to m-1 do
begin
if (ki=i) then di:=1;
dj:=0;
for kj:=1 to m-1 do
begin
if (kj=j) then dj:=1;
b[ki,kj]:=a[ki+di,kj+dj];
end;
end;
end;
Function Determinant(a:matr;n:integer):real;
var i,j,k:longint;
b:matr;
d : real;
begin
d:=0; k:=1;
if (n<1) then
begin
writeln('Determinant: Cann''t run. N=',n); halt;
end;
if (n=1)
then d:=a[1,1]
else if (n=2)
then d:=a[1,1]*a[2,2]-a[2,1]*a[1,2]
else { n>2 }
for i:=1 to n do
begin
GetMatr(a,b,n,i,1);
{writeln('i=',i,' a[',i,',1]=',a[i,1]);
PrintMatr(b,n-1);}
d:=d+k*a[i,1]*Determinant(b,n-1);
k:=-k;
end;
Determinant:=d;
end;
begin
Write('Enter size matrix [1..10] :');
ReadLn(size);
for i:=1 to size do
for j:=1 to size do
begin
Write('a[',i,',',j,']=');
ReadLn(a[i,j]);end;
begin
if determinant(a,size)=0 then
begin write ('matryca vyrudzena,obernenoi ne isnue!');
goto 1; end;
end;
WriteLn('========================== ======================');
WriteLn(' Source matrix ');
WriteLn;
PrintMatr(a,size);
dt:=Determinant(a,size);
WriteLn('========================== ======================');
writeln('Determinant = ',dt:8:3);
{sozdaem matrix is dopolneniy}
for i:=1 to size do
for j:=1 to size do
begin
GetMatr(a,tmp_matrix,size,j,i);
invers[i,j]:=Pow(-1,i+j)*Determinant(tmp_matrix,size-1)/dt;
end;
WriteLn('========================== ======================');
WriteLn(' Inverse matrix ');
WriteLn;
PrintMatr(invers,size);
1:readln;

end.
Заранее спасибо!

Последний раз редактировалось Рома Раст; 29.12.2011 в 03:53.
Рома Раст вне форума Ответить с цитированием
Старый 29.12.2011, 05:46   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Контакты в подписи. Обращайтесь. Сделаю за денюжку.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
Составить блок-схему программы на "C++ Builder 5" Kreadlling Общие вопросы C/C++ 0 30.09.2009 11:49
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50