- •Практическое занятие 1. Основы логического программирования
- •Основные парадигмы программирования
- •Понятие предиката
- •Унификация - процесс нахождения решения в Прологе
- •Факты и правила в Прологе
- •Пример программы на Прологе
- •Практикум 1-1
- •Практикум 1-2
- •Практикум 1-3
- •Контрольное задание 1 Исходные данные
- •Задание 1. Генеалогическое дерево
- •Задание 2. Представление правил
- •Практикум 2-1
- •Практикум 2-2
- •Стандартные предикаты
- •Ввод и вывод
- •Практикум 2-3
- •Описание арифметических операций
- •Практикум 2-4
- •Самостоятельные задания
- •Практическое занятие 3. Управление процессом решения задачи. Поиск с возвратом. Рекурсия
- •Использование предиката fail
- •Практикум 3-1
- •Использование предиката cut
- •Практикум 3-2
- •Использование рекурсии
- •Практикум 3-3
- •Практикум 3-4
- •Практикум 3-5
- •Практикум 3-6
- •Хвостовая рекурсия
- •[Head|Tail] [Голова|Хвост]
- •Практикум 4-1
- •Встроенный предикат findall
- •Практикум 4-2
- •Вычисление длины списка
- •Практикум 4-3
- •Проверка принадлежности элемента списку
- •Практикум 4-4
- •Слияние двух списков
- •Практикум 4-5
- •Вычисление суммы списка чисел
- •Практикум 4-6
- •Практикум 4-7
- •Удаление элемента из списка
- •Практикум 4-8
- •Получение элемента списка по его номеру
- •Практикум 4-9
- •Запись элементов списка в обратном порядке
- •Поиск максимального (минимального) элемента в списке
- •Практикум 4-10
- •Самостоятельные задания
- •Контрольное задание 2 Исходные данные
- •Практическое занятие 5. Решение логических задач
- •Пример простой логической задачи (два измерения)
- •Практикум 5-1
- •Практикум 5-2
- •Пример задачи (три измерения)
- •Практикум 5-3
- •Пример задачи (альтернативные высказывания)
- •Практикум 5-4
- •Практикум 5-5
- •Самостоятельные задания
- •Контрольное задание 3 Исходные данные
- •Задача 1
- •Задача 2
- •Задача 3
- •Задача 4
- •Задача 5
- •Задача 6
- •Задача 7
- •Задача 8
- •Задача 9
- •Задача 10
- •Задача 11
- •Задача 12
- •Задача 13
- •Задача 14
- •Задача 15
- •Задача 16
- •Задача 17
- •Задача 18
- •Задача 19
- •Задача 20
- •Задачи повышенной сложности
Контрольное задание 3 Исходные данные
Вариант |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Задачи |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
Задача 1
Перед Вами пять коробочек: белая, черная, красная, синяя и зелёная. Также есть по два шарика для каждого из цветов. В каждой коробочке лежит по два шарика, причём цвета коробочки и шариков могут и не совпадать. Также известно, что:
Ни один шарик не лежит в коробочке того же цвета, что и он сам;
В красной коробочке нет синих шариков;
В коробочке нейтрального цвета (то есть белого или чёрного) лежит один красный и один зелёный шарик;
В чёрной коробочке лежат шарики холодных тонов (зелёный и синий цвета);
В одной из коробочек лежат один белый и один синий шарик;
В синей коробочке находится один чёрный шарик.
Какого цвета шарики лежат в каждой коробочке?
Ответ
Белая коpобочка: Кpасный и Зеленый
Чеpная коpобочка: Зеленый и Синий
Зеленая коpобочка: Белый и Синий
Синяя коpобочка: Чеpный и Кpасный
Кpасная коpобочка: Белый и Чеpный
Задача 2
Четыре приятеля решили подарить девушкам цветы. Утром следующего дня никто не смог точно вспомнить, что было вчера и кто кому подарил какие цветы. Совместными усилиями удалось вспомнить, что:
1. Каждой из четырех девушек подарили один букет;
2. У всех девушек были разные цветы;
3. Юрий целый день не видел Катю и Марину;
4. Дима не смог купить букет роз;
5. Андрей не дарил цветов ни Оле, ни Марии;
6. Георгий сначала хотел подарить букет Лене или Кате, но потом передумал;
7. Ни Лена, ни Оля не встречались с Димой;
8. Катя так и не получила свои любимые мимозы;
9. Андрей не покупал цветов на букву "Г" ;
10. Ни Лене, ни Оле не дарили роз;
11. Юрий не успел купить гладиолусы;
12. Георгий помнил, что видел у своих друзей букеты гвоздик и мимоз;
13. В итоге у Марины не оказалось гвоздик и гладиолусов, которые она ожидала получить;
14. Лена хвасталась подруге, что ей "не подарили этих дешевых мимоз".
Ответ
Юpий - гвоздики - Лене
Андpей - pозы - Кате
Дима - мимозы - Маpине
Геоpгий - гладиолусы - Оле
Задача 3
Вчера вечером:
1) Андрей отправился на концерт;
2) Борис провёл всё время с Ольгой;
3) Сергей так и не увиделся с Ритой;
4) Полина побывала в кино;
5) Рита посмотрела спектакль в театре.
Кроме тех, кого мы уже назвали, постоянными членами компании были Дима и Света. Вместе с каждым из юношей на том же виде культурных развлечений побывала одна девушка.
6) какая-то пара посетила художественную выставку.
Кто с кем был и где?
Ответ
Андрей - Света- концерт
Сергей - Полина - кино
Борис - Ольга - выставка
Дима - Рита - театр
Задача 4
Четыре брата собрались на дискотеку. Когда они выходили из дома каждый ошибся и случайно взял не свои шляпу и куртку, а двух своих братьев. Михаил взял куртку того, чью шляпу взял Филипп. В то время как куртку Филиппа взял тот, кто взял шляпу Михаила. Семён взял Шляпу Дмитрия.
Чьи куртки и шляпы взяли братья?
Ответ
Михаил взял куртку Семёна и шляпу Филиппа.
Филипп взял куртку Дмитрия и шляпу Семёна.
Дмитрий взял куртку Филиппа и шляпу Михаила.
Семён взял куртку Михаила и шляпу Дмитрия.