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

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

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

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

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

textual
Листинг программы
domains
int=integer
intl=int*
 
predicates
min(intl,int)
max(intl,int)
flt(intl,int,intl)
task(intl,intl,intl)
 
clauses
min([X],X).
min([X|H],X) :- min(H,M), M>=X.  
min([X|H],M) :- min(H,M), M<X.
 
max([X],X).
max([X|H],X) :- max(H,M), M<X.  
max([X|H],M) :- max(H,M), M>=X.
 
flt([],_,[]).
flt([H|T],H,[H|Z]) :- flt(T,H,Z).
flt([Q|T],H,Z)     :- Q<>H,flt(T,H,Z).
 
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
Похожие ответы