Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

У процесі логічного програмування мовою Пролог



ЛАБОРАТОРНА РОБОТА 14

Тема: Типові приклади застосування логічного програмування мовою Пролог. Частина 2. Робота з потоками параметрів у процесі логічного програмування мовою Пролог.

Мета:отримання знань, умінь і навичок аналізу та контролю потоків параметрів у логічних програмах, створених засобами мови Пролог.

 

ПЛАН ВИКОНАННЯ ЛАБОРАТОРНОЇ РОБОТИ

 

1. Вивчити основні теоретичні відомості до лабораторної роботи.

2. Ознайомитися з методичними вказівками для самостійної роботи студентів до лабораторної роботи 14.

3. Дати відповіді на контрольні питання.

4. Виконати завдання для самоперевірки.

5. Виконати контрольні завдання.

6. Оформити та захистити звіт з лабораторної роботи (вимоги до оформлення та захисту лабораторної роботи знаходяться в Додатку А, а зразок оформлення титульного аркуша звіту про виконання лабораторної роботи знаходиться в Додатку Б).

ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Вступні пояснення до лабораторної роботи

 

У процесі звертання до предикату, його аргументи розглядаються як параметри, а саме:

– аргументи з відомими значеннями – як вхідні параметри (input, i);

– аргументи з невідомими значеннями – як вихідні параметри (output, o).

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

Наприклад, якщо предикат має два параметри, то існує чотири можливих варіанти потоку параметрів, позначення яких представлено в таблиці 14.1.

 

Таблиця 14.1

 

Приклад позначення можливих варіантів потоку параметрів

для предикату з двома параметрами

 

№ з/п Повні позначення Скорочені позначення
(input, input) (i, i)
(input, output) (i, o)
(output, input) (o, i)
(output, output) (o, o)

 

 

Для кожного стандартного предикату в документації описано потоки параметрів, з якими він може бути викликаний.

У тому випадку, коли стандартний предикат викликається з неіснуючим потоком параметрів, видається повідомлення про помилку.

Для того, щоб мати можливість аналізувати та контролювати потік параметрів, надаються стандартні предикати Прологу, основні з яких представлено в таблиці 14.2.

 

Таблиця 14.2

 

Основні стандартні предикати, покладені в основу

здійснення аналізу та контролю потоку параметрів

 

№ з/п Найменуванняпредикатів Кількість параметрів предикатів Призначення предикатів
bound перевіряє, чи є змінна зв'язаною
free перевіряє, чи є змінна вільною

Приклад роботи з потоками параметрів

у процесі логічного програмування мовою Пролог

У наведеному далі лістингу 14_1 представлено приклад Пролог-програми, в якій визначено предикат plus (X, Y, Sum, Rez) для роботи з потоком параметрів, який забезпечує наступні можливості:

– приймає в якості вхідного потоку параметрів два цілочисельних доданки X, Y та їх суму Sum, яка може бути як коректною, так і помилковою;

– може бути викликаний із будь-яким варіантом потоку параметрів;

– перевіряє, чи являють собою параметри вхідного потоку зв'язані змінні, за допомогою послідовності підцілей bound (X), bound (Y), bound (Sum), встановлюючи таким чином синтаксичну безпомилковість вхідного потоку параметрів і, відповідно, можливість здійснення його подальшої обробки;

– якщо потік параметрів виявляється помилковим, ігнорує його подальшу обробку, попереджуючи можливі помилки періоду виконання програми.

Обробка потоку вхідних параметрів передбачає наступні дії:

– обчислюється нове правильне значення суми параметрів-доданків X, Y за допомогою підцілі Rez = X+Y;

– на екран комп`ютеру виводиться як початковий потік параметрів X, Y, Sum, так і скорегований потік параметрів X, Y, New_sum, який містить нове значення суми, представлене змінною Rez.

Розділ GOAL програми містить дві тестові підцілі:

– підціль plus (2, 3, 125, Rez) має безпомилковий потік вхідних параметрів, які є зв'язаними змінними, що дозволяє здійснити обробку (корекцію) зазначеного потоку в повному обсязі;

– підціль plus (A, B, C, D) має помилковий потік вхідних параметрів, який складається виключно з незв'язаних змінних, що призводить до ігнорування подальшої обробки зазначеного потоку.

% Sheet 14_1. Primer 1 on the working for the stream of parameters

PREDICATES

plus (integer, integer, integer, integer)

 

CLAUSES

% (input, input, input, output)

plus (X, Y, Sum, Rez):-

bound (X), bound (Y), bound (Sum),

Rez = X+Y,

write ("Initial stream"), nl,

write ("of parameters,"), nl,

write ("with possible error"), nl,

write ("on addition:"), nl,

write ("X = ", X, ", ", "Y = ", Y, ", ", "Sum = ", Sum), nl,

write ("New stream"), nl,

write ("of parameters,"), nl,

write ("with correct result"), nl,

write ("on addition:"), nl,

write ("X = ", X, ", ", "Y = ", Y, ", ", "New_sum= ", Rez), nl, nl.

 

GOAL

plus (2, 3, 125, Rez),

write ("------------------------"),

plus (A, B, C, D).

Результати роботи програми є наступними:

Initial stream of parameters, with possible error on addition:

X = 2, Y = 3, Sum = 125

New stream of parameters, with correct result on addition:

X = 2, Y = 3, New_sum = 5

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.