Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Логическая задача на Prolog
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
flogiston flogiston вне форума
Member
 
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 12.10.2011
По умолчанию Логическая задача на Prolog - 22.10.2011, 15:21

Помогите пожалуйста. Используя отсечение, неуспех и отрицание, написать программу на Prolog:

На заводе работали три друга: слесарь, токарь и сварщик. Их фамилии Борисов, Иванов и Семенов. У слесаря нет ни братьев, ни сестер. Он самый младший из друзей. Семенов, женатый на сестре Борисова, старше токаря. Назвать фамилии слесаря, токаря и сварщика.

Решение есть: Семенов - сварщик, Борисов - токарь, Иванов - слесарь. Но на Prolog не получается никак, помогите, кто может.
Ответить с цитированием
  (#2 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 23.10.2011, 17:17

На Vip7, на других языках - аналогично:
Visual Prolog Код:
class facts
    name: (string).
    has_a_sister: (string).
    older_than_the_turner: (string).
class predicates
    solve: (string, string, string) nondeterm (o,o,o).
clauses
    name("Борисов").
    name("Иванов").
    name("Семенов").
   
    has_a_sister("Борисов").

    older_than_the_turner("Семенов").
       
    solve(Слесарь, Токарь, Сварщик):-
        name(Слесарь),
        name(Токарь), Токарь <> Слесарь,
        name(Сварщик), Сварщик <> Токарь, Сварщик <> Слесарь,
        not(has_a_sister(Слесарь)),
        not(older_than_the_turner(Слесарь)),
        not(older_than_the_turner(Токарь)).

    run():-
        solve(Слесарь, Токарь, Сварщик),
            writef("% - слесарь, % - токарь, % - сварщик\n",
                Слесарь, Токарь, Сварщик),
        fail;
        _ = readLine().
Ответить с цитированием
  (#3 (permalink)) Старый
flogiston flogiston вне форума
Member
 
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 12.10.2011
По умолчанию 24.10.2011, 23:09

Alison, спасибо
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
логическая задача aska666 Prolog 0 22.04.2012 09:30
Логическая задача Visual Prolog AndreSan Prolog 0 07.12.2011 12:24
логическая задача на Visual Prolog 5.2 Anuta88 Prolog 1 12.04.2011 02:26
логическая задача Sheep Prolog 2 18.12.2010 10:00
Логическая задача Anetta Prolog 2 16.06.2010 20:04
Логическая задача на prolog 5.2 samara Prolog 0 03.05.2010 16:30
Логическая задача Posthuman Prolog 17 27.11.2009 10:04
логическая задача shahor Prolog 15 05.04.2009 23:21
Логическая задача Kensai Prolog 8 13.10.2008 15:09
логическая задача на SWI Prolog Constanta Prolog 2 19.12.2007 20:04
логическая задача dmitra Prolog 0 14.12.2007 00:51
Логическая задача. z556 Prolog 8 05.09.2007 13:10



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов