Similar presentations:
Основы логического программирования. Основные сведения в 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.