Реализация отношений n-юродная тетя и внучка на ТуПролог (тот же турбо) - Prolog
Формулировка задачи:
Вот, чтто у меня получилось, но я не понимаю сам принцип Кто будет Н-юродной тетей, и Н-юродной внучкой... Хелп ми=) Учитель что то говорил про выражение через Н-юродную сестру\брата, их я выразил но как дальше не врубаю...
Извините, не знаю как тут править, внес пару изменений и кажись допер как реализовать н-тетю, но до сих пор не могу понять про внучку...
Решение задачи: «Реализация отношений n-юродная тетя и внучка на ТуПролог (тот же турбо)»
textual
Листинг программы
domains
s = string
predicates
man (s)
woman (s)
mother (s, s)
father (s, s)
parent (s, s)
married (s, s)
mar (s, s)
wife (s, s)
husband (s, s)
sister (s, s)
brother (s, s)
niece (s, s)
nephew (s, s)
aunt (s, s)
uncle (s, s)
grandmother (s, s)
grandfather (s, s)
granddaughter (s, s)
grandson (s, s)
cousina (s, s)
cousin (s, s)
son (s, s)
daughter (s, s)
greatgrandson (s, s)
greatgranddaughter (s, s)
n_parent(integer,s,s)
n_granddaughter(integer,s,s)
t_niece(s,s)
t_nephew(s,s)
t_sister(s,s)
t_brother(s,s)
clauses
man ("Igor").
man ("Dmitrii2").
man ("Nicolai").
man ("Victor").
man ("Ivan").
man ("Alexcander").
man ("Nicolai_m").
man ("Andrey").
man ("Dmitrii1").
man ("Stepan").
man ("Pavel").
man ("Maksim").
man ("Boris").
man ("Urii").
man ("Semen").
man ("Sergey").
man ("Efim").
man ("Adam").
man ("Roman").
man ("Anton").
man ("Elisei").
man ("Egor").
man ("Mark").
man ("Tixon").
woman ("Elena").
woman ("Marina").
woman ("Jana").
woman ("Alice").
woman ("Vera").
woman ("Alla").
woman ("Nika").
woman ("Gera").
woman ("Mila").
woman ("Tina").
woman ("Lia").
woman ("Lana").
woman ("Lydia").
woman ("Ekaterina").
woman ("Tatiana").
woman ("Maria").
woman ("Svetlana").
woman ("Nora").
woman ("Lubov").
woman ("Valentina").
woman ("Anna").
woman ("Irina").
parent ("Tatiana", "Andrey").
parent ("Tatiana", "Igor").
parent ("Maria", "Tatiana").
parent ("Nora", "Maria").
parent ("Lubov", "Nicolai_m").
parent ("Svetlana", "Dmitrii2").
parent ("Valentina", "Svetlana").
parent ("Anna", "Victor").
parent ("Dmitrii2", "Andrey").
parent ("Dmitrii2", "Igor").
parent ("Nicolai_m", "Tatiana").
parent ("Victor", "Dmitrii2").
parent ("Ivan", "Maria").
parent ("Alexcander", "Nicolai_m").
parent ("Nicolai", "Svetlana").
parent ("Dmitrii1", "Victor").
parent ("Nora", "Ekaterina").
parent ("Ivan", "Ekaterina").
parent ("Elena", "Pavel").
parent ("Stepan", "Pavel").
parent ("Ekaterina", "Maksim").
parent ("Pavel", "Maksim").
parent ("Maksim", "Marina").
parent ("Marina", "Jana").
parent ("Marina", "Boris").
parent ("Irina", "Semen").
parent ("Urii", "Semen").
parent ("Alla", "Vera").
parent ("Sergey", "Vera").
parent ("Vera", "Alice").
parent ("Semen", "Alice").
parent ("Alice", "Marina").
parent ("Efim", "Gera").
parent ("Nika", "Gera").
parent ("Mila", "Anton").
parent ("Elisei", "Anton").
parent ("Anton", "Adam").
parent ("Gera", "Adam").
parent ("Tina", "Mark").
parent ("Egor", "Mark").
parent ("Lia", "Lana").
parent ("Tixon", "Lana").
parent ("Lana", "Lydia").
parent ("Mark", "Lydia").
parent ("Lydia", "Roman").
parent ("Adam", "Roman").
parent ("Roman", "Jana").
parent ("Roman", "Boris").
married ("Tatiana", "Dmitrii2").
married ("Maria", "Nicolai_m").
married ("Svetlana", "Victor").
married ("Nora", "Ivan").
married ("Lubov", "Alexcander").
married ("Valentina", "Nicolai").
married ("Anna", "Dmitrii1").
married ("Elena", "Stepan").
married ("Ekaterina", "Pavel").
married ("Alice", "Maksim").
married ("Marina", "Roman").
married ("Vera", "Semen").
married ("Irina", "Urii").
married ("Alla", "Sergey").
married ("Nika", "Efim").
married ("Mila", "Elisei").
married ("Gera", "Anton").
married ("Tina", "Egor").
married ("Lia", "Tixon").
married ("Lana", "Mark").
married ("Lydia", "Adam").
mar (X,Y):-married(X,Y).
mar (X,Y):-married(Y,X).
wife (W,X):-woman(W), mar(W,X).
husband (H,X):-man(H), mar(H,X).
mother (M,X):-parent(M,X), woman(M).
father (F,X):-parent(F,X), man(F).
sister (S,X):-parent(P,S), parent(P,X), S<>X, woman(S).
brother (B,X):-parent(P,B), parent(P,X), B<>X, man(B).
niece (N,X):-parent(P,N), sister(P,X), woman(N).
niece (N,X):-parent(P,N), brother(P,X), woman(N).
nephew (N,X):-parent(P,N), sister(P,X), man(N).
nephew (N,X):-parent(P,N), brother(P,X), man(N).
aunt (A,X):-niece(X,A), woman(A).
aunt (A,X):-nephew(X,A), woman(A).
uncle (U,X):-niece(X,U), man(U).
uncle (U,X):-nephew(X,U), man(U).
grandmother (G,X):-woman(G), parent(P,X), parent(G,P).
grandfather (G,X):-man(G), parent(P,X), parent(G,P).
granddaughter (G,X):-woman(G), parent(P,G), parent(X,P).
grandson (G,X):-man(G), parent(P,G), parent(X,P).
cousina (C,X):-woman(C), aunt(A,X), mother(A,C).
cousina (C,X):-woman(C), uncle(U,X), father(U,C).
cousin (C,X):-man(C), aunt(A,X), mother(A,C).
cousin (C,X):-man(C), uncle(U,X), father(U,C).
son (S,P):-man(S), parent(P,S).
daughter (D,P):-woman(D), parent(P,D).
greatgrandson (S,X):-man(S), parent(P,S), parent(Y,P), parent(X,Y).
greatgranddaughter(S,X):-woman(S), parent(P,S), parent(Y,P), parent(X,Y).
n_granddaughter(N,X,Y):-woman(X),n_parent(N,X,Y).
n_parent(1,X,Y):-parent(X,Y).
n_parent(N,X,Y):-N>1,parent(X,Z),N1=N-1,n_parent(N1,Z,Y).
t_sister(Y,X):-parent(Z,X),parent(F,Z), sister(F,N),parent(N,L), parent(L,Y), woman(Y).
t_sister(Y,X):-parent(Z,X),parent(F,Z), brother(F,N),parent(N,L), parent(L,Y), woman(Y).
t_brother(Y,X):-parent(Z,X),parent(F,Z), sister(F,N),parent(N,L),parent(L,Y), man(Y).
t_brother(Y,X):-parent(Z,X),parent(F,Z), brother(F,N),parent(N,L),parent(L,Y), man(Y).
t_niece(Y,X):-t_sister(X,Z), parent(Z,Y), woman(Y).
t_niece(Y,X):-t_brother(X,Z), parent(Z,Y), woman(Y).
t_nephew(Y,X):-t_brother(X,Z), parent(Z,Y), man(Y).
t_nephew(Y,X):-t_sister(X,Z), parent(Z,Y), man(Y).