Примеры

Задача 1

Человек является УМНЫМ_МАЛЬЧИКОМ, когда он УМНЫЙ и когда он МАЛЬЧИК.

Человек является УМНОЙ_ДЕВОЧКОЙ, когда она УМНАЯ и когда она ДЕВОЧКА.

Максим и Гоша - МАЛЬЧИКИ.

Нина и Аня - ДЕВОЧКИ.

Максим является УМНЫМ.

Нина является УМНОЙ.

Дадим данные знания системе. Напишем следующий код:

cleverboy(X):- clever(X), boy(X).
clevergirl(X):- clever(X), girl(X).
boy(maxim).
boy(george).
girl(nina).
girl(ann).
clever(maxim).
clever(nina).

Вопрос: Максим является УМНЫМ_МАЛЬЧИКОМ ?

cleverboy(maxim).

Вопрос: Максим является ДЕВОЧКОЙ ?

girl(maxim).

Задача 2

У человека X и человека Y есть ОДИНАКОВЫЙ_ВОЗРАСТ, когда человек X имеет возраст A и человек Y имеет возраст A.

Далее людям задаются определённые возраста.

Напишем код:

similarage(X,Y):- age(X,A), age(Y,A).
age(maxim,18).
age(alex,18).
age(nina,45).
age(george,14).
age(ann,14).

Вопрос: у Ани и Георгия есть ОДИНАКОВЫЙ_ВОЗРАСТ ?

similarage(ann,george).

Вопрос: у Ани и Максима есть ОДИНАКОВЫЙ_ВОЗРАСТ ?

similarage(ann,maxim).

Задача 3

Ученик ПЛОХОЙ, когда у него оценка 2 или 3.

Ученик ХОРОШИЙ, когда у него оценка 4 или 5.

Далее ставим ученикам оценки.

bad(X):- markTwo(X); markThree(X).
good(X):- markFour(X); markFive(X).
markTwo(george).
markThree(alex).
markFour(nina).
markFive(maxim).

Вопрос: Георгий является ПЛОХИМ ?

bad(george).

Вопрос: Максим является ХОРОШИМ ?

good(maxim).

Правило

При перечислении:

Запятая (,) означает логическое И

Точка с запятой (;) означает логическое ИЛИ

Last updated

Was this helpful?