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