Лабораторная №3 Вариант №21
.doc
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ
Лабораторная работа №3
по дисциплине
«Рекурсивно-логическое программирование»
на тему:
«Создание рекурсивных правил. Подсписки»
|
Студент |
|
|
|
|
|
||||||||
|
|
|
подпись, дата |
|
фамилия, инициалы |
|
||||||||
|
Группа |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
||||||||
|
Принял |
|
|
|
|
|
||||||||
|
|
|
|
|
Гаев Л.В. |
|
||||||||
|
ученая степень, звание |
|
подпись, дата |
|
фамилия, инициалы |
|
Липецк 2010
-
Задание
21. podsch(List1,List). в списке List - подсписки, указывающие для каждого элемента из List количество его вхождений
например podsch([a,b,c,a,c],[[a,2],[b,1],[c,2]]).
-
Листинг программы
kolvo([],E,0).
kolvo([E|T],E,N):-
kolvo(T,E,N1),N is N1+1.
kolvo([H|T],E,N):-
kolvo(T,E,N).
sp([],E,[]).
sp([E|T],E,W):-
sp(T,E,W).
sp([H|T],E,[H|W]):-
sp(T,E,W).
pods([],[]).
pods([H|T],[[H,N]|L]):-
sp(T,H,Q),kolvo([H|T],H,N),pods(Q,L).
-
Контрольный пример
-
Выводы о проделанной работе
При выполнении данной лабораторной работы я получил навыки программирования в Prolog-системе Arity-Prolog. Научился создавать предикаты и использовать рекурсивные правила, а также производить операции со списками и подсписками.
-
Список использованной литературы