Числовой список, найти максимальные и минимальные элементы - Prolog

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

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

Дан числовой список найти максимальные и минимальные элементы в нём

Решение задачи: «Числовой список, найти максимальные и минимальные элементы»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. min(intl,int)
  7. max(intl,int)
  8. flt(intl,int,intl)
  9. task(intl,intl,intl)
  10.  
  11. clauses
  12. min([X],X).
  13. min([X|H],X) :- min(H,M), M>=X.  
  14. min([X|H],M) :- min(H,M), M<X.
  15.  
  16. max([X],X).
  17. max([X|H],X) :- max(H,M), M<X.  
  18. max([X|H],M) :- max(H,M), M>=X.
  19.  
  20. flt([],_,[]).
  21. flt([H|T],H,[H|Z]) :- flt(T,H,Z).
  22. flt([Q|T],H,Z)     :- Q<>H,flt(T,H,Z).
  23.  
  24. task(X,Min,Max) :- min(X,Mi), max(X,Ma),flt(X,Mi,Min),flt(X,Ma,Max).

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

В коде используется язык программирования Prolog.

  1. В первой строке объявлены типы данных: int - целочисленный, intl - список целых чисел.
  2. Затем определены три предиката: min, max, flt.
  3. Предикат min находит минимальный элемент в списке.
  4. Предикат max находит максимальный элемент в списке.
  5. Предикат flt сортирует список по возрастанию и устанавливает необходимые значения.
  6. В последней строке определён предикат task, который находит минимальный, максимальный элементы и сортирует список по возрастанию и по убыванию. Пример использования: ?- task([5, 3, 8, 1, 2], X, Y). Вывод: X = 1, Y = 8.

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


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

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

8   голосов , оценка 4.5 из 5

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

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

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