Читать курсовая по математике: "Структуры данных и алгоритмы" Страница 2

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

повышает надежность программы.

Таблица отправления представляется своим динамическим типом. Этот динамический тип представляет совой цепь с одним информационным полем , содержащим время отправления в минутах от начала недели ( например Вт 17:42 будет записан числом 1*24*60+17*60+42). Такая форма хранения времени сочетает с себе компактность и легкость пересчета (пересчет требуется только при вводе и выводе, а в программе в большинстве случаев пересчет не нужен. Динамический тип использован по причине большого разброса в частоте отправления рейсов (могут быть рейсы, отправляющиеся каждый день через час, а могут быть рейсы отправляющиеся раз в неделю).

Маршрут рейса также представляется своим динамическим типом – однонаправленным динамическим списком. Причина использования списка аналогична полю отправления -разброс. Так например самолеты обычно не имеют более 4 посадок, а поезда наоборот делают много остановок. Информационное поле содержит информацию не об одной а о 4-х станциях, т.е. представляет собой массив из 4 элементов. Это сделано для экономии памяти на избыточных указателях. При этом усложнение кода программы незначительно.

Тип транспорта кодируется числом 1..4. По понятным причинам. Перечислимый тип не был использован для упрощения ввода данных из внешнего файла.

Классы, которые предоставляет рейс, представляется в виде массива индексом является класс, а типом элемента – булевский.

Внутренне каждый город обозначается своим номером (элемент интервального типа), что уменьшает расходы памяти и упрощает вычисление. А для хранения названий городов и их координат для отображения на экране используется свой тип – массив, элементами которого являются записи с полями для названия города и координат. Статический массив используется для простого и быстрого доступа к этим данным.

Для хранения времени пути используется тип Integer. Отрицательные числа нужны для контроля за превышением времени пути.

Для хранения цены используется тип LongInt. Причины выбора этого типа очевидны.

Тип Pattern для хранения исходных параметров поиска представляет собой запись с полями: время отправления относительно понедельника в минутах, начальный и конечный город, допустимые типы транспорта, допустимые классы, максимальное количество пересадок, максимальное время пути, максимальная цена, допустимые классы. Выбор типов для всех полей кроме «допустимые типы транспорта» обсуждался выше. Для поля «допустимые типы транспорта» выбран массив где тип индекс – это тип транспорта, а тип элемента – булевский. Это сделано по причине того что маршрут может включать. Поездки на разных видах транспорта (тех где в значение true). Запись использована чтоб передавать все данные единым объектом в процедуру поиска маршрута.

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

Тип AnswerList предназначен для ответа - множества всех


Интересная статья: Быстрое написание курсовой работы