Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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; //Процедура знаходження оптимального шляху
|