| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Prolog > Кто является австралийцем? Каким спортом увлекаетс |
| Автор: Линус 8.12.2014, 18:41 |
| Здравствуйте, помогите пожалуйста решить задачи по SWI Prolog с пояснением. Три друга заняли первое, второе, третье места в соревнованиях универсиады. Друзья разной национальности, зовут их по-разному, и любят они разные виды спорта. Майкл предпочитает баскетбол и играет лучше, чем американец. Израильтянин Саймон играет лучше теннисиста. Игрок в крикет занял первое место. Кто является австралийцем? Каким спортом увлекается Ричард? Я решила, но что то не работает nation(austrian). nation(american). nation(istreali). sport(basketball). sport(tennis). sport(criket). name(milk). name(saimon). name(richard). prize(1). prize(2). prize(3). soot(N,Nat,S,M):-nation(Nat),sport(S),name(N),prize(M),N=milk,S=basketball, not(Nat=american),not(M=1), not(M=3). soot(N,Nat,S,M):-nation(Nat),sport(S),name(N),prize(M),N=saimon, not(S=tennis),Nat=istreali,not(M=3). soot(N,Nat,S,M):-nation(Nat),sport(S),name(N),prize(M),N=richard, not(S=basketball),not(Nat=istreali). |
| Автор: rrrFer 9.12.2014, 12:40 | ||
Вот тут твоя задача разобарна по полочкам, даже с иллюстрациями: http://pro-prof.com/archives/1299
Код взял из статьи, пояснения компипастить не стал. Предикат unique проверяет чтобы элементы списка не повторялись (по ссылке его тоже можно найти где-то) |
| Автор: Линус 18.12.2014, 21:47 |
| Спасибо) |