Содержание
- 2. Предложения Факты Правила Вопросы Общий вид: A :- B1, ... , Bn.
- 3. Факты и правила Пример факта: мама(«Наташа», «Даша»). Пример правил: бабушка(X,Y) :- мама(X,Z), мама(Z,Y). бабушка(X,Y) :- мама(X,Z),
- 4. Переменные Неявно связаны квантором всеобщности Не поддерживается механизм деструктивного присваивания Идентификатор указывает не на адрес ячейки
- 5. Вопросы. Вычисление цели мама("Наташа","Даша"). мама("Даша","Маша"). goal %мама("Наташа","Даша"). %мама("Наташа","Маша"). %мама(X, "Даша"). %мама("Наташа",X). %мама(X,Y). %мама(X,_). %мама(_,_). Возможные результаты
- 6. Вычисление цели мама("Наташа","Даша"). мама("Даша","Маша"). бабушка(X,Y) :- мама(X,Z), мама(Z,Y). goal бабушка("Наташа",X).
- 7. Нахождение максимума из двух чисел max(X,Y,X) :- X>Y. /* если первое число больше второго, то первое
- 8. Нахождение максимума из двух чисел - 2 max(X,Y,X):- X>Y. /* если первое число больше второго, то
- 9. Нахождение максимума из двух чисел (отсечение) max2(X,Y,X):- X>Y,!./* если первое число больше второго, то первое число
- 10. Условия S:- ,!,P. S :- P2. if then P else P2
- 11. Нахождение максимума из трех чисел max3a(X,Y,Z,X):- X>=Y,X>=Z. /* если первое число больше или равно второму и
- 12. Нахождение максимума из трех чисел (отсечение) max3b(X,Y,Z,X):- X>Y,X>Z,!. /* если первое число больше второго и третьего,
- 13. Нахождение максимума из трех чисел (с помощью max2) max3(X,Y,Z,M):- max2(X,Y,XY), /* XY - максимум из X
- 14. Рекурсия на Прологе
- 15. Программа «Родственники» предок(Предок,Потомок):- родитель(Предок,Потомок). /* предком является родитель */ предок(Предок,Потомок):- родитель(Предок,Человек), предок(Человек,Потомок). /* предком является родитель
- 16. Правило, реализующее шаг рекурсии :- [ ], [ ], [ ], , [ ].
- 17. Программа «Факториал» 1!=1 /* факториал единицы равен единице */ N!=(N-1)!*N /* для того, чтобы вычислить факториал
- 18. Факториал fact(1,1). /* факториал единицы равен единице */ fact(N,F):- N1=N-1, fact(N1,F1), /* F1 равен факториалу числа
- 19. Факториал fact(1,1). /* факториал единицы равен единице */ fact(N,F):- N>1, /* убедимся, что число больше единицы
- 20. Факториал fact(1,1):-!. /* условие останова рекурсии */ fact(N,F):- N1=N-1, fact(N1,F1), /* F1 равен факториалу числа, на
- 21. Факториал Правосторонняя рекурсия fact2(N,F,N,F):-!. /* останавливаем рекурсию, когда третий аргумент равен первому*/ fact2(N,F,N1,F1):- N2=N1+1, /* N2
- 22. Факториал factM(N,F):- fact2(N,F,1,1). /* вызываем предикат с уже заданными начальными значениями */
- 23. Цикл с предусловием w :- , p, w. w :- !. while do P
- 25. Скачать презентацию