2004 variant B

  1. V n-prvkovom celočíselnom poli a sa nachádzajú navzájom rôzne čísla z množiny {1,2,...,n}. Je daná časť programu:
    1. Zistite, čo vypíše tento program, ak sa v poli pre n=8 nachádzajú čísla:
         5, 3, 6, 8, 7, 2, 1, 4
    2. Navrhnite také rôzne hodnoty do poľa a (pre čo najmenšie n), aby program vypísal číslo 9.
  1. Nasledujúca časť programu podľa určitého algoritmu spracováva celočíselnú hodnotu n. Všimnite si, že používa príkazy dec a inc, ktoré znížia, resp. zvýšia hodnotu premennej o 1. Predpokladajme, že tieto príkazy v počítači trvajú jednu stotinu sekundy. Priraďovacie príkazy trvajú dve stotiny sekundy. Ďalej predpokladáme, že zvyšné príkazy v programovacom jazyku trvajú nulový čas.
    1. Spočítajte, ako dlho program bežal pre n=123.
    2. Zistite, pre aké najmenšie n bude program bežať viac ako sekundu.
  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 [*2-1] a po jeho zatlačení sa číslo na displeji vynásobí 2 a odčíta 1. Druhé tlačidlo [*3-1] vynásobí číslo na displeji troma a odčíta 1. Na začiatku je na displeji číslo 2. Postupným stláčaním tlačidiel môžeme na displeji dosiahnuť rôzne výsledky. Zistite, ktoré z čísel od 2 do 100 sa dajú dosiahnuť aspoň dvoma rôznymi postupnosťami zatláčania tlačidiel.
    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í N postupne sa zväčšujúcich rovnostranných trojuholníkov so stranami 30, 40, 50, ... Tieto trojuholníky sú nakreslené pod sebou, pričom vrchol nižšieho sa dotýka stredu strany vyššieho trojuholníka – najmenší trojuholník je navrchu. Obrázok nakreslite jedným ťahom tak, aby pero neprešlo viackrát po tej istej čiare.

© AB