Добавить новые элементы (по одному) в начало 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).
Объяснение кода листинга программы
- Задана база данных с тремя переменными: list, l и l2, которые являются списками целых чисел.
- В базе данных определены три предиката: append, addg и readint.
- Предикат append имеет три аргумента и используется для объединения двух списков в один.
- Предикат addg имеет три аргумента: E, l и l2. Он добавляет элемент E в начало списка l и в конец списка l2.
- В базе данных определено четыре правила:
- 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). - если первый список не пустой, то его первый элемент добавляется в начало результирующего списка, а остальные элементы объединяются с элементами второго списка.
- В главной цели программы пользователю предлагается ввести элемент для добавления в начало первого списка.
- Затем вызывается предикат addg для добавления введенного элемента в начало первого списка и в конец второго списка.
- Результат добавляется в третий список.
- Затем вызывается предикат append для объединения первого и второго списков с элементом, введенным пользователем.
- Результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д