woman("Crash").
woman("Aerie").
woman("Lara").
woman("Kerrigan").
man("Vasya").
man("Raynor").
man("Diablo").
man("Xaero").
parent("Xaero","Diablo").
parent("Diablo","Vasya").
parent("Lara","Vasya").
parent("Vasya","Aerie").
parent("Vasya","Raynor").
parent("Raynor","Crash").
parent("Kerrigan","Crash").
father(X,Y):-
man(X),
parent(X,Y).
mother(X,Y):-
woman(X),
parent(X,Y).
child(X,Y):-
parent(Y,X).
grandChild(X,Y):-
child(X,A),
child(A,Y).
grandMother(A,B):-
woman(A),
grandChild(B,A).
grandFather(A,B):-
man(A),
grandChild(B,A).
aunt(A,B):-
woman(A),
parent(CommonParent,A),
parent(Z,B),
parent(CommonParent,Z).
proParent(A,B):-
parent(A,B).
proParent(A,B):-
parent(C,B),
proParent(A,C).
Задача на прологе
H-e-l-p!!!
Нужно срочно!
[COLOR=Red]За неправильное название темы, нечетко изложенный вопрос и не указание рабочей среды получаешь нарушение(подробности в профиле). В следущий раз за тему с таким оформлением может быть бан. Модератор.[/COLOR]
предположим есть файл relations.txt с содержимым:
Код:
теперь можно использовать следующий код:
Код:
implement Family
open core, stdIO
constants
className = "Family".
classVersion = "".
domains
gender = man(); woman().
class facts - db
person: (string Name, gender Gender).
parent: (string Name1, string Name2).
class predicates
father: (string F, string C) nondeterm anyflow.
clauses
father(F,C):-
person(F,man),
parent(F,C).
class predicates
mother: (string M, string C) nondeterm anyflow.
clauses
mother(M,C):-
person(M,woman),
parent(M,C).
class predicates
anscestor: (string A, string D) nondeterm anyflow.
clauses
anscestor(A,D):-
parent(A,D).
anscestor(A,D):-
parent(F,D),
anscestor(A,F).
clauses
classInfo(className, classVersion).
clauses
run():-
console::init(),
file::consult("relations.txt",db),
father(Y,X),
writef("% is a father of %\n",Y,X),
write("Enter person name: "),
B = readLine(),
anscestor(A,B),
writef("% is ancestor of %\n",A,B),
fail().
run():-
succeed().
end implement Family
goal
mainExe::run(Family::run).
open core, stdIO
constants
className = "Family".
classVersion = "".
domains
gender = man(); woman().
class facts - db
person: (string Name, gender Gender).
parent: (string Name1, string Name2).
class predicates
father: (string F, string C) nondeterm anyflow.
clauses
father(F,C):-
person(F,man),
parent(F,C).
class predicates
mother: (string M, string C) nondeterm anyflow.
clauses
mother(M,C):-
person(M,woman),
parent(M,C).
class predicates
anscestor: (string A, string D) nondeterm anyflow.
clauses
anscestor(A,D):-
parent(A,D).
anscestor(A,D):-
parent(F,D),
anscestor(A,F).
clauses
classInfo(className, classVersion).
clauses
run():-
console::init(),
file::consult("relations.txt",db),
father(Y,X),
writef("% is a father of %\n",Y,X),
write("Enter person name: "),
B = readLine(),
anscestor(A,B),
writef("% is ancestor of %\n",A,B),
fail().
run():-
succeed().
end implement Family
goal
mainExe::run(Family::run).
У меня компилятор под дос.
Помогите кто-нибудь!!!:(
этот код был написан в visual prolog 7. неужели так тяжело подправить? или запускай под vp7.
Цитата: Free Thinker
этот код был написан в visual prolog 7. неужели так тяжело подправить? или запускай под vp7.
пробовал на vp6 невыходит.:(
ктому же у меня всего 5 дней для сдачи!
И никогда до этого не в prologe, не сидел.
я смогу проверить только ближе к ночи.
error c155: The identifier 'family' must start with a lowercase letter
error c155: The identifier 'family' must start with a lowercase letter
error c161: Syntax error: ')' is expected
P.S. В прологе я нуль. Если можешь как можно быстрре ответь, please!
Цитата: CilCatblack
error c155: The identifier 'family' must start with a lowercase letter
error c155: The identifier 'family' must start with a lowercase letter
ну раз "must", значит переименуй Family в family. я редактировал код и забыл, что нужно с маленькой буквы.
Цитата: CilCatblack
error c161: Syntax error: ')' is expected
из за такой ошибки я даже запускать у себя не буду. ну пропустил скобку - в VP дабл-кликни на ошибку и на нужной строчке добавь скобку.
Цитата: CilCatblack
P.S. В прологе я нуль. Если можешь как можно быстрре ответь, please!
ошибки эти с самим прологом мало связаны. так что видимо не только в прологе. неужели легче ждать ответа на форуме, чем самому чуть подумать?
Код:
...
console::init(),
...
console::init(),
...
ты при создании проекта выбрал console project?