Пишу транспортную задачу методом северо-западного угла.Алгоритм вроде написал правильно, но он не работаетю. Не могли бы вы посмотреть и сказать в каком месте я не прав.
| Код | 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
|
|