Ошибка: "Free variable in expression" - Prolog

Узнай цену своей работы

Формулировка задачи:

Друзья, помогите побороть эту ошибку: "Free varable in expression" в выражении scan(V,Q):-V<=Q,
Листинг программы
  1. nowarnings
  2. domains
  3. q = string
  4. n = integer
  5. predicates
  6. payroll (n,q,n,n,q,n)
  7. data_bank
  8. scan(n,n)
  9. process(n)
  10. repeat
  11. do_mbase
  12. menu
  13. error
  14. goal
  15. do_mbase.
  16. clauses
  17. payroll (1,"24.01.2016",6,60,"mostly cloudy",754).
  18. payroll (2,"25.01.2016",2,75,"snow to rain",764).
  19. payroll (3,"26.01.2016",0,60,"partly cloudy",754).
  20. repeat.
  21. repeat:-repeat.
  22. do_mbase:-makewindow(1,7,7,"Menu",0,0,25,80),menu.
  23. menu:-repeat, clearwindow,
  24. write("Select the menu item: "), nl, nl,
  25. write("1. View the database"), nl ,
  26. write("2. Пошук запису по прізвищу працівника"), nl,
  27. write("3. Знайти всіх робітників чий оклад не перевищуЇ суму, що вводиться"), nl,
  28. write("0. Exit"), nl ,
  29. write("********"), nl, nl ,
  30. write("Enter the menu item"), nl ,
  31. readint(X),nl,
  32. process(X),X=0,!.
  33. process (1):-
  34. makewindow (2,7,7,"The database",2,20,18,58),clearwindow,
  35. write ("Database : "),
  36. cursor (3,14),data_bank,nl,nl,
  37. write("Press any key"),readchar(_),fail.
  38. process (2):-
  39. makewindow(3,14,14,"Пошук",0,0,20,40),
  40. write("Search by description of the weather: "),
  41. write("Enter description "), readln(Z),
  42. payroll(X,Y,V,B,Z,C), cursor(7,14),
  43. write("Number - ",X),nl,
  44. write("Date - ",Y),nl,
  45. write("Temperature - ",V),nl,
  46. write("Humidity - ",B),nl,
  47. write("Description - ",Z),
  48. write("Pressure - ",C),nl,nl,nl, % Атм. тиск
  49. write("Press any key"),readchar(_),
  50. removewindow.
  51. /* Перегляд інформації з БД */
  52. process (3):-makewindow (4,7,7,"Window 3",0,0,24,70),
  53. write ("The temperature is below of: "),
  54. write ("Еnter temperature"), readint(Q),
  55. payroll(_,_,_,_,_,_),
  56. scan(V,Q).
  57. /* Вихід з діалогу */
  58. process (0):-
  59. write("Press any key"),
  60. readchar(_),exit.
  61. process (X):-X<0,error,
  62. X>3,error.
  63. error:- write ("The number must be 0-3"),nl,nl,
  64. write ("Press any key"),readchar(_).
  65. data_bank:-
  66. payroll(X,Y,V,B,Z,C),nl,
  67. write("Number - ",X),nl,
  68. write("Date - ",Y),nl,
  69. write("Temperature - ",V),nl,
  70. write("Humidity - ",B),nl,
  71. write("Description - ",Z),
  72. write("Pressure - ",C),nl,nl,
  73. write("Press any key"), readchar(_),nl,fail.
  74. data_bank :- !.
  75. scan(V,Q):-V<=Q,
  76. write("Number - ",X),nl,
  77. write("Date - ",Y),nl,
  78. write("Temperature - ",V),nl,
  79. write("Humidity - ",B),nl,
  80. write("Description - ",Z),
  81. write("Pressure - ",C),nl,nl,
  82. write("Press any key"), readchar(_),nl,fail.
  83. scan(V,Q):-!.

Решение задачи: «Ошибка: "Free variable in expression"»

textual
Листинг программы
  1. write ("Еnter temperature"), readint(Q),
  2.              payroll(_,_,_,_,_,_),
  3. scan(V,Q).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы