Ошибка visual prolog

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

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

Доброго времени суток! Написала прогу по задаче: Познакомим читателей с тремя людьми: Аладаром, Белой и Балашом. Один из них аптекарь, другой - бухгалтер, третий - агроном. Один живет в Будапеште, другой- в Бекешчабе, третий - в Асоде. Требуется выяснить, кто где живет и у какого какая профессия. Извсетно лишь, что 1 Балаш бывает в Будапеште лишь наездами и то весьма редко, хотя все его родственники постоянно живут в столице; 2 у двух из этих людей название профессий и городов, в которых они живут, начинаются с той же буквы, что и их имена; 3 жена аптекаря доводится Балашу младшей сестрой. Как правильно составить правила для данной задачи и где мои ошибки? При запуске пишете синтаксис ошибка! Вот сам код (visual prolog 7.5):
Листинг программы
  1. % Copyright
  2. implement main
  3. open core
  4. domains
  5. name,town,job,condition= string
  6.  
  7. predicates
  8. nondeterm name(string)
  9. nondeterm town(string)
  10. nondeterm job(string)
  11. nondeterm condition1(string,string,string)
  12. nondeterm condition2(string,string,string)
  13. nondeterm condition3(string,string,string)
  14. nondeterm condition4(string,string,string)
  15. nondeterm condition5(string,string,string)
  16. nondeterm man(string, string, string,string,string,string,string,string,string)
  17. clauses
  18. run() :-
  19. name(Balash).
  20. name(Bela).
  21. name(Aladar).
  22. town(Budapest).
  23. town(Bekescsaba).
  24. town(Aszod).
  25. job(aptekar).
  26. job(agronom).
  27. job(buhgalter).
  28. /* устанавливаем взаимооднозначные соответствия*/
  29. /* между множеством имён, городов и профессий X - name, Y - town, Z - job*/
  30. condition1 (X,Y,Z) :- name(X), town(Y), job(Z),
  31. X=Balash, not (Y=Budapest), not (Z=aptekar), Y<>Z.
  32. condition2 (X,Y,Z) :- name(X), town(Y), job(Z),
  33. X=Balash, not (Y=Aszod), not (Z=agronom), Y<>Z.
  34. condition3 (X,Y,Z) :- name(X), town(Y), job(Z),
  35. X=Bela, not(Y=Bekescsaba), not (Z=buhgalter), Y<>Z.
  36. condition4 (X,Y,Z) :- name(X), town(Y), job(Z),
  37. X=Bela, not(Y=Aszod), not (Z=agronom), Y<>Z.
  38. condition5 (X,Y,Z) :- name(X), town(Y), job(Z),
  39. X=Aladar, not (Y=Bekescsaba), not(Z=agronom), Y<>Z.
  40. man(X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3):-
  41. X1=Balash, condition (X1,Y1,Z1),
  42. X2=Bela, condition (X2,Y2,Z2),
  43. X3=Aladar, condition (X3,Y3,Z3),
  44. Y1<>Y2, Y2<>Y3, Y1<>Y3,
  45. Z1<>Z2, Z2<>Z3, Z1<>Z3.
  46. % succeed. % place your own code here
  47. end implement main
  48. goal
  49. man(X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3),
  50. write(X1," town- ",Y1," job- ",Z1),nl,
  51. write(X2," town- ",Y2," job- ",Z2),nl,
  52. write(X3," town- ",Y3," job- ",Z3),nl.
  53. %console::runUtf8(main::run).
При запуске выдает ошибки: Type Action Description Filename Path e150 Syntax error main.pro

Решение задачи: «Ошибка visual prolog»

textual
Листинг программы
  1. % Copyright
  2.  
  3. implement main
  4.     open core
  5.  
  6.  domains
  7.     name[COLOR="Red"],[/COLOR]town,job,condition= string
  8.  
  9.  predicates
  10.    [COLOR="red"] n[/COLOR]ondeterm name(string)
  11.     nondeterm town(string)
  12.     nondeterm job(string)
  13.     nondeterm condition(string,string,string)
  14.     nondeterm man(string, string, string,string,string,string,string,string,string)
  15.  
  16.  
  17. clauses
  18.     run() :-
  19.      man(X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3),
  20.         succeed. % place your own code here
  21.  
  22.     name(Balash).
  23.     name(Bela).
  24.     name(Aladar).
  25.     town(Budapest).
  26.     town(Bekescsaba).
  27.     town(Aszod).
  28.     job(aptekar).
  29.     job(agronom).
  30.     job(buhgalter).
  31.  
  32. /* устанавливаем взаимооднозначные соответствия*/
  33. /* между множеством имён, городов и профессий X - name, Y - town, Z - job*/
  34. condition(X,Y,Z) :- name(X), town(Y), job(Z),
  35. X=Balash, not (Y=Budapest), not (Z=aptekar), Y<>Z.
  36. condition(X,Y,Z) :- name(X), town(Y), job(Z),
  37. X=Bela, not(Y=Aszod), not (Z=agronom), Y<>Z.
  38. condition(X,Y,Z) :-  name(X), town(Y), job(Z),
  39. X=Aladar, not (Y=Bekescsaba), not(Z=buhgalter), Y<>Z.
  40. man(X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3):-
  41. X1=Balash, condition (X1,Y1,Z1),
  42. X2=Bela, condition (X2,Y2,Z2),
  43. X3=Aladar, condition (X3,Y3,Z3),
  44. Y1<>Y2, Y2<>Y3, Y1<>Y3,
  45. Z1<>Z2, Z2<>Z3, Z1<>Z3.
  46. end implement main
  47.  
  48. goal
  49.     console::runUtf8(main::run).

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


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

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

6   голосов , оценка 4.5 из 5

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

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

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