Реализовать поиск в динамической бд по цене с указанием интервала возм

  • Автор темы Guest
  • Дата начала
G

Guest

#1
Уважаемые программисты, помогите пожалуйста решить задачку до конца, начала разбираться с прологом и появились проблемы при решении этой задачи: Написать программу, реализующую книжный магазин. Должна быть представлена следующая информация: название книги, количество экземпляров, цена. Реализовать вывод всей информации о книгах, поиск книги по названию. Реализовать поиск по цене с указанием интервала возможной цены (должна быть выведена информация о книгах, цены которых попадают в указанный интервал). Для удобства работы реализовать меню с соответствующими пунктами.
А точнее не знаю как сделать поиск по цене с указанием интервала...

Вот текст программы, которую написал (не хватает соответственно 3го пункта меню):
Код Prolog
PREDICATES
case(integer)
book(integer,symbol,integer,real)
input(integer)
counter(integer)
menu

CLAUSES
book(1,"Flowers",10,50).
book(2,"Biology",72,100).
book(3,"Bears",13,150).
book(4,"Birds",34,200).
book(5,"Forest Gump",15,250).
book(6,"Alhimik",78,300).
book(7,"Agata Kristi",5,350).

menu:-
clearwindow,
write("1.Vivod vsei DB"),nl,
write("2.Poisk po nazvaniyu"),nl,
write("3.Poisk po cene"),nl,
write("4.Exit"),nl,
write("Vvedite nomer menu: "),
readint(Menu),
case(Menu).

counter(N):-
N<=7,
input(N),
NewN=N+1,
counter(NewN).

counter(N):-
N>7,nl,
write("Najmite Enter"),
readln(_),
menu.

input(N):-
book(N,Name,Quantity,Price),
write(Name," ",Quantity," ",Price),nl.

case(1):-
clearwindow,
write("Vivod vsei DB:"),nl,
counter(1).

case(2):-
clearwindow,
write("Vvedite nazvanie knigi: "),
readln(Name),
book(Num,Name,Quantity,Price),
write(Name," ",Quantity," ",Price),nl,
write("Najmite Enter"),
readln(_),
menu.

case(2):-
clearwindow,
write("Ne naideno sovpadenii."),nl,
write("Najmite Enter"),
readln(_),
menu.

case(3):-
clearwindow,
write("Ne naideno sovpadenii."),nl,
write("Najmite Enter"),
readln(_),
menu.

case(4):-
write("Exit").

case(_):-
write("Oshibka, vvodite tolko 1,2,3,4"),nl,
write("Najmite Enter"),
readln(_),
menu.

GOAL
menu.


Работаю на 2ом турбо прологе