Определите, на каких маршрутах можно добраться от остановки X до остановки Y - Prolog

Узнай цену своей работы

Формулировка задачи:

Я новичок в прологе. Пытаюсь что-то сделать, но ничего не компилится) Скоро сдавать. Задание: Создайте базу данных городского транспорта: название транспорта, номер маршрута, список остановок. Определите, на каких маршрутах можно добраться от остановки X до остановки Y без пересадок. Среда разработки - SWI prolog. (на турбо прологе не принимают) Начальная база данных должна храниться в файле. В программе должно присутствовать меню с пунктами: просмотр базы данных; добавление записи; удаление записи; запрос к базе данных по заданию; выход. После завершения работы программы, все выполненные изменения базы должны сохраняться в файле базы данных. Моя бд, не знаю правильно ли оформил:
Спойлер
План действий у меня был такой: проверять принадлежность элементов X и Y(остановки, подаваемые на вход программе) с помощью предиката member спискам остановок. И если оба элемента найдены в списке, то вывести номер маршрута и тип транспорта на экран. Правда не получается это реализовать на практике) Меню приблизительно я вижу вот так:
Спойлер
Не обязательно использовать мою базу. Мне хотя бы нужен пример, и знать в правильном ли направлении я мыслю?

Решение задачи: «Определите, на каких маршрутах можно добраться от остановки X до остановки Y»

textual
Листинг программы
process(1):-writeln('Тип Транспорта:'),
read(Transport),
writeln('Номер маршрута: '),
read(Nomer),
write('Остановки: '), read(Ost),
assertz(information(Transport,Number,[Ost])).

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

  1. В первой строке кода определен процесс (process(1)), который будет выполняться при запуске программы.
  2. В процессе происходит вывод сообщения Тип Транспорта: и считывание соответствующей информации с помощью функции read(Transport).
  3. Затем выводится сообщение Номер маршрута: и считывается номер маршрута с помощью функции read(Nomer).
  4. Далее выводится сообщение Остановки: и считывается информация об остановках с помощью функции read(Ost).
  5. В конце процесса с помощью функции assertz(information(Transport,Number,[Ost])) создается новая запись в базе данных с информацией о типе транспорта, номере маршрута и остановках.

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

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