или
Заказать новую работу(фрагменты работы)
Задача:
Для заданной конечной сети без изолированных узлов требуется найти такой путь, при котором любая пара узлов данной сети может быть соединена частью этого пути напрямую или через другие узлы, а суммарная длина образующих его рёбер наименьшая по сравнению с такой же оценкой для других путей, обладающих этим свойством.
Написать программу, реализующую алгоритм на Delphi.
(фрагменты работы)
{стирание рёбер исходной сети}
for k:=0 to Length(Edges0)-1 do
if ((n+1)=Edges0[k].v1) or ((n+1)=Edges0[k].v2) then
begin
Pen.Color:=clBlack;
ind1 := Edges0[k].v1-1;
MoveTo(Net[ind1].x0+rad, Net[ind1].y0+rad);
ind2 := Edges0[k].v2-1;
LineTo(Net[ind2].x0+rad, Net[ind2].y0+rad);
Brush.Color:=clBlack;
Rectangle(Edges0[k].xc, Edges0[k].yc, Edges0[k].xc+10, Edges0[k].yc+12);
if ind1=n then DrawCircle(ind2)
elseDrawCircle(ind1);
end;
------
Пример 1
Количество узлов: 12
В результате работы программы получили:
Сначала предлагается открыть текстовый файл, в котором записана сеть. Файл должен содержать следующую информацию: размер сети, затем комбинации из двух номеров узлов и длины ребра между ними. В данном примере используется файл следующего содержания(числа записаны в столбик):
Похожие работы