![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создание простейших проектовСодержание книги
Поиск на нашем сайте
Создание проекта позволяет протестировать пример как автономную исполняемую программу. После запуска проекта на исполнение создается exe-файл, работа которого завершается после первого решения, удовлетворяющего решению задачи. Запуск программы в этом режиме не обеспечивает автоматический вывод значений переменных, поэтому необходимо использовать стандартный предикат вывода write. Пример. Заданы отношения-факты: родитель(“Иван”,”Катя”). родитель(“Анна”,” Олег ”). родитель(“Олег”,”Дима”). родитель(“Игорь”,”Ольга”). родитель(“Олег”,”Виктор”). родитель(“Игорь”,”Иван”). мужчина(“Дима”). мужчина(“Иван”). мужчина(“Игорь”). мужчина(“Олег”). мужчина(“Виктор”). женщина(“Катя”). женщина(“Ольга”). женщина(“Анна”). Составить новое отношение-правило дед(X,Y) и определить, кто является дедушкой Кати. Создать проект и протестировать пример как автономную исполняемую программу. Решение 1. Запустите среду Visual Prolog и создайте новый проект (Project | New Project), активизируется окно Application Expert (эксперт приложения). 2. Определите имя проекта (Primer) и базовый каталог, куда будет сохранен проект (например, D:\VP\Primer)
рис.4. Окно Application Expert
На вкладке Target установите параметры и нажмите кнопку Create для создания проекта (рис. 5):
3. Откройте окно Compiler Options (Options | Project | Compiler Options), откройте вкладку Warnings и установите опции компилятора для созданного проекта (рис.6):
рис.6. Установки опций компилятора Нажмите OK. 4. В окне проекта выделите файл Primer.pro и откройте его для редактирования (двойной щелчок или кнопка Edit)
рис.7. Окно проекта Файл с расширением.pro содержит секции PREDICATES, GOAL, CLAUSES. Допишите необходимые определения так, чтобы получилась программа: DOMAINS имя=string PREDICATES родитель(имя,имя) женщина(имя) мужчина(имя) дед(имя, имя) CLAUSES родитель("Иван","Катя"). родитель("Анна","Олег"). родитель("Олег","Дима"). родитель("Игорь","Ольга"). родитель("Олег","Виктор"). родитель("Игорь","Иван"). мужчина("Дима"). мужчина("Иван"). мужчина("Игорь"). мужчина("Олег"). мужчина("Виктор"). женщина("Катя"). женщина("Ольга").
женщина("Анна"). дед(X,Z):-родитель(X,Y), родитель(Y,Z), мужчина(X). GOAL дед(X,"Катя"),write(X). 5. Откомпилируйте исходный код примера и запустите его как автономную исполняемую программу. (Project | Run, или клавиша <F9>, или кнопка <R>). Результат выполнения программы должен отобразиться в окне:
рис.8. Окно вывода результата ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ Доработайте исходный код примера следующим образом: 1) добавьте новое правило бабушка и определите, кто является бабушкой; 2) добавьте новое правило внук и определите, кто внук Анны; 3) добавьте новое правило брат и определите, кто брат Димы; 4) добавьте новое правило сестра и определите, кто сестра Ивана. Отчет о выполненной самостоятельной работе должен содержать: 1) тему лабораторной работы; 2) условие задачи; 3) полный окончательный код примера; 4) результаты ее тестирования. Поиск с возвратом Поиск с возвратом (backtracking) – это один из основных приемов поиска решений поставленной задачи в ПРОЛОГ’е. Выполняя поиск, ПРОЛОГ может столкнуться с необходимостью выбора между альтернативными путями. Тогда он ставит маркер у места развилки (точка отката) и выбирает первую подцель. Если она не выполняется, то ПРОЛОГ возвращается в точку отката и переходит к следующей подцели. Среда Visual Prolog позволяет использовать отладчик для пошагового выполнения программы. Отладчик работает с откомпилированным кодом. В исходном коде можно ставить точки останова и выполнять программу по шагам. В режиме пошагового выполнения программы можно просматривать значения переменных и содержимое утвержденных фактов. Пример Имеется база данных, содержащая факты вида отдыхает(имя, город ), украина(город), россия(город),прибалтика(город). Составить правило, позволяющее определить, кто отдыхал в России. Проследить поиск решения задачи с помощью отладчика Visual Prolog и построить целевое дерево поиска с возвратом. Решение: 1. Создайте новый проект (Project | New Project) и наберите текст программы: DOMAINS имя, город=string PREDICATES отдыхает(имя, город) украина(город). россия(город). прибалтика(город). отдых_Россия(имя) CLAUSES отдыхает(sasha, antalia). отдыхает(anna, sochi). отдыхает(dima, urmala). отдыхает(oleg, kiev).
украина(kiev). россия(sochi). прибалтика(urmala). отдых_Россия(X):- отдыхает(X,Y), россия(Y). GOAL отдых_Россия(X), write(X),nl.
3. Сохраните проект (Project | Save Project)
4. Запустите его на исполнение (Project | Run, или клавиша <F9>, или кнопка <R>). Результат выполнения программы: anna
5. Проследите поиск этого решения с помощью отладчика(Debugger). Для этого: а) запустите отладчик (Project | Debug); б) в окне отладчика выберите команду View | Local Variables (для просмотра текущих значений переменных);
рис.9. Окно отладчика Поиск решения можно представить следующим образом:
![]() ![]() рис.10. Целевое дерево поиска решения ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ 1. База данных содержит следующие факты: увлекается(“Коля”, гитара). увлекается(“Оля”, скрипка). увлекается(“Дима”, плаванье). увлекается(“Таня”, теннис). спорт(плаванье). спорт(теннис). муз_инстр(скрипка). муз_инстр(гитара). а) составить правило спортсмен и определить, кто увлекается спортом; б) проследить за поиском решения с помощью отладчика; в) построить целевое дерево поиска с возвратом.
2. База данных содержит следующие факты: увлекается(“Дима”, плаванье). увлекается(“Таня”, теннис). увлекается(“Коля”, гитара). увлекается(“Оля”, скрипка). спорт(плаванье). спорт(теннис). муз_инстр(скрипка). муз_инстр(гитара). а) составить правило музыкант и определить, кто увлекается музыкой; б) проследить за поиском решения с помощью отладчика; в) построить целевое дерево поиска с возвратом. Отчет о выполненной самостоятельной работе должен содержать: 1) тему лабораторной работы; 2) условие задачи; 3) листинг программы; 4) результаты ее тестирования; 5) целевое дерево поиска решения.
|
||||||||
Последнее изменение этой страницы: 2016-04-08; просмотров: 622; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.105.195 (0.009 с.) |