Вставить заданный элемент в список на N-ую позицию - Prolog

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

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

Задан список вещественных чисел. 1) Вставить заданный элемент в список на N-ую позицию. 2) Определить максимальный элемент полученного списка.
Вот что у меня получилось. Помогите сделать вывод для Н-ой позиции и правильно ли описал процедуру для нее? и правильно ли определяется максимальный элемент?

Решение задачи: «Вставить заданный элемент в список на N-ую позицию»

textual
Листинг программы
domains
reall=real*
 
predicates
ins_in_pos(real,reall,integer,reall)
 
 
clauses
ins_in_pos(_,[],N,[]) :- N>0, write("Error!"), nl, fail.
ins_in_pos(X,T,0,[X|T]) :- !.
ins_in_pos(X,[H|T],N,[H|Q]) :- N1=N-1, ins_in_pos(X,T,N1,Q).

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

  1. В этом коде используется язык программирования Prolog.
  2. Задача программы - вставить заданный элемент в список на N-ую позицию.
  3. Код содержит два предиката: ins_in_pos и reall.
  4. Предикат reall относится к типу данных real и используется для обозначения вещественных чисел.
  5. Предикат ins_in_pos имеет четыре аргумента: X, T, N, Q.
  6. Аргумент X обозначает элемент, который необходимо вставить в список.
  7. Аргумент T обозначает список, в который необходимо вставить элемент.
  8. Аргумент N обозначает позицию, на которую необходимо вставить элемент.
  9. Аргумент Q обозначает результат работы программы.
  10. В первом утверждении предиката ins_in_pos проверяется, что позиция N больше нуля. Если это условие не выполняется, выводится сообщение об ошибке и программа завершается.
  11. Во втором утверждении предиката ins_in_pos проверяется, что позиция N равна нулю. Если это условие выполняется, элемент X вставляется в начало списка и возвращается результат.
  12. В третьем утверждении предиката ins_in_pos проверяется, что позиция N больше нуля. Если это условие выполняется, переменная N1 присваивается значение N-1 и рекурсивно вызывается функция ins_in_pos.
  13. Результатом работы программы является список, в котором элемент X вставлен на позицию N.
  14. В данном коде не используются скобки, чтобы выделить названия и значения переменных. Вместо этого используется формат написания с отступами.

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


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

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

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