Autorské riešenie Samotné riešenie tejto úlohy je veľmi jednoduché. Aby sme ho však objavili, musíme trochu porozmýšľať. Pozrime sa najskôr na dvojicu čistiarní, čistiareň 1 a čistiareň 2. Aby bola táto časť systému priechodná, musia byť priechodné obidve čistiarne súčasne. Obsah premennej "c1 musí byť áno a zároveň aj obsah premennej :c2 musí byť tiež áno. Túto podmienku zapíšeme takto: zaroven :c1 :c2 Čistiarne 3 a 4 pracujú nezávisle. Aby bola táto časť systému priechodná, musí byť priechodná aspoň jedna z nich. Stačí teda, aby obsah aspoň jednej z premenných "c3 alebo "c4 bol áno. Túto podmienku zapíšeme takto: alebo :c3 :c4 Aby bol priechodný celý systém, musí byť priechodná aspoň jedna z týchto dvoch častí. Časť systému z čistiarní 1 a 2 alebo časť systému z čistiarní 3 a 4. Túto podmienku zapíšeme takto: alebo zaroven :c1 :c2 alebo :c3 :c4 Celý systém však funguje podľa toho, aká je hodnota premennej "volno. Výsledok vyššie uvedenej podmienky, ktorý je buď áno alebo nie, preto stačí uložiť do tejto premennej. Výsledná procedúra môže vyzerať aj takto: viem vyhodnot Na celý systém sa však môžeme pozrieť trochu inak. Ide v podstate o tri, navzájom nezávislé časti:
Aby bol celý systém priepustný, musí byť priepustná aspoň jedna z týchto troch častí. Výsledná procedúra preto môže vyzerať aj takto: viem vyhodnot Všimnime si ešte jednu zaujímavú vec. V našich podmienkach nemusíme porovnávať, či hodnota premennej je "áno alebo "nie takto: ak ("c1 = "áno) [...]. Vyhodnotením takéhoto výrazu je hodnota "áno, ak hodnota premennej "c1 je "áno. Ak je hodnota premennej "c1 "nie, výsledkom je tiež hodnota "nie. Výraz "c1 = "áno má teda rovnakú hodnotu ako premenná "c1. Vaše zaujímavé riešenia a najčastejšie chyby Úlohu riešilo 27 tímov, väčšina správne alebo správne ale nie veľmi efektívne.
|
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |