Programozás I. géptermi pótZH, 2015. 06. 23. Alapfeladat: Egy online zeneszolgáltatás ajánlórendszeréhez van szükség segítségre. A felhasználók nicknévvel azonosítottak. Az egyes zenéknek van előadója és címe. Feltehető, hogy az előadó és a cím együtt azonosítja a zenét, illetve hogy bizonyos karaktereket nem tartalmazhatnak. Minden felhasználó tudja jelezni, ha egy zene neki tetszik, vagy nem tetszik. Ha egy zenéről se tetsző, se nem tetsző jelzés nincs, arról nem tudjuk, hogy szereti-e. Azt mondjuk, hogy két felhasználó ízlése hasonló, ha nincs olyan zene, amelyiket az egyik szeretné, a másik meg nem, és van legalább egy közös zene, amit mindketten szeretnek, és legalább egy, amit mindketten nem-szeretnek. Hozz létre egy Ajánló típust, amelyiknél lehet regisztrálni felhasználót, jelezni a tetszést és a nem tetszést, és lekérdezni, hogy két felhasználó ízlése hasonló-e. B) Az A) részt egészítsd ki azzal, hogy egy felhasználóhoz írd ki az összes olyan zenét, amit neki ajánlani kell: az olyan zenéket, amiket még nem jelölt meg, de egy hozzá hasonló ízlésű felhasználónak tetszik. C) Az A) és B) részt egészítsd ki azzal, hogy térképezd fel azokat a felhasználó párokat, akik "egyszeresen áttételesen hasonló" ízlésűek: nincs olyan zene, amit mindketten megjelöltek volna nekik tetszőnek, de van olyan felhasználó, amelyik mindkettejükhöz hasonló, és így írd ki az ajánlásokat, jelezve, hogy melyik ajánlás származik áttételesen hasonló felhasználó alapján. A gyakjegy feltétele az érvényes géptermi ZH, az érvényes géptermi ZH feltétele az alapfeladat teljesítése. Az alapfeladat 10 pontot ér, ahogy a B és a C feladatok is. Grafika is 10, önpontozó is 10. Összesen 50 pont.