Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 9

Книгу в библиотеку можно взять, если она есть в библиотеке и не взята другим читателем. Составьте программу, описывающую данное утверждение

05.05.2011, 19:23. Показов 1283. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу решить задачу про библиотеку, может кто знает как решить?

Книгу в библиотеку можно взять, если она есть в библиотеке и не взята другим читателем. Составьте программу, описывающую данное утверждение (с использованием предиката not). Программа должна включать также несколько фактов.

Помогите решить, для Вас я думаю не составит сложности. Буду при много благодарен!!!

Читал литературу, вроде все легко и понятно, но как берусь за задачу вхожу в ступор.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.05.2011, 19:23
Ответы с готовыми решениями:

Составьте программу, которая выводит полную запись десятичного числа 42*4*, в которой пропущены две цифры, если известно, что данное число кратно 72.
Составьте программу, которая выводит полную запись десятичного числа 42*4*, в которой пропущены две цифры, если известно, что данное число...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
05.05.2011, 19:25
 Комментарий модератора 
s.d-v, читайте правила форума, в части оформления тем
1
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 9
06.05.2011, 19:20  [ТС]
Удалите пожалуйста тему. Я переформулирую.
0
Заблокирован
06.05.2011, 20:18
s.d-v, в задаче должны быть описаны книги, типа:
Prolog
1
2
3
4
book( "Prolog and Logic Programming", "Hancox P.", 1998 ).
    book( "Prolog Programming: A First Course", "Brna P.", 1999 ).
    book( "Prolog Tutorials", "Power J.", 1997 ).
    book( "Programming in Tabled Prolog", "Warren D.S.", 1999 ).
по идее, можно сделать так, когда юзер берет книгу - то она удаляется из БД(предикат retract), когда возвращает - добавляется(assert) - это самое логичное и правильное решение, но тогда не совсем представляю куда приткнуть предикат NOT.

Возможно другое решение, кроме книг, описываем взятые книги, типа
Prolog
1
book_( "Prolog and Logic Programming", "Hancox P.", 1998 ).
Тогда при попытке взять книгу сначала ищем книгу среди book, если не нашли - выводим сообщение что такой книги вообще нет. Если нашли - то ищем книгу среди book_, если нашли - выводим сообщение что книга взята, иначе юзер может удачно взять книгу(при этом надо добавить запись book_ в БД, cодержащую информацию о книге).

