|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.03.2013, 17:08 | #1 |
Новичок
Джуниор
Регистрация: 19.05.2012
Сообщений: 2
|
Пролог. Основы программирования
Помогите исправить ошибки в задачах на Прологе. Уже как только не пробовала, ничего не выходит.
1. Задача о покушении на Цезаря Можно ли из следующей совокупности утверждений: (F1) Марк был римлянином (F2) Цезарь был диктатором (F3) Те римляне, которые ненавидели диктатора, пытались убить его (F4) Римляне либо были преданы диктатору, либо ненавидели его (F5) Марк не был предан Цезарю вывести доказательство того, что Марк пытался убить Цезаря? Указание: • для каждого из подчёркнутых отношений/свойств создать предикат (их будет 6) • будет 5 одноместных предикатов на свойства и один двухместный на фразу «они пытались убить его» - try_kill(symbol кто_пытался_убить, symbol кого_пытались_убить) • утверждениям F1, F2, F5 соответствуют факты, F3 – правило • утверждению соответствуют F4 – два правила: 1) некто предан диктатору, если он римлянин и не ненавидит диктатора; 2) некто ненавидит диктатора, если он римлянин и не предан диктатору Мое решение: predicates nondeterm rim(symbol). nondeterm dick(symbol). nondeterm nepred_love_dick(symbol). nondeterm nenav_dick(symbol). nondeterm love_dick(symbol). nondeterm try_kill(symbol,symbol). clauses rim(mark). dick(cezar). nenav_dick(rim). love_dick(rim). nepred_love_dick(mark). try_kill(rim,dick). try_kill(X,dick):-nenav_dick(X),rim(X). love_dick(Y):-rim(Y),not(nenav_dick(Y)). nenav_dick(X):-rim(X),nepred_love_dick(X). goal try_kill(mark,cezar). Задача2. Классификация на два множества. Есть два множества: животных и растений. Любой объект может быть либо животным, либо растением. Известно, что собака и птица – животные, дерево – растение, кошка и муха – не растения. Проверить истинность утверждений: а)Муха – животное Мое решенеи: predicates nondeterm rast (symbol). nondeterm zhiv (symbol). clauses zhiv(dog). zhiv(ptic). rast(derevo). zhiv(X):-not(rast(X)). rast(X):-not(zhiv(X)). rast(X):-X=cat,!,fail. rast(X):-X=muha,!,fail. goal zhiv(muha). |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Основы программирования | Изя Прогер | Помощь студентам | 0 | 13.10.2012 17:20 |
C# Основы объектно-ориентированного программирования | xq1b | Помощь студентам | 1 | 10.10.2012 12:33 |
Основы программирования | Анна К. | Помощь студентам | 5 | 29.06.2012 15:45 |
Основы программирования. Учебник. | -KAZtrel- | Помощь студентам | 7 | 04.06.2011 18:15 |
основы программирования | ArniLand | Свободное общение | 12 | 19.02.2011 19:00 |