Показать сообщение отдельно
Лжэц
:|
Аватар для Лжэц
Сообщения: 1,746
Регистрация: 14.01.2009
Старый пост, нажмите что бы добавить к себе блог 31 января 2011, 17:50
  #904 (ПС)
-Цитата от Лжэц Посмотреть сообщение
ребята может кто делал в студенческие годы курсовую,программу для решений венгерского метода,венгерского алгоритма!может у кого осталась,поделитесь!паскаль,или делфи.
так что никто по этой теме не делал программ

может кто может до ума довести,прога незапускается и ошибок непишет(паскаль)
Показать скрытый текст
-
Program m;
Var
t,st1,st2,st3,st4,st5,sb1,sb2,sb3,sb4,sb5,minsrsb, imax,jmax,i,j,max,sum:integer;

a:array[1..5,1..5] of integer;
b:array[1..5] of integer;
c:array[1..5] of integer;
Begin

a[1,1]:=3; a[1,2]:=4; a[1,3]:=2; a[1,4]:=2; a[1,5]:=1;
a[2,1]:=4; a[2,2]:=5; a[2,3]:=3; a[2,4]:=1; a[2,5]:=3;
a[3,1]:=4; a[3,2]:=3; a[3,3]:=1; a[3,4]:=1; a[3,5]:=1;
a[4,1]:=3; a[4,2]:=1; a[4,3]:=2; a[4,4]:=2; a[4,5]:=2;
a[5,1]:=0; a[5,2]:=0; a[5,3]:=0; a[5,4]:=0; a[5,5]:=0;


b[1]:=0; b[2]:=0; b[3]:=0; b[4]:=0; b[5]:=0;


c[1]:=0; c[2]:=0; c[3]:=0; c[4]:=0; c[5]:=0;

begin
writeln('Исходная матрица');
for i:=1 to 5 do
begin
for j:=1 to 5 do
Write(a[i,j]);
writeln;
end;
end;

begin
imax:=1; jmax:=1;
for i:=1 to 5 do
for j:=1 to 5 do
if a[imax,jmax]<a[i,j]
then begin
imax:=i; jmax:=j;
end;
writeln;
writeln('максимальный элемент: ',a[imax,jmax]);
end;

begin
for i:=1 to 5 do
for j:=1 to 5 do
a[i,j]:=a[i,j]*(-1)+5;
begin
writeln;
writeln('полученная матрица после преобразования решения задачи на максимум:');
for i:=1 to 5 do
begin
for j:=1 to 5 do
Write(a[i,j]);
writeln;
end;
end;
end;

begin
writeln;
for i:=1 to 5 do
begin
minsrsb:=a[i,1];
for j:=1 to 5 do
if minsrsb>a[i,j]then
minsrsb:=a[i,j];
begin
for j:=1 to 5 do
a[i,j]:=a[i,j]-minsrsb;
end;
writeln('миниальный элемент строки ',i,'= ',minsrsb);
end;
end;

begin
writeln;
writeln('матрица редуцированная по строкам');
for i:=1 to 5 do
begin
for j:=1 to 5 do
Write(a[i,j]);
writeln;
end;
end;

begin
writeln;
for j:=1 to 5 do
begin
minsrsb:=a[j,1];
for i:=1 to 5 do
if minsrsb>a[i,j]then
minsrsb:=a[i,j];
begin
for i:=1 to 5 do
a[i,j]:=a[i,j]-minsrsb;
end;
writeln('миниальный элемент столбца ',j,'= ',minsrsb);
end;
end;

begin
writeln;
writeln('матрица редуцированная по столбцам');
for i:=1 to 5 do
begin
for j:=1 to 5 do
Write(a[i,j]);
writeln;
end;
end;

begin
writeln;
for i:=1 to 5 do
begin
for j:=1 to 5 do
if a[i,j]=0 then
b[i]:=b[i]+1;
writeln('количество нулей в строке'#32,i,'-',#32,b[i]);
end;
end;


begin
writeln;
for j:=1 to 5 do
begin
for i:=1 to 5 do
if a[i,j]=0 then
c[j]:=c[j]+1;
writeln('количество нулей в столбце'#32,j,'-',#32,c[j]);
end;
end;
begin

end;

End.

offline
Ответить с цитированием