- •Практическое занятие 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
- •Задачи повышенной сложности
Задача 11
В кафе встретились три друга: скульптор Белов, скрипач Чернов и художник Рыжов. "Замечательно, что у одного и нас белые, у другого чёрные, а у третьего рыжие волосы, но ни у кого цвет волос не соответствует фамилии", - заметил черноволосый. "Ты прав", - сказал Белов. Какой цвет волос у художника?
Ответ
: У художника черный цвет волос
.
Задача 12
Жили четыре друга. Звали их Альберт, Карл, Дитрих и Фридрих. Фамилии друзей те же, что и имена, только так, что ни у кого из них имя и фамилия не были одинаковыми, кроме того, фамилия Дитриха не Альберт. Определите фамилию и имя каждого мальчика, если известно, что имя мальчика, у которого фамилия Фридрих, есть фамилия того мальчика, имя которого - фамилия Карла.
Ответ
Альберт Дитрих
Карл Альберт
Дитрих Фридрих
Фридрих Карл
Задача 13
На ледяном поле 5 хоккеистов: Ольховский, Малышев, Белов, Таманин, Лавров - штурмовали ворота. Раздался свисток судьи. "Удаляет двух", - подумали спортсмены. "Без Малышева или Ольховского я не останусь на поле", - сказал Таманин. "Я тоже, "- сказал Лавров. "Удаляют либо меня с Беловым, либо Таманина с Лавровым", - сказал Малышев. Когда судья объявил о своем решении, все оказались правы и, кроме того, Ольховский и Белов не остались вместе на поле. Кто остался на поле ?
Ответ
на поле остались
Ольховский, Таманин, Лавров.
Задача 14
На одном вечере среди гостей оказалось пять офицеров: пехотинец, артиллерист, лётчик, связист и сапер. Один из них был капитаном, трое - майорами и один - подполковник. Также известно, что:
1. У Яноша такое же звание, как и у сапера и ещё одного офицера, который служит в другом роде войск;
2. Офицер связист и Ференц - неразлучные друзья;
3. На днях офицер-лётчик вместе с Белой и Лайошем побывал у кого-то в гостях;
4. Недавно у артиллериста перестал работать радиоприёмник и он попросил Лайоша помочь связисту устранить неисправность;
5. Ференц чуть было не стал лётчиком, но потом по совету своего друга сапера избрал другой род войск;
6. Янош по званию старше Лайоша, а Бела - старше Ференца;
7. Пятый офицер, Андраш, накануне вечера был в гостях у Лайоша.
Определите имя каждого офицера, его звание и род войск, в котором он служит.
Ответ
Янош - майор - лётчик
Ференц - майор - артиллерист
Бела - подполковник - связист
Лайош - капитан - пехотинец
Андраш - майор - сапер
Задача 15
Семеро друзей - Антонов, Борисов, Васильев, Глебов, Дмитриев, Егоров
и Иванов - по странному стечению обстоятельств имеют "совпадающие"
имена, причем ни один из них не является "тезкой" своей фамилии.
Кроме того, о них известно следующее:
- Все, кроме Антонова и Глебова, уже женаты.
- Невесте Егора очень не нравится фамилия ее жениха.
- Фамилия Глеба совпадает с именем Иванова.
- Жены Дмитриева и Ивана - родные сестры.
- Тот, чье имя совпадает с фамилией Бориса, женат, и его фамилия
совпадает с именем Егорова.
- Иван, Егор и Василий - брюнеты.
- Остальные четверо, в числе которых Иванов, Егоров и Васильев, -
блондины.
Как фамилия Василия?
Ответ
фамилия Бориса - Васильев,
а Василия - Дмитриев.
Егор - Глебов.
Иванова зовут Антон
Глеб имеет фамилию Антонов
имя Егорова – Дмитрий