рефераты по менеджменту

Cетевые модели в оптимизации процессов и принятии управленческих решений

Страница
8

end;

Procedure Sort(j: Integer);

{Сортирует часть массива начинающуюся с j по возрастанию}

var i,k,Ind,Min{}: Integer;

begin

For i:=j to n do begin

Ind:=Towns[j];

Min:=32000;{}

For k:=i to n do

If Towns[k]<Min{Towns[Ind]{} Then begin

Ind:=k; Min:=Towns[k];{}

{Ch:=True;{}

end;

Exchange(Ind,i);

end;

end;

Procedure SetNextRote2;

var i: Integer;

begin

For i:=n downto 1 do begin

If Towns[i]>Towns[i-1] Then begin

Exchange(i-1,GetMinInd(i,i-1));

sort(i);

Exit;{Break;{}

end;

end;

end;

Function Fact(N: Integer): Real;

Begin

If n<>0 Then Fact:=n*Fact(n-1)

else Fact:=1;

end;

begin

ClrScr;

TextColor(14);

Summ:=0;

MinSumm:=2000000000;

ReadFromFile;

FillDist;

{InitTowns;{}

ToEstimate:=Fact(n-1);

WriteLn('Нaжмите Escape для отмены');

While Count<ToEstimate do begin

Summ:=0;

For i:=1 to n-1 do

Summ:=Summ+Dist[Towns[i],Towns[i+1]];

Summ:=Summ+Dist[Towns[n],Towns[1]];

If MinSumm>Summ Then begin

MinSumm:=Summ;

For k:=1 to n do

ResTour[k]:=Towns[k];

end;

SetNextRote2;

Inc(Count);

Prg:=(Count/ToEstimate*100);{}

Write('Кратчайший путь: ',MinSumm,' Просчитано: ',prg:3:1,

'%'{,ToEstimate:4);

For I:=1 to Round(prg*0.41) do Write(#219);{}

Write(#13);

If (KeyPressed) and (Readkey=#27) then halt;{}

end;

WriteLn(#7);

WriteLn('Получен кратчайший тур: ');

For k:=1 to n do

Write(ResTour{}[k],'-');

WriteLn(ResTour[1]);

WriteLn('Длина маршрута: ');

WriteLn(MinSumm);

Repeat Until KeyPressed;

end.

Размещено на Allbest.ru

Перейти на страницу номер:
 1  2  3  4  5  6  7  8 

© 2010-2024 рефераты по менеджменту