2001 variant A

  1. Daná je časť programu:
    1. Zistite, čo vypíše tento program.
    2. Na záver sme pridali tieto tri riadky:
    3. Zistite, aké dve hodnoty sa vypíšu teraz. (Operácia mod znamená zvyšok po celočíselnom delení a div znamená celočíselné delenie.)

    Poznámka: Pomôže Vám, keď budete všetky výpočty robiť v 3-ovej sústave.

  1. Máme rad N žiaroviek - každá z nich je buď zhasnutá (je v stave 0) alebo svieti (je v stave 1) alebo bliká (je v stave 2). Okrem týchto žiaroviek máme jedno tlačidlo, ktoré je naprogramované tak, že vždy, keď ho stlačíme, postupne prejde všetky dvojice susediacich žiaroviek (najprv 1. a 2., potom 2. a 3. ... a na záver (N-1)-vú a N-tú). Ak je prvá z dvojice zhasnutá a druhá svieti (dvojica je v stave 01), tak ich obe prepne do nového stavu 2 - obidve budú blikať (t.j. stav 22). Ak prvá z dvojice bliká a druhá nie (dvojica je v stave 20 alebo 21), tak vymení ich stavy (t.j. buď stav 02 alebo 12). Toto postupne urobí so všetkými dvojicami. Zrejme po každom stlačení tlačidla sa môžu niektoré žiarovky rozblikať, iné zhasnúť alebo rozsvietiť. V niektorých situáciách stlačenie tlačidla už nič nemení (hovoríme tomu stabilný stav).
    1. Pre N=20 zistite, koľko existuje rôznych stabilných stavov, v ktorých žiadne žiarovky neblikajú.
    2. Pre N=8 zistite, koľko existuje rôznych stavov, keď žiarovky neblikajú a z ktorých po niekoľkých stlačeniach tlačidla sa stane stabilný stav zo samých blikajúcich žiaroviek (t.j. 22222222).
    3. Navrhnite taký stav desiatich neblikajúcich žiaroviek, aby sa stabilný stav zo samých blikajúcich žiaroviek dosiahol na maximálny možný počet stlačení tlačidla. Koľko stlačení bude treba? (Ak takých riešení existuje viac, stačí, ak uvediete jedno.)
  1. Mravec Ferdo sa pohybuje na štvorčekovom papieri a my ho pozorujeme. Všetky jeho pohyby si zapisujeme takto: keď sa presunie na susedný štvorček v tom smere, v ktorom je práve otočený, zapíšeme písmeno D (dopredu), keď sa otočí vľavo o 90 stupňov, zapíšeme L a pri otočení vpravo o 90 stupňov zapíšeme písmeno P. Napr. zápis DDPDPDDPD znamená, že mravec navštívil 6 rôznych políčok, pričom sa vrátil na pôvodné miesto. Opakujúce sa časti v zápise môžeme skrátiť, napr. 4(100DL) znamená, že 4-krát sa opakuje 100 krokov dopredu a jedno otočenie vľavo (jeho trasa je štvorec so stranou 100 štvorčekov).
    1. Koľko políčok navštívil, ak prešiel 1DP1DL 2DP2DL 3DP3DL ... 9DP9DL? (tromi bodkami vyjadrujeme, že ďalej sa stále opakuje ten istý zápis xDPxDL, ale stále s väčšími a väčšími číslami). Počítame aj štartové políčko.
    2. Predchádzajúci zápis by sme mohli skrátene zapísať: 9(xDPxDL), v ktorom písmeno x vyjadruje číslo - poradové číslo opakovania (prechodu) cyklom. Zistite, koľko rôznych políčok mravec navštívil, ak prešiel trasu 10(xDPxDPxDPxDL).
  1. Predpokladajme, že v programovacom jazyku máme definovanú procedúru bod s troma celočíselnými parametrami x, y a farba, ktorá nakreslí do grafickej plochy obrazovky na zadané súradnice farebný bod. Ľavý horný roh obrazovky má súradnice (0,0). V programovacom jazyku už nemáme ďalšie procedúry na kreslenie do grafickej plochy.
    Napíšte program, ktorý nakreslí šachovnicu NxN červených (farba=1) a modrých (farba=2) políčok, pričom každé políčko je veľké 10x10 bodiek, ľavý horný roh je červený.
    Hodnota N je konštanta programu, napr. N=8. Úlohu riešte všeobecne pre ľubovoľné N.
    Môžete použiť ľubovoľný programovací jazyk, ktorý ste používali na strednej škole.

© AB