Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Procedure TForm1.InputMatrix;





var

i,j:integer;

begin

for i:=1 to N do

begin

GorodaIJ[i,i]:=-1;

for j:=1 to N do

begin

if i<>j then

begin

GorodaIJ[i,j]:=StrToInt(ObjEdit('Edit',i,j).Text);

end;

end;

end;

end;

//Процедуразнаходження перспективної пари із множини конкурующих пар

procedure TForm1.Konkurir (var r,m:byte);

var

i,j,l:byte;

xmin,ymin,max:integer;

begin

for i:=1 to N do

for j:=1 to N do

ParKonkur[i,j]:=-1;

//Визначаємо множину конкурующих пар міст і визначаємо для них оцінку

for i:=1 to N do

for j:=1 to N do

if GorodaIJ[i,j]=0 then

begin

xmin:=9999; ymin:=9999;

for l:=1 to N do

begin

if (GorodaIJ[i,l]<=xmin) and (GorodaIJ[i,l]<>-1) and (l<>j) then

xmin:=GorodaIJ[i,l];

if (GorodaIJ[l,j]<=ymin) and (GorodaIJ[l,j]<>-1) and (l<>i) then

ymin:=GorodaIJ[l,j];

end;

if xmin=9999 then xmin:=0;

if ymin=9999 then ymin:=0;

ParKonkur[i,j]:=xmin+ymin;

end;

//Знаходимо перспективну пару (r,m)

max:=-1;

for i:=1 to N do

for j:=1 to N do

if ParKonkur[i,j]>max then

begin

max:=ParKonkur[i,j];

r:=i; m:=j;

end;

end;

//Процедури ПРИВЕДЕННЯ матриці. А також для знаходження нижчої оцінки G

procedure TForm1.Etap (var GInd:integer);

var

i,j,min:integer;

begin

GInd:=0;

//Знаходимо минимальний елемент матриці по рядкам.

for i:=1 to N do

begin

min:=-1;

for j:=1 to N do

begin

if GorodaIJ[i,j]<>-1 then

begin

if min=-1 then min:=GorodaIJ[i,j];

if GorodaIJ[i,j]<=min then

begin

min:=GorodaIJ[i,j];

end;

end;

end;

if min=-1 then min:=0;

Cj[i]:=min;

end;

//Віднімаємо мінімальні елементи з елементів відповідних рядків

for i:=1 to N do

begin

for j:=1 to N do

begin

if GorodaIJ[i,j]<>-1 then

GorodaIJ[i,j]:=GorodaIJ[i,j]-Cj[i];

end;

end;

//Знаходимо мінімальний елемент матриці по стовпчикам

for j:=1 to N do

begin

min:=-1;

for i:=1 to N do

begin

if GorodaIJ[i,j]<>-1 then

begin

if min=-1 then min:=GorodaIJ[i,j];

if GorodaIJ[i,j]<=min then

begin

min:=GorodaIJ[i,j];

end;

end;

end;

if min=-1 then min:=0;

Ci[j]:=min;

end;

//Віднімаємо мінімальні елементи з елементів відповідних стовпчиків і знаходимо оптимальну множину з оцінкою

for i:=1 to N do

begin

GInd:=GInd+Cj[i]+Ci[i];

for j:=1 to N do

begin

if GorodaIJ[i,j]<>-1 then

GorodaIJ[i,j]:=GorodaIJ[i,j]-Ci[j];

end;

end;

end;

//Процедура ви креслення з матриці Stroka рядка і Stolb стовпчика

procedure TForm1.DelStrStolb (Stroka,Stolb:byte);

var

i:byte;

begin

if (Stroka<>0) and (Stolb<>0) then

for i:=1 to N do

begin

GorodaIJ[Stroka,i]:=-1;

GorodaIJ[i,Stolb]:=-1;

end;

end;

//Процедура знаходження оптимального шляху

Date: 2015-08-24; view: 345; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию