кількості споживачів
if min <> 999999 then [k, p]: = fund [k]; [p]: = need [p] - fund [k]; [k]: = 0; i : = k to k doj: = p to cc do [i, j]: = 0; mas123 [k, p]: = 0;; i: = 1 to rc doj: = 1 to cc do (fund [i] <> 0) and (need [j] <> 0) thenfund [i]> = need [j] then [i, j]: = need [j]; [i]: = fund [i ] - need [j]; [j]: = 0; [i, j]: = fund [i]; [j]: = need [j] - fund [i]; [i]: = 0; mas123 [ i, j]: = 0;;: = 0;. StringGrid1. ColCount: = cc +2;. StringGrid1. RowCount: = rc +2;. StringGrid2. ColCount: = cc +2;. StringGrid2. RowCount: = rc +2; i: = 1 to rc doj: = 1 to cc domas123 [i, j] = 0 then Form2. StringGrid1. Cells [j, i]: ='' Form2. StringGrid1. Cells [j, i]: = IntToStr (mas123 [i, j]);: = sum + mas123 [i, j] * koef [i, j];; 2. Edit1. Text: = IntToStr (sum);// виводимо значення цільової функції в Edit
raspred_metod (mas123);. Show;
end; TForm1. pereraspred (i: integer);// здійснюється побудова наступного опорного плану
var, e, w, rc, cc, min: integer;
mas2: arr;: = Form2. StringGrid1. RowCount-2;: = Form2. StringGrid1. ColCount-2; q: = 1 to rc dow: = 1 to cc do [q, w]: = mas [q, w];// копія опорного плану
// ***** дістаємо адреси осередків, які були записані при складанні контуру **
for q: = 0 to k-1 do: = 0;: = 2; w <= rc * cc * 2-3 do (q <= k-1) and (contur [i , w] <> 0) and (contur [i, w +1] <> 0) thene mod 2 <> 0 then [contur [i, w], contur [i, w +1]] : = mas [contur [i, w], contur [i, w +1]] * (-1) mas2 [contur [i, w], contur [i, w +1]]: = mas [contur [i , w], contur [i, w +1]];: = w +2;: = e +1;;;: = 0;: = 99999; w <= rc * cc * 2-3 do (contur [ i, w] <> 0) and (contur [i, w +1] <> 0) then (abs (mas2 [contur [i, w], contur [i, w +1]]) < ;> mas2 [contur [i, w], contur [i, w +1]]) and (abs (min)> abs (mas2 [contur [i, w], contur [i, w +1]] )) then: = mas2 [contur [i, w], contur [i, w +1]];: = w +2;;: = 0; w <= rc * cc * 2-3 do (contur [i , w] <> 0) and (contur [i, w +1] <> 0) then [contur [i, w], contur [i, w +1]]: = abs (mas2 [contur [i, w], contur [i, w +1]] - min);: = w +2;; q: = 0 to Length (contur) - 1 dow: = 0 to rc * cc * 2-1 do [q, w]: = 0;// онуляем контур_metod (mas2);
end; TForm1. proced;// процедура для знаходження від'ємного значення за сумою контуру
var, j, max, nom_max, rc, cc, sum1: integer;: array of integer;: boolean;: = false;: = Form2. StringGrid1. RowCount-2;: = Form2. StringGrid1. ColCount-2; (massiv, k);: = -1; i: = 0 to k-1 do: = j +1; abs (contur [i, rc * cc * 2-1]) <> contur [i, rc * cc * 2-1] then: = true; [j]: = i;// номер контуру
end;; flag = false then// якщо flag = false тоді програма припиняє розрахунок і виводить оптимальний план і значення ЦФ
begin: = 0; i: = 1 to rc doj: = 1 to cc domas [i, j] ...