/*
Rendezés adatbázison - variációk
*/


adat(kati,3).
adat(mari,4).
adat(misi,6).
adat(géza,2).
adat(dezsõ,6).
adat(józsi,5).
adat(jani,6).
adat(béla,8).


rendez1 :- findall(Nev, adat(Nev,_), Nevek), sort(Nevek, Nevsor), 
	   writeln('A névsor: \n'), ki(Nevsor).


rendez2 :- findall(Nev, adat(Nev,_), Nevek), sort(Nevek, Nevsor), 
           reverse(Nevsor, Forditottnevsor),
	   writeln('A névsor: \n'), ki(Forditottnevsor).


rendez3 :- findall((Nev,Szam), adat(Nev,Szam), Adatok), sort(Adatok, Rendezve),
	   writeln('Az adatok: \n'), kiir(Rendezve).


rendez4 :- findall((Nev,Szam), adat(Nev,Szam), Adatok), sort(Adatok, Rendezve), 
           reverse(Rendezve, Forditva),
	   writeln('Az adatok: \n'), kiir(Forditva).


rendez5 :- findall((Szam,Nev), adat(Nev,Szam), Adatok), sort(Adatok, Rendezve),
	   writeln('Az adatok: \n'), kiir(Rendezve).


rendez6 :- findall((Szam,Nev), adat(Nev,Szam), Adatok), sort(Adatok, Rendezve), 
           reverse(Rendezve, Forditva),
	   writeln('Az adatok: \n'), kiir(Forditva).


rendez7 :- setof((Szam,Nev), adat(Nev,Szam), Adatok), reverse(Adatok, Eredmeny),
           writeln('Az eredmény: \n'), kiir(Eredmeny).


ki([N|T]) :- writeln(N), ki(T).
ki([]).


kiir([(N,Sz)|T]) :- writef('%w\t%w\n', [N,Sz]), kiir(T).
kiir([]).


/*Természetesen összetettebb adatbázist is lehet hasonló módon rendezni.*/
