Нахождение n-го элемента списка - Prolog

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

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

Написать программу для получения значения n-го элемента списка. Например: в списке [three, one, two] второй элемент равен one. Напишите, пожалуйста полную программу.

Решение задачи: «Нахождение n-го элемента списка»

textual
Листинг программы
  1. domains
  2. list = string*
  3.  
  4. predicates
  5. nth(integer, list, string)
  6.  
  7. clauses
  8. nth(1, [X|_], X).
  9. nth(N, [_|T], X) :-
  10.     NN = N - 1,
  11.     nth(NN, T, X).
  12.  
  13. goal
  14. L = [one, two, three],
  15. write(L), nl,
  16. write("N: "),
  17. readint(N),
  18. nth(N, L, X),
  19. write(X), nl.

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

  1. domains - определение типа данных для переменных в коде. В данном случае, список представлен как строка из элементов.
  2. predicates - определение функции (предиката) nth, которая принимает три аргумента: целое число N, список L и возвращает строку X.
  3. clauses - определение правил (условий) для функции nth. Первое правило говорит, что если N равно 1, то функция возвращает первый элемент списка L. Второе правило говорит, что если N больше 1, то функция рекурсивно вызывает саму себя, уменьшая N на 1, и объединяет результат с последним элементом списка T.
  4. goal - определение начальной информации и действий, которые должны быть выполнены. Создается список L со значениями [one, two, three]. Затем этот список выводится на экран, после чего пользователю предлагается ввести целое число N. После ввода числа, вызывается функция nth с аргументами N и L, и результат выводится на экран.

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


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

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

15   голосов , оценка 3.8 из 5

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

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

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