8.79M
Категория: ПрограммированиеПрограммирование

Основы логического программирования. Основные сведения в Prolog

1.

ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Основы
логического
программирования.
Основые сведения в
Prolog
Презентацию
подготовили
студенты
группы
Б-9051:
Расулов
Рафат,
Скоробогатов Никита

2.

ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
– парадигма (модель) программирования
основанная на логике.

3.

ОТНОШЕНИЯ МЕЖДУ ОБЪЕКТАМИ

4.

PROLOG – ПРЕДИКАТЫ
Логическая формула (предикат)
study(somebody, something)
Аргументы

5.

PROLOG – ПРЕДИКАТЫ
Утверждения:
• Никита изучает испанский язык
• Даша играет в CS:GO
• Тимур старше Арсения
• Ане 19 лет
study(arseniy, deutsch).

6.

PROLOG – ПРЕДИКАТЫ
Изучает ли Арсений немецкий?
Изучает ли Арсений математику?
?- study(arseniy, deutsch).
true.
?- study(arseniy, math).
false.
Утверждения:
• Никита изучает испанский язык
• Даша играет в CS:GO
• Тимур старше Арсения
• Ане 19 лет

7.

PROLOG – ПРЕДИКАТЫ
% Ниже правила
speciality(X,tech_translator) :studied_languages(X),studied_technical(X).
speciality(X,programmer) :studied(X,mathematics),studied(X,compscience).
speciality(X,lit_translator) :studied_languages(X),studied(X,literature).
studied_technical(X) :- studied(X,mathematics).
studied_technical(X) :- studied(X,compscience).
studied_languages(X) :- studied(X,english).
studied_languages(X) :- studied(X,german).
% Ниже факты
studied(petya,mathematics)
.
studied(vasya,german).
studied(petya,compscience)
.
studied(vasya,literature).
studied(petya,english).

8.

PROLOG – ПРЕДИКАТЫ
speciality(X,tech_translator) :-studied_languages(X),ыеstudied_technicaical(X).
Правила:
studied_technical(X) :studied(X,mathematics).
studied_technical(X) :studied(X,compscience).
Замена:
studied_technical(X) :- studied(X,mathematics);
studied(X,compscience).

9.

PROLOG – ПРЕДИКАТЫ
Вопрос:
?- speciality(petya, X).
Ответ:
X = tech_translator ;
X = tech_translator ;
X = programmer ;
false.

10.

PROLOG – ПРЕДИКАТЫ
Вопрос:
?- speciality(X, Y).
Ответ:
X = petya,
Y = tech_translator ;
X = petya,
Y = tech_translator ;
X = petya,
Y = programmer ;
X = vasya,
Y = lit_translator.
English     Русский Правила