Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
49
Добавлен:
05.03.2016
Размер:
1.28 Mб
Скачать

2.2 Завантаження системи Турбо-Пролог, ввід і запуск програм

Завантажте систему програмування Турбо-Пролог та:

– ознайомтеся з опціями головного меню і вивчите їхнє призначення;

– налаштуйте, якщо необхідно, розміри і колірні палітри усіх вікон;

– визначите шляхи доступу до файлів, встановивши потрібні для каталоги;

– виконані установки запишіть у файл конфігурації.

Ввійдіть у режим редагування системи Турбо-Пролог, скориставшись командою "Edit" головного меню, і введіть програму 2.1. Закінчивши ввід, вийдіть з редактора в головне меню системи, натиснувши клавішу “Esc”.

/* Програма 2.1 */

predicates

likes(string, string)

clauses

likes ("Іван","Марія").

likes ("Петро","пиво").

likes ("Іван", Х) if likes ("Петро", Х).

Запустіть програму на виконання, вибравши команду “Run” головного меню. У даній програмі немає секції goal, тобто в програмі відсутня внутрішня мета, що визначає рішення конкретної задачі. Такі програми можуть використовуватися тільки в середовищі системи Турбо-Пролога. Тому, після її запуску на виконання системою активізується вікно “Діалог” і з'являється запрошення на введення зовнішньої мети (GOAL:)

2.3 Робота з Пролог-програмами в режимі діалогу

Зовнішні цілі – це запити до програми, сформовані користувачем у вікні “Діалог”. Наприклад, введіть запит

GOAL: likes(Who,"пиво").

Поясніть: що позначає даний запит, до яких елементів мови Турбо-Прологу варто віднести такі об'єкти запиту, як “пиво”, Who і likes.

Активізуйте введений запит. Для цього треба після закінчення його набору натиснути клавішу “Enter”. До натискання “Enter” запит можна редагувати. У відповідь на запит у вікні “Діалог” з'явитися рішення.

Who=Петро

Who=Іван

Система запам'ятовує останній із уведених запитів. Для того, щоб викликати повторно попередній запит, слід натиснути функціональну клавішу F8. Викличте повторно попередню мету і відредагуйте її так, щоб вона мала вигляд

GOAL: likes(Who,"пиво","Марія").

Запустіть її на виконання і поясніть отриманий результат.

Аналогічні дії проробіть по введенню і запускові запиту виду:

GOAL: likes(Іван, Х)

Поясніть отриманий результат, внесіть зміни в запит, щоб він відповідав синтаксисові мови Турбо-Пролог і повторно запустіть запит на виконання.

Змінимо опис предиката likes так, щоб було ясно, між якими об'єктами реального світу встановлюється відношення. Так, для розглянутого приклада, відношення likes визначається між деякою особою (person) і деякою іншою особою або річчю (thing). Для обліку введеного доповнення, слід замінити в секції predicates опис предиката на новий

likes(person,thing)

Відкоригуйте програму і запустіть програму на виконання.

При цьому система видасть повідомлення про помилку й у вікні редагування курсором буде відзначене те місце, де транслятор знайшов помилку. Текст повідомлення про помилку “Неоголошений домен або помилка в написанні” дає підказку про те, що перейшовши до використання нестандартних (тобто визначених користувачем) доменів ми забули оголосити їхні типи.

Оскільки областю зміни двох, знову об’явлених, доменів є символьні дані (точніше дані типу рядок символів), то в програму повинна бути додана секція domains, де слід оголосити нестандартні домени і їхні типи. Для даної програми дана секція моте мати такий вигляд:

domains

person = string

thing = string

або

domains

person, thing = string

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