Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] решение транспортной задачи


Автор: raikodima 1.11.2008, 23:50
Народ есть вся программа которая вычисляет опорный план по методу минимума в строке. Не могли бы помочь с переделыванием под метод минимума в матрице? Вот исходник фрагмента где вычисляется минимум в строке. Заранее спасибо. Вся программа прилагается.

{Процедура создания опорного плана методом минимума в строке}
procedure f3 (var c:matr; n,m:integer; a,b:mas);
var
min,i,j,minj,max,maxj:word;
begin
stemp:=0;
for i:=1 to n do
 for j:=1 to m do
 x[i,j]:=0;
 for i:=1 to n do
 while a[i]<>0 do 
  begin
  max:=c[i,1];
  maxj:=1;
  for j:=1 to m do
  if max<c[i,j] then begin
                     max:=c[i,j];
                     maxj:=j;
                     end;
  min:=max;
  minj:=maxj;

  for j:=1 to m do
  if (c[i,j]<min) and (b[j]>0) and (x[i,j]=0) then begin
                                                    min:=c[i,j];
                                                    minj:=j;
                                                    end;
  if (a[i]>b[minj]) then begin
                       x[i,minj]:=b[minj];
                       a[i]:=a[i]-b[minj];
                       b[minj]:=0;
                       end;
  if b[minj]>=a[i] then begin
                        x[i,minj]:=a[i];
                        b[minj]:=b[minj]-a[i];
                        a[i]:=0;
                        end;
  end;
for i:=1 to 5 do
 for j:=1 to 5 do begin
 temp[i,j]:=x[i,j];
stemp:=stemp+(c[i,j]*x[i,j]);
                  end;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)