Т е м а: Структури як складені об’єкти даних. Співставність термів

ЛАБОРАТОРНІ РОБОТИ

З курсу

“Логічне програмування”

 

З а в д а н н я

Та вказівки для їх виконання

 

Завдання підготував: Василенко Я.П.

 

 

Тернопіль – 2010

Лабораторна робота № 1 (2 год)

Т е м а: Знайомство з системою Turbo–Prolog. Виконання готових програм.

М е т а: Ознайомитися з основними прийомами роботи в системі Turbo–Prolog, навчитися формувати запити для готових програм.

З а в д а н н я: 1. В системі Turbo–Prolog ознайомитися із командами верхнього меню та “гарячими” клавішами для завантаження текстів програм у вікно редактора, запису програм у файли на диски, відкриття вікна редактора для набору нової програми, командами редагування, компіляції, виконання програм тощо. Для пробного виконання вказаних команд скористайтесь прикладами програм, які містяться в каталозі D:\PROLOG\EXAMPLE.

2. Користуючись вказаними нижче програмами, отримати відповіді на наступні питання:

Exampl01:

– Якими видами діяльності займаються tom та bill?

– Хто грає в теніс?

– Чи є особи, які грають у футбол?

– Чи є такий вид діяльності, яким би займався eric?

– Для кожної особи вказати, якими видами діяльності вона займається?

Exampl02:

– Для кожної моделі машин вказати її характеристики: потужність, вік, колір та ціну?

– Визначити, чи є машини з потужністю не меншою за 90000 та ціною не більшою за 30000?

– Які машини мають червоний колір?

Exampl05:

– Визначити батьків alana?

– Знайти дітей для boba?

– Хто є братом для для fay?

– Хто із осіб, інформація про яких занесена в базу фактів, має дядька?

– Хто є дідусем для marilyn?

Exampl06:

Проаналізуйте програму і побудуйте запити самостійно.

Exampl07:

Розділ запитів включений в текст цієї програми. В режимі діалогу визначте телефони людей, які Вас цікавлять.

Exampl08:

Визначте, чи задані символи є літерами.

Exampl10:

Знайти факторіал чисел 5 і 7.

Exampl18:

Придумайте і розв’яжіть квадратні рівняння, які мають 2 корені, 1 корінь та не мають розв’язків.

В к а з і в к и до виконання завдань: Для кожної із програм проаналізуйте структуру програми, опис типів об’єктів та опис предикатів, для розділі clauses виясніть, які із тверджень задають факти, а які правила. Зверніть увагу на те, чи серед правил програми є рекурсивні правила.

К о н т р о л ь н і п и т а н н я:

1. Яка структура prolog–програми?

2. Що таке предикат?

3. Які типи об’єктів використовують в мові Prolog?

4. Яка існує різниця між об’єктами Базисного Прологу та Turbo–Prolog’у?

5. Що розуміють під поняттям атома? Які синтаксичні форми запису він має?

6. В якій формі будуються запити?

7. Що таке анонімна змінна?

Лабораторна робота № 2 (2 год)

Т е м а: Структури як складені об’єкти даних. Співставність термів.

М е т а: Оволодіти способами опису та використання структур в Пролог–програмах. Засвоїти правила співставності термів.

З а в д а н н я: 1. Завантажити програми Exampl13 та Exampl17 із каталога D:\PROLOG\EXAMPLE. Проаналізувати їх та виконати. Запити придумати самостійно.

2. Описати структуру для подання інформації про трикутники на площині. Написати процедури для перевірки того, чи заданий трикутник є правильним, рівнобедреним, прямокутним?

3. Перевірити, чи заданий відрізок лежить на вертикальній прямій x=7. Передбачити подання відрізків за допомогою структур.

4. Нехай прямокутник задається за допомогою структури rectangle(P1,P2,P3,P4), де P1,P2,P3,P4 — вершини прямокутника, вказані в порядку їх обходу за годинниковою стрілкою. Вершини подаються за допомогою структур point(X,Y). Описати відношення regular(R), яке має місце, якщо R — прямокутник із вертикальними та горизонтальними сторонами.

К о н т р о л ь н і п и т а н н я:

1. Як формуються структури в мові Пролог? Навести приклади.

2. Які правила сумісності термів діють в мові Пролог?

3. Як потрібно описувати структури в мові Turbo–Prolog?

 

Лабораторна робота № 3 (6 год)