Государственное образовательное учреждение высшего профессионального образования
НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ
Лабораторная работа по дисциплине
Задача: логическая загадка - кто разбил окно?
Выполнила: Соловьева Наталья студентка гр. 08-ИТД Проверил: Дмитриев Д.В.
г. Нижний Новгород 2011 г. Содержание отчета 1. Постановка задачи 2. Код программы 3. Программа в интерпретации visual prolog
Постановка задачи Логическая задачка: есть восемь школьников. Они оставались в классе на перемене. После чего были вызваны к директору. Дело в том, что один из них разбил окно в кабинете труда. На вопрос директора, кто это сделал, были получены следующие ответы: Код программы domains % объявление типа переменных s=string i=integer predicates % объявление предикатов nondeterm declaration(s,s,i) nondeterm person(s) nondeterm who(s) clauses % здесь мы заявляем программе об известных нам фактах % имена учеников person("Fedya"). person("Sonya"). person("Olya"). person("Nadya"). person("Kolya"). person("Andrew"). person("Valera"). person("Masha"). % заявления учеников на языке программы declaration("Fedya",D,1):-D="Antony",!. declaration("Sonya",D,1):-D="Valera",!. declaration("Olya",D,1):-D="Sonya",!. declaration("Nadya",D,1):-declaration("Olya",D,1),!. declaration("Kolya",D,1):-D="Valera";D="Sonya",!. declaration("Andrew",D,1):-person(D),D<>"Valera",D<>"Sonya",!. declaration("Valera",D,1):-person(D),not(D="Antony"),!. declaration("Masha",D,1):-not(person(D)),!. declaration(_,_,0). % определение истинности who(WHO_IS_HOOLIGAN):- person(WHO_IS_HOOLIGAN), declaration("Fedya",WHO_IS_HOOLIGAN,T1), declaration("Sonya",WHO_IS_HOOLIGAN,T2), declaration("Olya",WHO_IS_HOOLIGAN,T3), declaration("Nadya",WHO_IS_HOOLIGAN,T4), declaration("Kolya",WHO_IS_HOOLIGAN,T5), declaration("Andrew",WHO_IS_HOOLIGAN,T6), declaration("Valera",WHO_IS_HOOLIGAN,T7), declaration("Masha",WHO_IS_HOOLIGAN,T8), TRUE_COUNT=T1+T2+T3+T4+T5+T6+T7+T8, TRUE_COUNT=3. goal who(WHO_IS_HOOLIGAN). Программа Вывод После внесения всех необходимых данных, формализованных с помощью синтаксиса программы мы получаем корректный ответ на запрос. Хулиган – Валера.
|