Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2013, 17:08   #1
vzik
Новичок
Джуниор
 
Регистрация: 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).
vzik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Основы программирования Изя Прогер Помощь студентам 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