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.

Объяснение кода листинга программы

  1. Задача кода - определить, можно ли одновременно совершить два путешествия
  2. Входные переменные кода:   X, Y - два города, между которыми нужно определить возможность одновременного путешествия   A, B - два вида транспорта, которыми можно добраться до города
  3. Внутренние переменные кода:   - результат выполнения первого путешествия из города X на транспорте A   - результат выполнения второго путешествия из города Y на транспорте B
  4. Выполняются два путешествия из городов X и Y на транспорте A и B соответственно
  5. Если результаты обоих путешествий успешны (возвращают истинное значение), то выполняется проверка на равенство городов X и Y
  6. Если города X и Y не равны, то есть возможность одновременного путешествия

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы