Список положительных элементов списка - 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. Если список не пуст, то рекурсивно вызывается функция для оставшейся части списка после удаления последнего элемента.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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