|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
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 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Контакты в подписи. Обращайтесь. Сделаю за денюжку.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. | воваава | Помощь студентам | 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 |