:- consult('query.pl'). /* Majme databazu: citatel(CitatelID, Meno, DatumPrihlasenia) //DatumPrihlasenia je pocet dni od 1.1.2000 kniha(KnihaID, Nazov, Autor) pozicka(CitatelID, KnihaID, DatumPozicania, DatumVratenia) //DatumVratenia je null, ak knihu este nevratil Ulohy: */ /*0. Vytvorte subor kniznica.pl, ktory bude obsahovat aspon 5 zaznamov v kazdej tabulke*/ :- consult('kniznica.pl'). /*1. Vypiste vsetky trojice [meno_citatela, nazov_knihy, DatumPozicania], kde nazov_knihy je kniha, ktoru dany citatel este nevratil*/ ans1(M,K,D) :- citatel(IC,M,_), kniha(IK,K,_), pozicka(IC,IK,D,null). /*2. Vypiste nazvy knih, ktore si este nikto nepozical*/ pozicane(IK) :- pozicka(_,IK,_,_). ans2(K) :- kniha(IK,K,_), \+ pozicane(IK). /*3. Najdite mena citatelov, ktori si este nic nepozicali*/ pozical(IC) :- pozicka(IC,_,_,_). ans3(M) :- citatel(IC,M,_), \+ pozical(IC). /*4. Najdite mena citatelov, ktori maju vratene vsetky pozicane knihy*/ nevratil(IC) :- pozicka(IC,_,_,null). ans4(M) :- citatel(IC,M,_), \+ nevratil(IC). /*5. Vypiste dvojice [meno_citatela, nazov_knihy], kde nazov_knihy je nazov knihy, ktoru si dany citatel pozical aspon 2x. */ ans5(M,K) :- citatel(IC,M,_), kniha(IK,K,_), pozicka(IC,IK,D1,_), pozicka(IC,IK,D2,_), \+ D1=D2. /*6. Vypiste dvojice [meno_citatela, nazov_knihy], kde nazov_knihy je nazov knihy, ktoru si dany citatel pozical prave 2x. */ inapozicka(IC,IK,D1,D2) :- pozicka(IC,IK,D,_), \+ D=D1, \+ D=D2. ans6(M,K) :- citatel(IC,M,_), kniha(IK,K,_), pozicka(IC,IK,D1,_), pozicka(IC,IK,D2,_), \+ D1=D2, \+inapozicka(IC,IK,D1,D2). /*7. Vypiste mena citatelov, ktori si pozicali aspon 2 rozne knihy, pricom vsetky pozicane knihy boli od toho isteho autora*/ dvajaautori(IC) :- kniha(IK1,_,A1), kniha(IK2,_,A2), pozicka(IC,IK1,_,_), pozicka(IC,IK2,_,_), \+ A1=A2. ans7(M) :- citatel(IC,M,_), pozicka(IC,IK1,_,_), pozicka(IC,IK2,_,_), \+ IK1=IK2, \+ dvajaautori(IC). /*8. Vypiste dvojice [meno_citatela, nazov_knihy], kde nazov_knihy je prva pozicana kniha daneho citatela*/ skorpozicka(IC,D) :- pozicka(IC,_,Datum,_), Datum D. */