Реализация отношений 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).

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

13   голосов , оценка 3.923 из 5
Похожие ответы