Ak máte akékoľvek otázky ohľadom tejto úlohy, napíšte Adamovi na
25.6. 2018, 21:37 - “Samo, mal by si už ísť spať. Zajtra ideme na návštevu!”
26.6. 2018, 15:53 - “No Samko, tak mi povedz, aký je rozdiel medzi strýkom a ujom?”
26.6. 2018, 15:54 - Ozýva sa zlovestné zavŕzganie a prudký poryv prievanu: časť druhá triešti porcelán na márne kúsky.
Samo úspešne zvláda návštevu a všetky oslovenia s ňou spojené. Na oslave sa však ocitla jeho najzlomyseľnejšia teta a začala sa ho pred celou rodinou vypytovať zlomyseľné otázky. Samko je v úzkych. Na tetinej tvári sa črtá škodoradostný úsmev, na Samovej tvári sa črtajú kropaje potu, keď tu zrazu na druhej strane domu jeho mama otvára okno a tetina zbierka starožitného porcelánu sa triešti o zem.
Samko sa tvári otrasene, no v skutočnosti rozmýšľa nad svojimi možnosťami. V tom začuje točenie diskety – to musí byť nejaký počítač! Otvára dvere, sadá za počítač a púšťa SWIPL.
Úloha
Samo má zoznam rodinných vzťahy v podobe rodič(Rodic,Dieta)
. Každý takýto záznam znamená, že človek Rodic
je rodičom človeka Dieta
. Okrem toho o každom človeku vie aj to, či je muž (zapísané muž(Meno)
) alebo žena (žena(Meno)
). Všetky tieto záznamy tvoria dva nezávislé rodokmene.
Oba rodokmene sú navyše korektné, teda môžete predpokladať, že každý človek má najviac dvoch rodičov a rodokmene neobsahujú žiadne cykly. Šťastnou zhodou okolností majú všetci ľudia v Samových záznamoch iné krstné mená. Nemôže sa teda napríklad stať, že by v rodokmeňoch boli dvaja rôzni Petrovia.
Skôr ako Samkova teta prestane plakať nad rozbitým porcelánom a zameria sa opäť na neho, potrebuje zistiť odpovede na nesledujúce otázky:
(1 bod) Ako sa volá jeho zlomyseľná teta?
(2 body) Koľko dvojíc otec-syn poznáme?
(3 body) Existuje v rodokmeni niekto taký, kto nemá uja, ale má strýka? Strýko je otcov brat, ujo matkin.
(4 body) Kto sú predkovia Jána?
(5 body) V rodokmeni sú 2 oddelené rodiny. Koľko majú každá členov?
Ako riešiť túto úlohu
Ak ste riešili časť prvú, pravdepodobne ste už toto čítali.
Samko všetky záznamy o svojej rodine vložil do interaktívneho prostredia SWISH
, kde ich môžete nájsť aj vy. Toto prostredie je dostupné online na tejto adrese: https://swish.swi-prolog.org/p/prudkyporyvprievanu.pl
Okrem toho, že v tomto prostredí sú uložené Samuelove záznamy, v tomto prostredí viete písať a spúšťať programy v jazyku Prolog
. Je to jednoduchý jazyk na spracovávanie logických výrokov, pomocou ktorého viete zistiť odpovede na uvedené otázky. Krátky tutoriál k tomuto jazyku obsahujúci všetko čo potrebujete vedieť k riešeniu úlohy nájdete tu: https://král.com/prolog
Odovzdávanie
K tejto úlohe odovzdávate popis vašeho riešenia. Okrem samotnej odpovede na otázku uveďte aj Prolog programy (takzvané dotazy), ktoré ste použili pri riešení, a popis toho, prečo ste tieto programy použili a odôvodnite správnosť vašeho postupu.
Za riešenie obsahujúce iba správne odpovede získate najviac polovicu bodov.
Odovzdávanie
Na odovzdávanie sa musíš prihlásiť
Otázky a diskusia
Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.