Для зберігання номера рейсу використовується тип string [10] тому у номерах рейсу часто використовуються різні не цифрові шифри, індекси, коди. p> Загальне кількість міст - інтервальний тип. Автоматична перевірка кордонів цього типу підвищує надійність програми.
Таблиця відправлення представляється своїм динамічним типом. Цей динамічний тип представляє совою ланцюг з одним інформаційним полем, що містить час відправлення у хвилинах від початку тижня (наприклад Вт 17:42 буде записаний числом 1 * 24 * 60 +17 * 60 +42). Така форма зберігання часу поєднує з собі компактність і легкість перерахунку (перерахунок потрібно тільки при введенні і виведенні, а в програмі в більшості випадків перерахунок не потрібен. Динамічний тип використаний за причини великого розкиду в частоті відправлення рейсів (можуть бути рейси, вирушають кожен день через годину, а можуть бути рейси відправляються раз на тиждень).
Маршрут рейсу також представляється своїм динамічним типом - односпрямованим динамічним списком. Причина використання списку аналогічна полю відправлення-розкид. Так наприклад літаки зазвичай не мають більше 4 посадок, а поїзда навпаки роблять багато зупинок. Інформаційне поле містить інформацію не про однієї а про 4-х станціях, тобто являє собою масив з 4 елементів. Це зроблено для економії пам'яті на надлишкових покажчиках. При цьому ускладнення коду програми незначно. p> Тип транспорту кодується числом 1 .. 4. Зі зрозумілих причин. Перелічувальний тип не був використаний для спрощення введення даних із зовнішнього файлу.
Класи, які надає рейс, представляється у вигляді масиву індексом є клас, а типом елемента - булевський.
Внутрішньо кожне місто позначається своїм номером (елемент інтервального типу), що зменшує витрати пам'яті і спрощує обчислення. А для зберігання назв міст і їх координат для відображення на екрані використовується свій тип - масив, елементами якого є записи з полями для назви міста і координат. Статичний масив використовується для простого і швидкого доступу до цих даних. p> Для зберігання часу шляху використовується тип Integer. Негативні числа потрібні для контролю за перевищенням часу шляху. p> Для зберігання ціни використовується тип LongInt. Причини вибору цього типу очевидні. p> Тип Pattern для зберігання вихідних параметрів пошуку являє собою запис з полями: час відправлення щодо понеділка в хвилинах, початковий і кінцевий місто, допустимі типи транспорту, допустимі класи, максимальна кількість пересадок, максимальний час шляху, максимальна ціна, допустимі класи. Вибір типів для всіх полів крім В«Допустимі типи транспортуВ» обговорювалося вище. Для поля "допустимі типи транспортуВ» обраний масив де тип індекс - це тип транспорту, а тип елемента - булевський. Це зроблено по причини того що маршрут може включати. Поїздки на різних видах транспорту (Тих де в значення true). Запис використана щоб передавати всі дані єдиним об'єктом в процедуру пошуку ...