Задача про транспортную систему. Подбор вариантов проезда с учетом кол-ва пересадок, длительности, видов транспорта (самолет, авто, поезд, водн.) — страница 2
изменяются от задачи к задачи и задаются каждым пользователем. Результатом работы программы является конечное множество маршрутов. Два маршрута мы будем считать различными, если они отличаются хотя бы одним городом следования или хотя бы одним рейсом. После того, как найдены все маршруты они сортируются по времени прибытия. Метод решения – метод последовательных испытаний. Поиск решений будет осуществляться рекурсивно, причем максимальная глубина рекурсии будет равна максимальному количеству пересадок. Так как мы имеем ограничения по некоторым параметрам то мы можем отсечь заведомо ошибочную ветвь поиска решений, сделав проверку на превышение параметров. Это позволит выиграть дополнительное время. (о реализации более подробно п.4) 3. Так как транспортная система включает в себя достаточно большой объем информации, в целях доступа к большему объему памяти, также в целях более рационального использования памяти и по причине недопустимости использования статических объектов в некоторых случаях, в программе для внутреннего представления широко используются динамические объекты. Для объединения большого количества данных в одном объекте, а также для реализации динамических объектов используется комбинированный тип (запись). Для внутреннего хранения информации о рейсах используется цепь (однонаправленный список) PFlight с 7-ю информационными полями различных типов: 1) string[20] так по понятным причинам. 2) string[10] т.к. в номерах рейса часто используются различные не цифровые шифры, индексы, коды. 3) 4) 5) 4-х станциях, т.е. представляет собой массив из 4 элементов. Это сделано для экономии памяти на избыточных указателях. При этом усложнение кода программы незначительно. 6) 7) представляется в виде массива индексом является класс, а типом элемента – булевский. Внутренне каждый город обозначается своим номером (элемент интервального типа), что уменьшает расходы памяти и упрощает вычисление. А для хранения названий городов и их координат для отображения на экране используется свой тип – массив, элементами которого являются записи с полями для названия города и координат. Статический массив используется для простого и быстрого доступа к этим данным. Для хранения времени пути используется тип Integer. Отрицательные числа нужны для контроля за превышением времени пути. Для хранения цены используется тип LongInt. Причины выбора этого типа очевидны. Тип Pattern для хранения исходных параметров поиска представляет
Похожие работы
- Практические занятия
- Рефераты
- Рефераты