Определить элемент списка L, следующий за элементом X в этом списке - Prolog

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

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

Определить предикат для формирования списка из элементов, вводимых с клавиатуры (элементы включаются в список в порядке их ввода, либо, при необходимости в обратном порядке). Определить элемент списка L, следующий за элементом х в этом списке. При отсутствии выдать текстовое сообщение

Решение задачи: «Определить элемент списка L, следующий за элементом X в этом списке»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. read_list(intl)
  7. get_after(intl,int,int)
  8. task
  9.  
  10. clauses
  11. read_list([H|T]):-readint(H),!,read_list(T).
  12. read_list([]).
  13.  
  14. get_after([_],_,_) :- write("element not found"),nl,fail.
  15. get_after([H,Q|_],H,Q).
  16. get_after([H,Q|T],Z,R) :- H<>Z,get_after([Q|T],Z,R).
  17.  
  18. task :- write("Enter list (end - empty line)"),nl,read_list(U),
  19.         write("Enter value"),nl,readint(V),get_after(U,V,R),write(R),nl.

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

  1. В коде используется язык программирования Prolog.
  2. Задача состоит в поиске элемента списка, следующего за заданным элементом.
  3. Для ввода списка и значения используется функция read_list и readint соответственно.
  4. Для поиска следующего элемента используется функция get_after.
  5. В функции read_list происходит чтение списка до тех пор, пока не будет введен пустой список.
  6. В функции get_after происходит поиск элемента, следующего за заданным элементом в списке.
  7. Если элемент не найден, выводится сообщение об ошибке.
  8. В функции task происходит ввод списка и значения, а затем вызов функции get_after для поиска следующего элемента.
  9. Результат выводится на экран.

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


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

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

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы