Управление выполнением программы на Прологе Лекция 6.

Презентация:



Advertisements
Похожие презентации
Основные понятия Пролога Лекция 3. Предикаты ::= | ( [, ]*)
Advertisements

Динамические базы данных Лекция 12. План Работа с внутренними (динамическими) базами данных: добавление фактов в базу, удаление фактов из базы Проекты.
Игровые программы на Прологе Лекция 15. «Быки и коровы» play :- rnd(X1,X2,X3,X4), int2char(X1,C1), int2char(X2,C2), int2char(X3,C3), int2char(X4,C4),
Списки на Прологе Лекция 6. План 1.Метод поиска в глубину 2.Метод отката после неудачи 3.Отсечение и откат 4.Метод поиска, определяемый пользователем.
Файлы Лекция 11. План Стандартные устройства Стандартные предикаты по работе с файлами Замена стандартного предиката openread Вывод файла на экран Создание.
Установочная лекция по дисциплине Старший преподаватель каф. ВТ Юлия Вадимовна Новицкая
Язык Пролог в качестве языка запросов к параллельной распределённой СУБД.
Директивы компилятора. Рекурсия на Прологе Лекция 4.
Основы логического программирования на языке ПРОЛОГ (продолжение)
Повторим?
ПОВТОРЯЙ ЗА НАМИ!.
Лекции 8-9
Дедушка Мама Папа Брат Сестра Бабушка Я. Моя семья My family.
1.Что появится на экране после выполнения следующих команд: a := 4; write (a);
Буква ш МАОУ «СОШ»24 г.Перми Шлякова Валентина Геннадьевна.
Основы логического программирования на языке ПРОЛОГ.
Объявление нескольких переменных. Задание 1 Модифицировать программу «Приветствие», чтобы у пользователя запрашивались фамилия, имя и отчество, а затем.
Логическое программировыание Лекция 3 Основные понятия Пролога.
Логическое программирование и язык Пролог. План лекции: 1.Понятие логического программирования. 2.Типы предложений в Прологе. 3.Объекты данных – термы.
Шешель Анжелика. Значения: Символьная величина – 1 символ (буква, цифра, знак) Строковая величина – строка символов.
Транксрипт:

Управление выполнением программы на Прологе Лекция 6

План 1.Метод поиска в глубину 2.Метод отката после неудачи 3.Отсечение и откат 4.Метод поиска, определяемый пользователем

Бэктрекинг DOMAINS s=string PREDICATES mother(s,s) grandmother(s,s) CLAUSES mother("Даша","Маша"). mother("Наташа",Даша"). mother("Наташа",Глаша"). mother("Даша",Саша"). grandmother(X,Y):– mother(X,Z), mother(Z,Y). Внешняя цель: grandmother(B,V)

Метод отката после неудачи DOMAINS s=string PREDICATES mother(s,s) grandmother(s,s) CLAUSES mother("Даша","Маша"). mother("Наташа",Даша"). mother("Наташа",Глаша"). mother("Даша",Саша"). grandmother(X,Y):– mother(X,Z), mother(Z,Y). GOAL grandmother(B,V), write(Имя бабушки –,B), write(Имя внучки –,V),nl

Метод отката после неудачи DOMAINS s=string PREDICATES mother(s,s) grandmother(s,s) show_names CLAUSES mother("Даша","Маша"). mother("Наташа",Даша"). mother("Наташа",Глаша"). mother("Даша",Саша"). grandmother(X,Y):– mother(X,Z), mother(Z,Y). GOAL write(Имена дочек:),nl, show_names. show_names:– mother(_,Name), write(" ", Name), nl, fail.

Метод отката после неудачи DOMAINS s=string PREDICATES mother(s,s) grandmother(s,s) show_names2(s) CLAUSES mother("Даша","Маша"). mother("Наташа",Даша"). mother("Наташа",Глаша"). mother("Даша",Саша"). grandmother(X,Y):– mother(X,Z), mother(Z,Y). GOAL write(Имена дочек Даши:),nl, show_names2(Даша). show_names2(Mother):– mother(M,Name), M=Mother, write(" ", Name), nl, fail.

Отсечение и откат DOMAINS s=string PREDICATES mother(s,s) grandmother(s,s) show_names3(s) CLAUSES mother("Даша","Маша"). mother("Наташа",Даша"). mother("Наташа",Глаша"). mother("Даша",Саша"). grandmother(X,Y):– mother(X,Z), mother(Z,Y). show_names3(Daughter):– mother(_,Name), write(" ", Name), nl, Name=Daughter, write("Искомый человек найден!"),!.

Метод повтора, определяемый пользователем repeat. repeat:- repeat. double_char:– repeat, readchar(C), write(C,C), nl, C=.,!, nl,write("Была введена точка. Закончили."). GOAL write(Вводятся символы, которые нужно повторить )точка – завершение)),nl, double_char.