2004 variant A

  1. V 8-prvkovom celočíselnom poli A sa nachádzajú nejaké čísla. Je daná časť programu:
    1. Zistite, aká postupnosť čísel bude po skončení programu v poli A, ak pôvodná postupnosť bola:
         1, 2, 3, 4, 5, 6, 7, 8.
    2. Zistite, aká musela byť počiatočná postupnosť ôsmich čísel v poli A, ak po skončení programu sa v tomto poli nachádzajú čísla:
         1, 2, 3, 4, 5, 6, 7, 8.
  1. Nasledujúca časť programu podľa určitého algoritmu spracováva celočíselnú hodnotu n. Predpokladajme, že na našom počítači operácie násobenia a delenia desiatimi sú veľmi rýchle a trvajú tisícinu sekundy. Operácie pričítania a odčítania trvajú 4 tisíciny, zvyšné príkazy v programovacom jazyku trvajú nulový čas. Operácia i mod j označuje zvyšok po celočíselnom delení čísla i číslom j a i div j je celočíselné delenie - obe tieto operácie považujeme za operácie delenia.
    1. Spočítajte, ako dlho program bežal pre n=123.
    2. Zistite, pre akú najmenšiu hodnotu n program bežal 0,503 sekundy.
  1. V múzeu výpočtovej techniky sme objavili historickú celočíselnú kalkulačku, ktorá až na dve tlačidlá vôbec nefunguje. Jedno tlačidlo má označenie [*3] a po jeho zatlačení sa číslo na displeji vynásobí 3. Druhé tlačidlo [÷2] vydelí číslo na displeji dvoma - delenie je celočíselné, t.j. zvyšok po delení sa zanedbá. Na začiatku je na displeji číslo 5. Postupným stláčaním tlačidiel môžeme na displeji dosiahnuť rôzne výsledky.
    1. Ako dosiahneme na čo najmenší počet stlačení číslo 8?
    2. Na displeji je na začiatku číslo 5. Koľko rôznych výsledkov sa dá dosiahnuť na displeji, ak štyrikrát postupne stlačíme nejaké z tlačidiel [*3] a [÷2]? Do úvahy berieme len čísla, ktoré sa dosiahli po štvrtom stlačení tlačidla.
  1. Predpokladajme, že v programovacom jazyku je zadefinovaná procedúra vektor s dvoma reálnymi parametrami: uhol a dĺžka. Táto procedúra na obrazovke nakreslí úsečku zadanej dĺžky z momentálnej pozície grafického pera, ktorá zviera s y ovou osou zadaný uhol. Po nakreslení úsečky pero zostane v koncovom bode úsečky a kreslenie pokračuje ďalej od tohto bodu. Veľkosť uhla zadávame v stupňoch a meriame v smere otáčania hodinových ručičiek (smer nahor je uhol 0). Pero je na začiatku v strede obrazovky. Napr. príkazy vektor(30,60); vektor(120,60); vektor(210,60); vektor(300,60); nakreslia pootočený štvorec so stranou 60. Predpokladáme, že v programovacom jazyku už nie sú žiadne ďalšie grafické príkazy. Procedúru vektor neprogramujte.

    Napíšte program (v ľubovoľnom programovacom jazyku, ktorý ste používali na strednej škole), ktorý najprv prečíta vstupnú hodnotu N a potom nakreslí pravidelný N-uholník so stranou 50. Nad každou stranou N-uholníka zostrojí rovnostranný trojuholník otočený smerom von z N-uholníka (s N-uholníkom majú spoločnú stranu). Napr. pre N=3 by sa mal nakresliť rovnostranný trojuholník so stranou 100, v strede strán ktorého sú vrcholy vpísaného trojuholníka so stranou 50.

© AB