если создадите предикат search для поиска информации среди book и search_ - среди book_, то чтобы взять книгу надо выполнить что-то типа:
Prolog
1
2
3
4
5
6
takebook(BOOK_INFO):-
    search(BOOK_INFO),
    NOT(search(BOOK_INFO),
    assert(book_(INFO)).
takebook(_):-
    write("не удалось взять книгу").
это схематично.
1
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 9
14.05.2011, 13:26  [ТС]
Все равно не могу понять. А как это будет выглядеть в прологе, полностью?

Добавлено через 3 часа 0 минут
Цитата Сообщение от rrrFer Посмотреть сообщение
s.d-v, в задаче должны быть описаны книги, типа:
Prolog
1
2
3
4
book( "Prolog and Logic Programming", "Hancox P.", 1998 ).
    book( "Prolog Programming: A First Course", "Brna P.", 1999 ).
    book( "Prolog Tutorials", "Power J.", 1997 ).
    book( "Programming in Tabled Prolog", "Warren D.S.", 1999 ).
по идее, можно сделать так, когда юзер берет книгу - то она удаляется из БД(предикат retract), когда возвращает - добавляется(assert) - это самое логичное и правильное решение, но тогда не совсем представляю куда приткнуть предикат NOT.

Возможно другое решение, кроме книг, описываем взятые книги, типа
Prolog
1
book_( "Prolog and Logic Programming", "Hancox P.", 1998 ).
Тогда при попытке взять книгу сначала ищем книгу среди book, если не нашли - выводим сообщение что такой книги вообще нет. Если нашли - то ищем книгу среди book_, если нашли - выводим сообщение что книга взята, иначе юзер может удачно взять книгу(при этом надо добавить запись book_ в БД, cодержащую информацию о книге).



если создадите предикат search для поиска информации среди book и search_ - среди book_, то чтобы взять книгу надо выполнить что-то типа:
Prolog
1
2
3
4
5
6
takebook(BOOK_INFO):-
    search(BOOK_INFO),
    NOT(search(BOOK_INFO),
    assert(book_(INFO)).
takebook(_):-
    write("не удалось взять книгу").
это схематично.
...(цензура)... немогу понять этот Пролог. Бесит уже, нервы сдают. Напишите пожалуйста как это будет выглядеть в прологе полностью. Как мне написали выше не понимаю что к чему. Что писать в разделе предикатов, цель, факты, правила!
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
14.05.2011, 14:22
не надо грубо Я сейчас покажу частично как можно сделать, и если Вы и этот код доделать не сможете, то вы извиняюсь что удалил [rrrFer] .
Prolog
1
2
3
4
5
6
book(1,"Voina i mir","Tolstoi",1973).
 
vzyata(1,"Ivanov I.I","20.03.2011","vozvrashena").
 
mozno_vzyat(BookName):-book(IdBook,BookName,_,_),not(vzyata(IdBook,_,_,_)).
mozno_vzyat(BookName):-book(IdBook,BookName,_,_),vzyata(IdBook,_,_,"vozvrashena").
Книгу можно взять если она не бралась вовсе, или если бралась, но уже возвратили.
1
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 9
14.05.2011, 17:20  [ТС]
Цитата Сообщение от Грымзик Посмотреть сообщение
не надо грубо Я сейчас покажу частично как можно сделать, и если Вы и этот код доделать не сможете, то вы извиняюсь что удалил [rrrFer] .
Prolog
1
2
3
4
5
6
book(1,"Voina i mir","Tolstoi",1973).
 
vzyata(1,"Ivanov I.I","20.03.2011","vozvrashena").
 
mozno_vzyat(BookName):-book(IdBook,BookName,_,_),not(vzyata(IdBook,_,_,_)).
mozno_vzyat(BookName):-book(IdBook,BookName,_,_),vzyata(IdBook,_,_,"vozvrashena").
Книгу можно взять если она не бралась вовсе, или если бралась, но уже возвратили.
Проношу извинить меня за грубость и нецензуру (я не хотел), просто реально нервы сдают. Спасибо за помощь, вроде дошло (надеюсь). Тему можно закрывать.

Добавлено через 34 минуты
Все таки я наверно ту*ой, раз у меня не получается. Вот делаю так, где ошибка?

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
domains
BookName,KtoVzyal,Dolg = string
IdBook,GodIzdan = integer
 
predicates
mozno_vzyat(BookName)
book(IdBook,BookName,GodIzdan)
vzyata(IdBook,KtoVzyal,Dolg)
 
clauses
 
book(1,"Voina i mir",1973).
book(2,"Prolog",1996).
book(3,"Buratino",1989).
 
vzyata(1,"Ivanov I.I","vozvrashena").
vzyata(2,"Petrov B.B","vozvrashena").
 
mozno_vzyat(BookName):-book(IdBook,BookName,GodIzdan),not(vzyata(IdBook,KtoVzyal,Dolg)).
mozno_vzyat(BookName):-book(IdBook,BookName,GodIzdan),vzyata(IdBook,KtoVzyal,Dolg).
 
goal
mozno_vzyat("Voina i mir").
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
14.05.2011, 18:01
Наверно у Вас Турбо пролог. Тогда ошибка только в этой строчке
mozno_vzyat(BookName):-book(IdBook,BookName,GodIzdan),vzyata(Id Book,KtoVzyal,Dolg).
Вы зачем-то переделали то, что я написала, и переделали неправильно.
0
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 9
14.05.2011, 19:26  [ТС]
а остальное правильно?
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
14.05.2011, 19:28
А не проще ли самому проверить? Если турбо пролог, то вроде правильно. Если Визуал, то нет.
0
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 9
14.05.2011, 19:55  [ТС]
Visual. я вообще не когда с ним не сталкивался. А скоро сессия. напишите решения
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
14.05.2011, 19:59
А может и сдать за Вас? Наглых воспитывать надо. Написали бы в вежливой форме, то помогла бы, а так даже и говорить в чем ошибка(точней ошибки) не буду.
0
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 9
14.05.2011, 20:26  [ТС]
Почему это наглых интересно бы знать? Я хотел сам разобраться, но не получилось вот и обратился от беспомощности к Вам, к специалистам. Если бы знал как то сам бы сделал. А так как у меня руки уже опустились, прошу Вас помочь мне. И я не кому не грубил, в адрес кого то конкретно, даже мысли не было , просто я говорю, что не могу понять как и что вообще в этом прологе работает, из-за этого и сдают нервы.
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
14.05.2011, 20:34
Цитата Сообщение от s.d-v Посмотреть сообщение
Visual. я вообще не когда с ним не сталкивался. А скоро сессия. напишите решения
Ну может по-Вашему так нормально писать, без пожалуйста, без спасибо, а по-моему нет. Да и до этого вежливостью Вы не блистали. Можете конечно удивляться и дальше, но помогать Вам совсем желания нет.
0
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 9
14.05.2011, 20:43  [ТС]
спасибо я лично Вам говорил, нажимал на кнопку +1Спасибо. Тему закрывать не надо, а раз помогать не хотите, то не надо. Умолять Вас не буду, найдутся и другие люди!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru