Основные понятия Пролога Лекция 3
Предикаты ::= | ( [, ]*)
Правила бабушка(X,Y):- мама(X,Z),мама(Z,Y). бабушка(X,Y):- мама(X,Z),папа(Z,Y).
Вычисление цели мама("Наташа","Даша"). мама("Даша","Маша"). goal %мама("Наташа","Даша"). %мама("Наташа","Маша"). %мама(X, "Даша"). %мама("Наташа",X). %мама(X,Y). %мама(X,_). %мама(_,_).
Вычисление цели бабушка(X,Y):- мама(X,Z), мама(Z,Y). goal бабушка("Наташа",X).
Нахождение максимума из двух чисел max(X,Y,X):- X>Y. /* если первое число больше второго, то первое число - максимум */ max(X,Y,Y):- X
Нахождение максимума из двух чисел - 2 max(X,Y,X):- X>Y. /* если первое число больше второго, то первое число - максимум */ max(X,Y,Y):- X
Нахождение максимума из двух чисел (отсечение) max2(X,Y,X):- X>Y,!./* если первое число больше второго, то первое число - максимум */ max2(_,Y,Y). /* в противном случае максимумом будет второе число */
Условия S:-,!,P. S :- P2. if then P else P2
Нахождение максимума из трех чисел max3a(X,Y,Z,X):- X>=Y,X>=Z. /* если первое число больше или равно второму и третьему, то первое число - максимум */ max3a(X,Y,Z,Y):- Y>=X,Y>=Z. /* если второе число больше или равно первому и третьему, то второе число является максимумом */ max3a(X,Y,Z,Z):- Z>=X,Z>=Y. /* если третье число больше или равно первому и второму, то максимум - это третье число */
Нахождение максимума из трех чисел (отсечение) max3b(X,Y,Z,X):- X>Y,X>Z,!. /* если первое число больше второго и третьего, то первое число - максимум */ max3b(_,Y,Z,Y):- Y>=Z,!. /* иначе, если второе число больше третьего, то второе число является максимумом */ max3b(_,_,Z,Z). /* иначе максимум - это третье число */
Нахождение максимума из трех чисел (с помощью max2) max3(X,Y,Z,M):- max2(X,Y,XY), /* XY - максимум из X и Y */ max2(XY,Z,M). /* M - максимум из XY и Z */