Отчеты по лабораторным работам
1 1 1 1 1 1 1 1 1 1 Рейтинг 0.00 (0 Голоса)

Отчёт по лабораторной работе Изучение структуры данных типа Список в языке Пролог и методы их обработки

Цель работы: ознакомиться с реализацией структуры данных типа список в языке Пролог и методами их обработки.

Постановка задачи:

1. Реализовать набор функций для обработки списков:

a. Добавление элемента к списку

b. Удаление элемента из списка

c. Конкатенация список

d. Определение длины списка

e. Определение принадлежности объекта списку

Выполнение работы:

1. Набор функций:

a) Добавление элемента к списку:

domains

list=integer*

number=integer

predicates

add(list, list, number).

clauses

add([], [Num], Num).

add([H|T], [H|T2], Num):- add(T, T2, Num).

goal

add([0,1,2], X, 3), write(X).

b)

domains

list=integer*

number=integer

predicates

del(list, list).

clauses

del([], []).

del([H], []).

del([H|T], [H|T2]):- del(T, T2).

goal

del([0,1,2,3], X), write(X).

c)

domains

list=integer*

predicates

ccat(list, list, list).

clauses

ccat([], [], []).

ccat([], [H|T], [H|Res]):- ccat([], T, Res).

ccat([H|T], List2, [H|Res]):- ccat(T, List2, Res).

goal

ccat([0,1,2,3], [4,5,6], X), write(X).

d)

domains

list=integer*

number=integer

predicates

len(list, number).

clauses

len([], 0).

len([_|T], Num):- len(T, Num1), Num=Num1+1.

goal

len([0,1,2,3], X), write(X).

e)

domains

list=integer*

number=integer

predicates

has(list, number).

clauses

has([], _):- write("No").

has([H|T], Num):- H<>Num, has(T, Num); write("Yes").

goal

has([0,1,2,3], 2).

2. Найти сумму четных элементов списка.

domains

list=integer*

predicates

sum_of(list, integer)

clauses

sum_of([], 0).

sum_of([H|T], R) :- (H mod 2)=0, sum_of(T, R1), R=R1+H; sum_of(T, R).

goal

sum_of([4,2,3,5,9,10],R),

write("The Sum of even elements is ",R).

Результаты работы:

Результаты работы:

Вывод: в результате выполнения работы были изучены структуры данных типа список в языке Пролог и методы их обработки.

Добавить комментарий


Защитный код
Обновить

По темам:

История Украины

Культурология

Высшая математика

Информатика

Охотоведение

Статистика

География

Военная наука

Английский язык

Генетика

Разное

Технологиеские темы

Украинский язык

Филология

Философия

Химия

Экология

Социология

Физическое воспитание

Растениевосдство

Педагогика

История

Психология

Религиоведение

Плодоводство

Экономические темы

Бухгалтерские темы

Маркетинг

Иностранные языки

Ветеринарная медицина

Технические темы

Землеустройство

Медицинские темы

Творчество

Лесное и парковое хозяйство

Агрономия

Преподавателям

Юридические темы

Google