Prolog
  • Введение
  • Установка и запуск
  • Примеры
  • Арифметика и вывод на экран
  • Циклы
  • Списки
  • База данных
  • Ввод данных
  • Файлы
  • Сравнение фактов
  • Взаимодействие с консолью
  • Оконный интерфейс
  • Рисование
  • Visual Prolog
Powered by GitBook
On this page
  • Задача 1
  • Задача 2
  • Задача 3
  • Правило

Was this helpful?

Примеры

Задача 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).

Правило

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

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

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

PreviousУстановка и запускNextАрифметика и вывод на экран

Last updated 5 years ago

Was this helpful?