Turbo Prolog. Задача на путешествия
Формулировка задачи:
Всем добрый день. Пролог давно подзабыт, но попросили решить пару задач.
Есть данная задача:
Необходимо дописать программу, используя предикаты concur и pos_travel по следующим условиям:
для concur - любые две транспортные компании являются конкурентами, если обслуживают один и тот же маршрут;
для pos_travel - возможно путешествие из одного города в другой через третий (промежуточный) город.
С выполнением самой логической задачи проблем нет - компания X1 является конкурентом компании X2, если они возят через город Y (например, MMM и OMD (маршрут Москва-Воронеж)). Для pos_travel аналогично, из пункта A в пункт B можно попасть, если есть пункт C (например, Москва-Саратов через Киев).
Вопрос в том, как синтаксически правильно написать эти условия на Turbo Prolog?
Решение задачи: «Turbo Prolog. Задача на путешествия»
textual
Листинг программы
concur(X, Y) :- travel(X, A, B, _), travel(Y, A, B, _), X <> Y.
Объяснение кода листинга программы
- Задача кода - определить, можно ли одновременно совершить два путешествия
- Входные переменные кода: X, Y - два города, между которыми нужно определить возможность одновременного путешествия A, B - два вида транспорта, которыми можно добраться до города
- Внутренние переменные кода: - результат выполнения первого путешествия из города X на транспорте A - результат выполнения второго путешествия из города Y на транспорте B
- Выполняются два путешествия из городов X и Y на транспорте A и B соответственно
- Если результаты обоих путешествий успешны (возвращают истинное значение), то выполняется проверка на равенство городов X и Y
- Если города X и Y не равны, то есть возможность одновременного путешествия
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д