Lab1: Improve naming on task 3

This commit is contained in:
Aelita4 2023-10-24 18:54:33 +02:00
parent 712d1e6fc0
commit efb2c71045
Signed by: Aelita4
GPG Key ID: E44490C2025906C1
1 changed files with 61 additions and 61 deletions

122
1_3.pl
View File

@ -13,83 +13,83 @@ osoba(milosz , pawel , renata , mezczyzna, 17).
osoba(milena , pawel , renata , kobieta , 15). osoba(milena , pawel , renata , kobieta , 15).
osoba(pawel , jan , krystyna , mezczyzna, 44). osoba(pawel , jan , krystyna , mezczyzna, 44).
mezczyzna(X) :- mezczyzna(Osoba) :-
osoba(X, _, _, mezczyzna, _). osoba(Osoba, _, _, mezczyzna, _).
kobieta(X) :- kobieta(Osoba) :-
osoba(X, _, _, kobieta, _). osoba(Osoba, _, _, kobieta, _).
rodzenstwo(X, Y) :- rodzenstwo(Dzieciak1, Dzieciak2) :-
osoba(X, O, M, _, _), osoba(Dzieciak1, Ojciec, Matka, _, _),
osoba(Y, O, M, _, _), osoba(Dzieciak2, Ojciec, Matka, _, _),
X \= Y. Dzieciak1 \= Dzieciak2.
bracia(X, Y) :- bracia(Brat1, Brat2) :-
rodzenstwo(X, Y), rodzenstwo(Brat1, Brat2),
mezczyzna(X), mezczyzna(Brat1),
mezczyzna(Y). mezczyzna(Brat2).
siostry(X, Y) :- siostry(Siostra1, Siostra2) :-
rodzenstwo(X, Y), rodzenstwo(Siostra1, Siostra2),
kobieta(X), kobieta(Siostra1),
kobieta(Y). kobieta(Siostra2).
brat(X, Y) :- brat(Brat, Osoba) :-
rodzenstwo(X, Y), rodzenstwo(Brat, Osoba),
mezczyzna(X). mezczyzna(Brat).
siostra(X, Y) :- siostra(Siostra, Osoba) :-
rodzenstwo(X, Y), rodzenstwo(Siostra, Osoba),
kobieta(X). kobieta(Siostra).
matka(X, Y) :- matka(Matka, Dziecko) :-
osoba(Y, _, X, _, _). osoba(Dziecko, _, Matka, _, _).
ojciec(X ,Y) :- ojciec(Ojciec, Dziecko) :-
osoba(Y, X, _, _, _). osoba(Dziecko, Ojciec, _, _, _).
potomek(X, Y) :- potomek(Dziecko, Rodzic) :-
matka(Y, X); matka(Rodzic, Dziecko);
ojciec(Y, X). ojciec(Rodzic, Dziecko).
syn(X, Y) :- syn(Syn, Rodzic) :-
potomek(X, Y), potomek(Syn, Rodzic),
mezczyzna(X). mezczyzna(Syn).
corka(X, Y) :- corka(Corka, Rodzic) :-
potomek(X, Y), potomek(Corka, Rodzic),
kobieta(X). kobieta(Corka).
rodzic(X, Y) :- rodzic(Rodzic, Dziecko) :-
matka(X, Y); matka(Rodzic, Dziecko);
ojciec(X, Y). ojciec(Rodzic, Dziecko).
babcia(X, Y) :- babcia(Babcia, Wnuk) :-
rodzic(Z, Y), rodzic(Rodzic, Wnuk),
matka(X, Z). matka(Babcia, Rodzic).
dziadek(X, Y) :- dziadek(Dziadek, Wnuk) :-
rodzic(Z, Y), rodzic(Rodzic, Wnuk),
ojciec(X, Z). ojciec(Dziadek, Rodzic).
wujek(X, Y) :- wujek(Wujek, Osoba) :-
rodzic(Z, Y), rodzic(Rodzic, Osoba),
brat(X, Z). brat(Wujek, Rodzic).
ciocia(X, Y) :- ciocia(Ciocia, Osoba) :-
rodzic(Z, Y), rodzic(Rodzic, Osoba),
siostra(X, Z). siostra(Ciocia, Rodzic).
kuzyni(X, Y) :- kuzyni(Kuzyn1, Kuzyn2) :-
rodzic(A, X), rodzic(Rodzic1, Kuzyn1),
rodzic(B, Y), rodzic(Rodzic2, Kuzyn2),
rodzenstwo(A, B), rodzenstwo(Rodzic1, Rodzic2),
X \= Y. Kuzyn1 \= Kuzyn2.
kuzyn(X, Y) :- kuzyn(Kuzyn, Osoba) :-
kuzyni(X, Y), kuzyni(Kuzyn, Osoba),
mezczyzna(X). mezczyzna(Kuzyn).
kuzynka(X, Y) :- kuzynka(Kuzynka, Osoba) :-
kuzyni(X, Y), kuzyni(Kuzynka, Osoba),
kobieta(X). kobieta(Kuzynka).