Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Транспортная задача


Автор: neocon 20.3.2010, 16:25
Пишу транспортную задачу методом северо-западного угла.Алгоритм вроде написал правильно, но он не работаетю. Не могли бы вы посмотреть и сказать в каком месте я не прав.
Код

procedure TForm1.Button4Click(Sender: TObject);
var i,j,sum:integer;
need: array[1..10] of integer;
 fund: array[1..10] of integer;
 mas: array[1..10,1..10] of integer;
 koef: array[1..10,1..10] of integer;
begin
if (n8.Checked=true) or (n9.Checked=True) then begin
if n10.Checked=true then
begin
  sum:=0; ;
 i:=1;
 j:=1;
repeat
   koef[i,j]:=strtoint(stringgrid1.Cells[i,j]);
   need[j]:=strtoint(stringgrid3.Cells[0,j]);
   fund[i]:=strtoint(stringgrid2.Cells[i,0]);
   inc(i);inc(j);
until (i<=p_otpr) and (j<=p_dost);
for i:=1 to p_otpr  do
For j:=1 to p_dost do begin
if (fund[i]<>0) and (need[j]<>0) then begin
if fund[i]>=need[j] then  begin
mas[i,j]:=need[j];
fund[i]:=fund[i]-need[j];
need[j]:=0;
end
else begin
mas[i,j]:=fund[i];
need[j]:=need[j]-fund[i];
fund[i]:=0;
end
end
else mas[i,j]:=0;
end;
for i:=1 to p_otpr do
for j:=1 to p_dost do  begin
TEdit(FindComponent('L'+IntToStr(i)+IntToStr(j))).Text:=IntToStr(mas[i,j]);
sum:=sum+mas[i,j]*koef[i,j];
end;
label7.Caption:=''+inttostr(sum);
end;
end

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