Список положительных элементов списка - Prolog

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

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

Мне нужно решить такую задачу. Сформировать список L1 из элементов: минимальный среди положительных элементов всего списка L, минимальный среди положительных элементов из последних (n-1) элементов L и т.д. Как это сделать?
Я сделал так.
Но отрицательные элементы не исчезли. Как правильно?

Решение задачи: «Список положительных элементов списка»

textual
Листинг программы
task([],[]) :- !.
task(X,[]) :- get_pos(X,[]),!.
task(X,[H|Y]) :- get_pos(X,XP),head(XP,Q), min_elt(XP,Q,H),tail(X,1,XX),task(XX,Y).

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

Код решает задачу поиска списка положительных элементов списка. Он состоит из трех частей:

  1. Основной цикл, который выполняется до тех пор, пока не будет исчерпан список.
  2. Рекурсивный вызов, который вызывается для оставшейся части списка после удаления первого элемента.
  3. Рекурсивный вызов, который вызывается для оставшейся части списка после удаления последнего элемента. Вот список шагов, описывающих, что происходит в коде:
  4. Линейный поиск первого положительного элемента в списке.
  5. Если список пуст, то возвращается пустой список.
  6. Если список не пуст, то рекурсивно вызывается функция для оставшейся части списка после удаления первого элемента.
  7. Если список не пуст, то рекурсивно вызывается функция для оставшейся части списка после удаления последнего элемента.

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


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

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

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