Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.83 KB | None | 0 0
  1. fn(2).
  2. fn(1).
  3.  
  4. place(panama).
  5.  
  6. price(1,34).
  7. price(2,88).
  8.  
  9. target(2,panama).
  10. target(1,panama).
  11.  
  12. print_price(Number):-price(Number,Cost),write("Цена: "),write(Cost),nl.
  13. print_target(Number):-target(Number,Place),write("Пункт назначения: "),write(Place),nl.
  14. print_all_tail(Number):-fn(Number), write("Рейс: "), write(Number), nl,
  15.     print_target(Number),print_price(Number), N is Number + 1,
  16.     print_all_tail(N).
  17.  
  18. print_all:-print_all_tail(1).
  19. pn(Place,Mp):-print_fn_by_place_and_maxprice(Place,Mp).
  20. print_fn_by_place_and_maxprice(Place,MaxPrice):-print_fn_by_place_and_maxprice_tail(1,Place,MaxPrice).
  21. print_fn_by_place_and_maxprice_tail(Number,Place,MaxPrice):-target(Number,Place),price(Number,Price),
  22.     Price<MaxPrice,write("Рейс: "),write(Number),write(" Цена: "),write(Price),nl.
  23. %print_fn_by_place_and_maxprice(Place,MaxPrice):-place(Place),target(Number,Place),price(Number,Price),Price>=MaxPrice,write("Подходящих рейсов нет"),nl.
  24.  
  25. menu:-!,
  26.     nl,
  27.     write("1-Все данные."),nl,
  28.     write("2-Поиск пункта назначения по номеру рейса."),nl,
  29.     write("3-Поиск рейса по пункту назначения с порогом максимальной цены."),nl,
  30.     write("4-Выход"),nl,
  31.     read(Point), menu_point(Point).
  32. menu_point(1):-
  33.     write("Все рейсы:"),nl, print_all,menu.
  34. menu_point(2):-
  35.     write("Введите номер рейса:"), read(Number),print_target(Number),menu.
  36. menu_point(3):-
  37.     write("Введите пункт назначения:"),read(Place),nl,
  38.     write("Введите максимальную цену:"),read(MaxPrice),nl,
  39.     pn(Place,MaxPrice),menu.
  40. menu_point(4):-!.
  41. menu_point(_Default):-
  42.     nl,write("Введите команду ещё раз."), menu.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement