Кафедра програмного забезпечення автоматизованих систем
Шекета В.І.
ЛОГІЧНЕ ПРОГРАМУВАННЯ
МЕТОДИЧНІ ВКАЗІВКИ ДО ВИКОНАННЯ ЛАБОРАТОРНИХ РОБІТ
для студентів спеціальності
7.080403 - “Програмне забезпечення автоматизованих систем”
Тільки для поширення в
електронному вигляді
Рекомендовано методичною радою університету
м. Івано-Франківськ
МВ _________________________
Шекета В.І. Логічне програмування: Методичні вказівки до виконання лабораторних робіт. – Івано-Франківськ: Факел, 2009. - 91с.
Методичні вказівки складено згідно з навчальною програмою курсу “ Логічне програмування ” для спеціальності 7.080403 і призначені для допомоги при виконанні лабораторних робіт для студентів всіх форм навчання.
Рецензент: кандидат технічних наук, доцент кафедри програмного
забезпечення автоматизованих систем ІФНТУНГ І.З. Лютак
Голова метоб’єднання спеціальності
д-р тех. наук, професор В.М.Юрчишин
Завідувач кафедри програмного
забезпечення автоматизованих систем,
д-р тех. наук, професор В.М.Юрчишин
Член експертно-редакційної
комісії університету,
канд. тех. наук, доцент М.Й. Федорів
Нормоконтролер Г.Я. Онуфрик
Коректор Н.Ф. Будуйкевич
Інженер І категорії Н.В. Мирка
© Шекета В.І., 2009
© ІФНТУНГ, 2009
МВ _________________________
Шекета В.І. Логічне програмування: Методичні вказівки до виконання лабораторних робіт. – Івано-Франківськ: Факел, 2009. - 91с.
Методичні вказівки складено згідно з навчальною програмою курсу “ Логічне програмування ” для спеціальності 7.080403 і призначені для допомоги при виконанні лабораторних робіт для студентів всіх форм навчання.
Рецензент: І.З. Лютак - кандидат технічних наук, доцент кафедри програмного забезпечення автоматизованих систем ІФНТУНГ.
© Шекета В.І., 2009
© ІФНТУНГ, 2009
ЗМІСТ
Лабораторна робота № 1.
ПРОЛОГ - МОВА ЛОГІЧНОГО ПРОГРАМУВАННЯ.
1.1.Загальний огляд мови Пролог.
1.2.Переваги і недоліки мови Пролог.
1.3.Числення предикатів - математична основа мови.
1.4.Побудова теорії деякої області знань.
1.5.Від формальної логіки до логічного програмування.
Лабораторна робота №2. ОСНОВНІ КОНЦЕПЦІЇ ПРОЛОГУ.
2.1.Факти та правила.
2.2.Як змінні отримують свої значення.
2.3.Анонімні змінні.
2.4.Складні цілі: кон`юнкція та диз`юнкція.
2.5.Способи Співставлення.
Лабораторна робота №3. СТРУКТУРА ПРОГРАМИ PDC ПРОЛОГУ.
3.1.Основні розділи програми.
3.2 Стандартні домени.
3.3.Синтаксис правила.
3.4.Директиви комп`ютеру.
3.5.Бектрекінг.
Лабораторна робота № 4. КОНТРОЛЬ ПОШУКУ РІШЕНЬ.
4.1.Використання предикату fail.
4.2.Відміна бектрекінгу.
4.3.Предикат NOT - заперечення як неуспіх.
4.4.Труднощі у використанні відтинання і заперечення.
4.5.Засоби керування.
4.6.Узагальнення.
Лабораторна робота №5. ПРОСТІ ТА СКЛАДНІ ОБ'ЄКТИ.
5.1 Прості дані.
5.2.Складні об'єкти даних і функтори.
5.3.Приклад використання складних об'зктів.
5.4.Опис доменів складних об'єктів.
5.5.Багаторівневі складні об'єкти.
5.6.Приклад, який ілюструє задання структури речення англійської мови.
5.7.Опис змішаних складних об'єктів.
5.8.Порівняння складних об`єктів.
Лабораторна робота №6. ІТЕРАЦІЯ І РЕКУРСІЯ.
6.1.Реалізація ітераційного процесу за допомогою бектрекінгу.
6.2.Дії типу до і після.
6.3.Застосування бектрекінгу для реалізації циклів.
6.4.Рекурсивні процедури.
Лабораторна робота №7. РЕКУРСИВНІ СТРУКТУРИ ДАНИХ
7.1.Структура даних типу дерева.
7.2.Обходи дерева.
7.3.Створення дерева.
7.4.Бінарний пошук на дереві.
7.5. Сортування по дереву.
Лабораторна робота № 8. РОБОТА З СПИСКАМИ В ПРОЛОЗІ
8.1.Рекурсивна сутність списку.
8.2.Обробка списків.
8.3.Використання одного й того ж предикату для вирішення різних задач.
8.4. Знаходження зразу всіх розв`язків.
8.5.Складні списки.
8.6.Реалізація синтаксичного аналізу за допомогою списків.
Лабораторна робота №9. ТЕХНІКА ПРОГРАМУВАННЯ В ПРОЛОЗІ
9.1.Принципи побудови експертної системи.
9.2. Макетування: задача маршрутизації.
9.3.Пригоди в дивних печерах.
9.4. Моделювання апаратних засобів.
9.5.Задача про ханойські башні.
9.6.Ділення слів на склади.
9.7. Задача про N королев.
Лабораторна робота №10.
ОСОБЛИВІ ТЕХНІЧНІ ПРИЙОМИ ДЛЯ ПРОФЕСІОНАЛІВ
10.1.Потоковий аналіз.
10.2.Керування потоковим аналізом.
10.3. Стиль програмування.
Література