Поиск максимального элемента списка - Prolog

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

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

1. Написать программу поиска максимального элемента списка.

Решение задачи: «Поиск максимального элемента списка»

textual
Листинг программы
max_el([X],X).
max_el([H|T],R) :- max_el(T,R), H<=R.
max_el([H|T],H) :- max_el(T,R1), H>R1.

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

  1. max_el([X],X). - это базовый случай, когда список состоит из одного элемента, в этом случае он и является максимальным
  2. max_el([H|T],R) :- max_el(T,R), H<=R. - это рекурсивный случай, когда список состоит из нескольких элементов, в этом случае максимальный элемент списка T с текущим максимальным значением R сравнивается с первым элементом списка (H), если он меньше или равен R, то рекурсивно вызывается функция max_el для списка T и текущего значения R, иначе значение R заменяется на значение H и функция возвращает найденный максимум
  3. max_el([H|T],H) :- max_el(T,R1), H>R1. - это ещё один рекурсивный случай, когда список состоит из нескольких элементов, в этом случае максимальный элемент списка T с текущим максимальным значением R1 сравнивается с первым элементом списка (H), если он больше R1, то значение R заменяется на значение H и функция возвращает найденный максимум

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


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

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

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