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

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

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

Необходимо найти максимальный элемент в списке, реализовать приложение для формы. max([N],N). - не нравится программе(

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

textual
Листинг программы
domains
int=integer
intl=int*
 
predicates
 
max_el(intl,int)
 
clauses
 
max_el([H],H).
max_el([H|T],H) :- max_el(T,Z), H > Z.
max_el([H|T],Z) :- max_el(T,Z), H <= Z.

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

  1. В начале кода определены два домена: int - целое число, intl - int*, то есть список целых чисел.
  2. Далее определены два предиката: max_el/2 - для нахождения максимального элемента в списке, и goal/0 - для обозначения конца списка.
  3. В первом правиле (clause) предиката max_el/2 указаны два аргумента: [H] - список, в котором ищется максимальный элемент, и H - сам элемент. В этом случае, если список пустой, то максимальным элементом будет являться любой элемент этого списка.
  4. Во втором правиле (clause) предиката max_el/2 указаны три аргумента: [H|T] - список, в котором ищется максимальный элемент, и H и Z - два последних элемента списка. Если элемент H больше Z, то он и будет максимальным.
  5. В третьем правиле (clause) предиката max_el/2 указаны те же три аргумента, что и во втором правиле, но с другими значениями. Если элемент H меньше или равен Z, то он и будет максимальным.

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


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

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

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