Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичні вказівки з курсової роботи AтаПЗОВПвТ....doc
Скачиваний:
7
Добавлен:
05.12.2018
Размер:
7.49 Mб
Скачать

Текст процедури на мові Delphy, яка реалізує метод графів

(модифікований метод Дейкстри)

procedure TForm1.Button7Click(Sender: TObject);

Label m1, m2, m3;

Var D, P : Array[1..10,1..10] Of Integer;

l : Integer;

Begin

m := StrToInt (InputBox('Окно ввода данных', 'Введите количество вершин-источников', '2'));

For i:=1 To n Do

For j:=1 To n Do

If ((StringGrid1.Cells[j-1,i-1]) <> '') Then

C[i,j] := StrToInt(StringGrid1.Cells[j-1,i-1])

Else

C[i,j] := 0;

For i:=1 To n Do

For j:=1 To n Do

If (C[i,j] = 0) Then

C[i,j] := sum;

For l:=1 To m Do

Begin

For i := 1 To 10 Do

Begin

If (i <= n) Then

V[i] := i

Else

v[i] := 0;

S[i] := 0;

End;

S[1] := V[l];

For i:=l To n Do

V[i] := V[i+1];

For i:=1 To n Do

Begin

P[l, i] := S[1];

D[l, i] := C[l, i];

End;

For k:=1 To (n-1) Do

Begin

min := sum;

For i:=1 To n Do

Begin

ind := i;

v_s;

If ((D[l, i] <= min) And (Not(v_s_))) Then

Begin

min := D[l, i];

w := i;

End;

End;

For i:=1 To n Do

If (S[i] = 0) Then

Begin

S[i] := w;

Goto m1;

End;

m1:;

For i:=1 To n Do

If (V[i] = w) Then

Begin

For j:=i To n Do

V[j] := V[j+1];

Goto m2;

End;

m2:;

i := 1;

v_ := V[i];

While (v_ <> 0) Do

Begin

If (D[l, v_] < (D[l, w]+C[w, v_])) Then

D[l, v_] := D[l, v_]

Else

Begin

D[l, v_] := D[l, w]+C[w, v_];

P[l, v_] := w;

End;

i := i + 1;

v_ := V[i];

End;

End;

End;

For l := 1 To m Do

Begin

ListBox1.Items.Add(' Кратчайшие расстояния от вершины');

stroka := ' ' + IntToStr(l) + ' (источника) ко всем остальным вершинам : D = {';

For i:=1 To n Do

If (i<>n) Then

stroka := stroka + IntToStr(D[l, i]) + ','

Else

stroka := stroka +IntToStr(D[l, i]) + '}';

ListBox1.Items.Add(stroka);

ListBox1.Items.Add('');

ListBox1.Items.Add(' Номер последней вершины при движении от вершины');

stroka := ' ' + IntToStr(l) + ' (источника) по кратчайшему пути к конкретной вершине : P = {';

P[l, l] := 0;

For i:=1 To n Do

If (I <> n) Then

stroka := stroka + IntToStr(P[l, i]) + ','

Else

stroka := stroka +IntToStr(P[l, i]) + '}';

ListBox1.Items.Add(stroka);

ListBox1.Items.Add('');

For i:=1 To n Do

If (i<>l) Then

Begin

j := 1;

Str(i, simbol);

SIM[i,j] := simbol[1];

m3:If (j = 1) Then

Begin

Str(P[l, i],simbol);

prom := simbol[1];

End

Else

Begin

Val(prom, cifra, cifra);

Str(P[l, cifra],simbol);

prom := simbol[1];

End;

j := j + 1;

SIM[i,j] := '>';

j := j + 1;

SIM[i,j] := '-';

j := j + 1;

SIM[i,j] := prom;

If (prom <> IntToStr(l)) Then

Goto m3;

End;

ListBox1.Items.Add(' Кратчайшие маршруты движения от вершины');

ListBox1.Items.Add(' ' + IntToStr(l) + ' (источника) ко всем остальным вершинам :');

ListBox1.Items.Add('');

For i:=1 to n Do

If (i <> l) Then

Begin

stroka := ' ';

For j:=20 downto 1 Do

stroka := stroka + SIM[i,j];

ind := Length(stroka);

For k:=1 To (40 - ind) Do

stroka := stroka + ' ';

stroka := stroka + ' = ' + IntToStr(D[l ,i]);

ListBox1.Items.Add(stroka);

End;

ListBox1.Items.Add('');

ListBox1.Items.Add('');

For i:=1 To 10 Do

For j:=1 To 20 Do

SIM[i,j] := '';

End;

end;

Додаток 19

Приклад виконання курсової роботи

(фрагменти роботи програмного комплексу)

Ввід вихідних даних

(матриці транспортних комунікацій)

Знаходження найкоротших відстаней

від кожного постачальника до кожного споживача вантажу

(додатковий ввід обсягів постачання і споживання вантажу)

Побудова опорного плану перевезень вантажу

методом мінімального вузла відправлення-призначення

Знаходження оптимального плану перевезень вантажу

і відповідних маршрутів його транспортування

Додаток 20

Затверджено

Зав. кафедрою "Інформаційні системи і технології""

проф. Гавриленко В.В.

“___” _____________2011 р.

Національний транспортний університет

(назва вищого навчального закладу)

Кафедра інформаційних систем та технологій

Дисципліна Моделі та методи оптимізації перевезень в транспортних системах

Напрям "Комп'ютерні науки", спеціальність "Інформаційні управляючі системи та технології" Курс 5 Група Семестр 9