Добавить новые элементы (по одному) в начало 1-го и в конец 2-го списка. Выполнить слияние полученных списков - Prolog

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

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

задание. даны два списка. добавить новые элементы(по одному) в начало первого списка и конец второго списка и выполнить слияние полученных списков.* *предусмотреть ввод элементов списка с клавиатуры и из файла. Результирующий список сохранить в файле.

Решение задачи: «Добавить новые элементы (по одному) в начало 1-го и в конец 2-го списка. Выполнить слияние полученных списков»

textual
Листинг программы
  domains
   list=integer*
l=integer*
l2=integer*
  predicates
  append(list,list,list)
addg(integer,l,l)
   clauses
addg(E,[],[E]).
addg(E,[H|T],[H|T1]):-addg(E,T,T1).
append([],[],[]).
append([X|Xs],L2,[X|Zs]):-append(Xs,L2,Zs).
   goal
  write ("vvedite element 1:= "),
 readint(E),
  addg (E,[56,77,23],L),
  write ("L=",L),
  append([11,55,33],[33,56,11],L3),
  write ("polu4 mssiv=",L3).

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

  1. Задана база данных с тремя переменными: list, l и l2, которые являются списками целых чисел.
  2. В базе данных определены три предиката: append, addg и readint.
  3. Предикат append имеет три аргумента и используется для объединения двух списков в один.
  4. Предикат addg имеет три аргумента: E, l и l2. Он добавляет элемент E в начало списка l и в конец списка l2.
  5. В базе данных определено четыре правила:
    • addg(E,[],[E]). - если элемент E отсутствует в обоих списках, то он добавляется в начало первого списка.
    • addg(E,[H|T],[H|T1]):-addg(E,T,T1). - если элемент E уже присутствует в первом списке, то он добавляется в конец второго списка.
    • append([],[],[]). - если оба списка пустые, то результатом будет пустой список.
    • append([X|Xs],L2,[X|Zs]):-append(Xs,L2,Zs). - если первый список не пустой, то его первый элемент добавляется в начало результирующего списка, а остальные элементы объединяются с элементами второго списка.
  6. В главной цели программы пользователю предлагается ввести элемент для добавления в начало первого списка.
  7. Затем вызывается предикат addg для добавления введенного элемента в начало первого списка и в конец второго списка.
  8. Результат добавляется в третий список.
  9. Затем вызывается предикат append для объединения первого и второго списков с элементом, введенным пользователем.
  10. Результат выводится на экран.

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


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

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

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