Определите, на каких маршрутах можно добраться от остановки 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])).
Объяснение кода листинга программы
- В первой строке кода определен процесс (process(1)), который будет выполняться при запуске программы.
- В процессе происходит вывод сообщения
Тип Транспорта:
и считывание соответствующей информации с помощью функции read(Transport). - Затем выводится сообщение
Номер маршрута:
и считывается номер маршрута с помощью функции read(Nomer). - Далее выводится сообщение
Остановки:
и считывается информация об остановках с помощью функции read(Ost). - В конце процесса с помощью функции assertz(information(Transport,Number,[Ost])) создается новая запись в базе данных с информацией о типе транспорта, номере маршрута и остановках.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д