logo
Граф и его элементы

7.1 Описание алгоритма

Ниже приведен алгоритм (рисунок 3) работы программы в упрощенном виде, для лучшего восприятия хода работы программы.

Рисунок 12 - Алгоритм работы программы

7.2 Разработка программы

Для программной реализации алгоритма Флойда был использован язык программирования Delphi 7. Для оформления формы были использованы такие компоненты как: button (кнопка возврата условия, а так же для нахождения пути), StringGrid (отвечает за количество вершин), edit (для установки из какой в какую вершину будем искать кратчайший путь ), label (комментарий), LabelPath (вывод ответа), mainmenu (выпадающее меню).

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

Остальной код программы состоит из процедур, отвечающих за функции такие как:

- чтение матрицы из Edit - procedure TForm1.InputMatrix;

- нахождение перспективной пары из множества конкурирующих пар - procedure TForm1.Konkurir;

- привидение (вычитание минимума элементов) матрицы, нахождение нижней оценки (границы) - procedure TForm1.Etap;

- вычеркивание из матрицы строки и столбца, определение новой диагонали - procedure TForm1.DelStrStolb;

- нахождение оптимального пути - procedure TForm1.OpredilPuti;

- проверка на замкнутость пути - procedure ProverkaIskl;

- процедура, описывающая нажатие на кнопку "найти" - procedure TForm3.Button2Click;

- увеличение/уменьшение количествава вершин указанных в Edit1 - procedure TForm3.Button1Click;

- несколько простейших процедур, описывающих выпадающее меню.

В практически всех процедурах используются циклы с параметрами, для перебора всех имеющихся строк и столбцов.