Курсовая работа: Поиск кратчайшего пути в лабиринте 2
1. Каждой вершине, не имеющей окончательной метки, присваивается новая временная метка – наименьшая из ее временной и числа, которому присвоена окончательная метка на предыдущем шаге.
2. Определяется наименьшая из всех временных меток, которая и становится окончательной меткой своей вершины. В случае равенства выбирается любая из них.
Циклический процесс п.1 и п.2 продолжается до тех пор, пока конечная вершина не получит окончательной метки. Легко видеть, что окончательная метка каждой вершины – это кратчайшее расстояния между начальной и конечной вершинами.
4. Модульная организация приложения
Реализация проекта выполнена в рамках трех модулей. Каждый из них выполняет определенные для него функции. Разделение функций модулей выполнено в соответствии с задачами проекта. В общем случае разделение выполняется на две составные части: проведение расчетов и визуализация полученных данных.
4.1 Общая схема взаимодействия модулей
4.2 Описание модулей
Каждый из модулей реализует свой класс. Описание модулей призываются к описанию классов (их назначения) и методов классов (решения определенных задач класса).
1). UnWay — модуль реализации класса TWay проведения всех вычисления нахождения кратчайшего пути.
Методы класса T Way.
Procedure TWay.Input — процедура ввода перегородок комнаты
Procedure TWay.CreateAdj — процедура формирование матрицы смежности комнат
Procedure TWay.ShortRoom – процедура поиска минимального пути
2). UnDraw — модуль реализации класса TOcno
Методы класса TOcno.
Procedure TOcno.Organize - процедура формирует сеть прямоугольников
Procedure TOcno.DrawWay – процедура рисует найденный кратчайший путь
Procedure TOcno.DrawRect – процедура рисует перегородки лабиринта
5. Текст программы
В данном пункте приводятся тексты отдельных наиболее значимых разработанных классов приложения и их ключевых методов.
Класса TWay вычисления маршрута коня по шахматному полю.
TWay = class
Public