2003 variant C

  1. Daný program po načítaní dvoch čísel A a B vypíše hodnotu P:
    1. Zistite, čo sa vypíše, ak zadáme A=15 a B=35.
    2. Zistite, čo sa vypíše, ak zadáme A=1 a B=101.
    3. Predpokladajme, že B=1000. Zistite, aké musíme zadať najväčšie A, aby sa vypísalo číslo 26.

    Pozn.

  1. V danom dvojrozmernom poli A celých čísel (N-riadkov po M-stĺpcov) uchovávame priebežné bodovanie N súťažiacich v M rôznych súťažiach. A[i,j] označuje získané body i-teho súťažiaceho v j-tej súťaži - ak ešte túto súťaž tento súťažiaci neabsolvoval, tak je tu hodnota 0.
    Zrejme niektorí súťažiaci budú ešte získavať body v súťažiach a môžu tým ešte zmeniť poradie. Môžeme predpokladať, že súťažiaci by teoreticky mohol získať toľko bodov, koľko už získal v tejto súťaži aj niekto iný.
    Daná časť programu zisťuje, ktorý hráč má najväčšiu šancu vyhrať, ak predpokladáme, že z tých súťaží, v ktorých sa ešte nezúčastnil (má 0 bodov), môže teoreticky získať toľko, ako momentálne najúspešnejší súťažiaci v tejto súťaži.
    V programe však niekto vynechal niektoré aritmetické a logické výrazy. Opravte program!
  1. Máme danú množinu znakových reťazcov, ktoré sú zložené z písmen A a B a všetky sú ukončené nejakou cifrou 1, 2 alebo 3. Takýmto reťazcom budeme hovoriť slová. Slová v tejto množine vznikli podľa špeciálnych pravidiel:
    1. x = Ay | Bz | 1
      y = Az | Bx | 2
      z = Ay | Bx | 3

    Aby sme vytvorili nejaké nové slovo do tejto množiny, vždy zoberieme štartové písmeno x, nájdeme zodpovedajúce pravidlo (prvý riadok pravidiel) a vyberieme nejakú z možností (možnosti sú oddelené znakom "|" ) – písmeno x nahradíme touto možnosťou. Ak výsledok obsahuje jedno z písmen x, y alebo z, pokračujeme v nahrádzaní podľa príslušného pravidla. Celý proces vytvárania nového slova zrejme končí, keď písmeno nahradíme cifrou. Postup nahrádzania budeme značiť šípkou, napr. takto
    x => Ay => ABx => ABBz => ABB3 ... t.j. vznikla postupnosť písmen A a B a vždy končí nejakou cifrou od 1 do 3.

    1. Zistite, akou cifrou končia slová AABAABABBABBABBABB a ABBBBAABBBAAABBAAAAB.
    2. Zistite, koľko existuje rôznych slov dĺžky 6, ktoré sú zložené z 5 znakov A a B a končia znakom 2.
  1. Deti v škole robili na fyzikálnych laboratóriách nejaké experimenty a svoje merania zapisovali do tabuľky. Jeden žiak dostal na záver za úlohu, všetky tieto merania zapísať do počítača. Keďže asi nepochopil, ako si to učiteľ predstavoval, všetky merania zapísal za seba do jednorozmerného poľa merania, pričom pred merania každého jedného spolužiaka vložil číslo vyjadrujúce počet jeho meraní. Takže pole s meraniami mohlo vyzerať napr. takto:
      3 15 12 14 2 13 13 4 10 10 15 10
    a môžeme z toho vidieť, že sú tu merania troch žiakov, pričom prvý mal tri merania, druhý dve a najviac meraní (štyri) mal tretí.
    Napíšte program, ktorý pre dané N-prvkové pole merania vypíše:
    1. koľko žiakov robilo merania;
    2. ktorý žiak mal najviac meraní; ak bolo viac takých, ktorí mali rovnaký počet najviac meraní, tak potrebujeme poznať toho, ktorému vyšiel najväčší súčet všetkých jeho meraní (program vypíše poradové číslo takéhoto žiaka).

    Môžete použiť ľubovoľný programovací jazyk, ktorý ste používali na strednej škole. Predpokladajte, že N-prvkové celočíselné pole merania je už na začiatku programu zaplnené hodnotami a je zadané korektne.

© AB