Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Domains






list=symbol*

 

PREDICATES

del(symbol, list, list)

ins(symbol, list, list)

 

CLAUSES

del(X, [X|L], L).

del(X, [Y|L], [Y|L1]): - del(X, L, L1).

ins(X, L1, L): - del(X, L, L1).

GOAL

L=[olga, oksana, toma, dima], write(“L=”, L), nl,

write(“X=”), readln(X),

ins(X, L, L1), write(“L1=”, L1), nl, fail.

 

Результат выполнения программы:

L=[" olga", " oksana", " toma", " dima" ]

X=vera

L1=[" vera", " olga", " oksana", " toma", " dima" ]

L1=[" olga", " vera", " oksana", " toma", " dima" ]

L1=[" olga", " oksana", " vera", " toma", " dima" ]

L1=[" olga", " oksana", " toma", " vera", " dima" ]

L1=[" olga", " oksana", " toma", " dima", " vera" ]

 

Контрольное задание:

Решите задачу согласно варианту, выданному преподавателем:

Вариант 1. Запишите предикат, названный sum_of, который работает точно подобно length_of, за исключением того, что требуется список чисел и их сумма. Например, sum_of([1, 2, 3, 4], S) должен связать S с 10.

Вариант 2. Запишите предикат oddlist, который берет два параметра. Первый параметр - список целых чисел, в то время как второй параметр возвращает список всех нечетных чисел, найденных в первом списке.

Вариант 3. Запишите предикат real_average, который вычисляет среднее значение всех элементов в списке вещественных чисел.

Вариант 4. Запишите предикат, который берет составной список как его первый параметр и возвращает второй параметр, который является списком со всеми удаленными подсписками. Этот предикат обычно известен, как flatten, поскольку это сглаживает список списков в один список. Например, на запрос который является первоначальным сглаженным списком

flatten([s(ed), i(3), l([r(3.9), l([s(sally)])])], r(4.21), X)

Пролог ответит

X = [s(ed), i(3), r(3.9), s(sally), r(4.21)]

1 Solution

Вариант 5. Сформировать список [2, 4, 6, 8, 10] и удалить из него введенное число.

Вариант 6. Сформировать списки [1, 3, 5, 7, 9] и [2, 4, 6, 8, 10] и объединить их в один.

Вариант 7. Сформировать список [3, 6, 9, 12, 15, 18] и вставить в него введенное число.

Вариант 8. Сформировать список из N натуральных чисел, начиная с 10. Каждое следующее на 5 больше предыдущего.

Вариант 9. Сформировать список [3, 6, 9, 12, 15] и найти сумму его элементов.

Вариант 10. Сформировать список [6, 5, 4, 3, 2] и найти сумму его элементов.

Вариант 11. Сформировать список [7, 5, 3, 1] и найти произведение его элементов.

Вариант 12. Сформировать список из N последовательных натуральных чисел, начиная с 10. Найти сумму его элементов.

 

Контрольные вопросы:

1. Что такое список?

2. В чем отличие списка от массива?

3. Как выглядит список, содержащий числа?

4. Каким образом объявляется домен для списка целых чисел?

5. Из чего состоит список?

6. Дайте понятие головы и хвостовой части списка?

7. Что такое хвост списка?

8. Какую структуру имеют списки?

9. Каким знаком можно отделить голову от хвостовой части списка?

10. Дайте понятие составного списка?

11. Как объявить домен для составного списка?



Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал