Oblastní kolo soutěže v programování (1999)
Kategorie vyšší programovací jazyky - mládež
Pátky třináctého
Vaším úkolem je vytvořit program, který vypíše na obrazovku všechny pátky třináctého od 1. 1. 1990 do 31. 12. 2020 -- poradíme vám, že 1. 1. 1990 bylo pondělí. V programu nesmíte používat systémové funkce pro práci s datem.
Počítání slov
Napište program, který slouží k počítání slov v zadaném textovém souboru. Slovo je to, co se skládá z písmen anglické abecedy, číslic a podtržítka. Všechny ostatní znaky (i nová řádka) jsou chápány jako oddělovače. Mezi slovy může být libovolný počet oddělovačů. Uživatel si může vybrat mezi jedním z následujících způsobů výstupu:
- Program spočítá počet slov v souboru, počet znaků v souboru a počet řádek (i prázdný řádek je řádek). Na konci přehledně vypište všechny tři získané hodnoty.
- Program spočítá pro každé slovo četnost jeho výskytu v souboru a na konci vypíše abecedně setříděný seznam slov a počtu jejich výskytů.
- Program uživateli umožní vybrat, zda se má seznam slov při výpisu b) řadit podle abecedy nebo podle počtu výskytů jednotlivých slov.
Interpret grafického jazyka
Napište program, který bude provádět jednoduché grafické příkazy. Na vstupu bude textový soubor, který obsahuje seznam příkazů a jejich parametrů. Na každém řádku bude pouze jeden příkaz. Souřadnicový systém grafického jazyka je následující: rozsah obou os od 0 do 1, napřed se zadává souřadnice x (vzdálenost od levého okraje), pak souřadnice y (vzdálenost od dolního okraje). Využijte celou plochu obrazovky, pouze v dolní části si nechte místo na jeden řádek textu -- stavovou řádku.
Možné příkazy jsou:
LINE
X1 Y1 X2 Y2- vykreslí čáru z bodu [X1,Y1] do [X2,Y2]
POINT
X Y- vykreslí bod na souřadnicích [X,Y]
BOX
X1 Y1 X2 Y2- vykreslí prázdný rámeček z bodu [X1,Y1] do [X2,Y2]
FILLBOX
X1 Y1 X2 Y2- vykreslí vyplněný rámeček z bodu [X1,Y1] do [X2,Y2]
COLOR
C- nastaví barvu kreslení; čísla barev jsou shodná s barvami používanými v grafické knihovně BGI v Pascalu či C/C++
PAUSE
- počká na stisk klávesy; o tom, že čeká informuje uživatele výpisem ve stavové řádce
CLEAR
- smaže obrazovku (celou ji překreslí černě)
Příkazy je možné psát malými i velkými písmeny.
Příkazy a parametry jsou od sebe odděleny libovolným
počtem mezer. Vše se kreslí (i vyplňuje) právě
nastavenou barvou (určenou příkazem COLOR
).
Po startu programu je nastavena bílá barva. V případě
chyby vypište do stavové řádky informace o chybě
(číslo řádky a chybný příkaz), počkejte na stisk
klávesy a ukončete běh programu. V grafickém
programu se mohou vyskytovat prázdné řádky a komentářové
řádky (začínají znakem '%
' nebo ';
'),
které se ignorují. Umožněte zadání názvu vstupního
souboru jako parametru příkazové řádky.
Ukázkový program:
% Toto je ukázkový program % úhlopříčka LINE 0 0 1 1 % nakreslíme zelené obdélníky COLOR 2 FILLBOX 0 1 0.5 0.5 FILLBOX 0.5 0.5 1 0 PAUSE % obdélníky orámujeme žlutě COLOR 14 BOX 0 1 0.5 0.5 BOX 0.5 0.5 1 0 PAUSE
Tento program nakreslí bíle úhlopříčku, pak vykreslí dva zelené obdélníky přes čtvrtinu plochy obrazovky (vlevo nahoře a vpravo dole), počká na stisk klávesy, obdélníky orámuje žlutě, počká znovu na stisk klávesy a skončí.
Násobení velkých čísel
Napište program, který přesně vynásobí maximálně stociferná čísla.
Kategorie vyšší programovací jazyky - starší žáci
Pátky třináctého
Vaším úkolem je vytvořit program, který vypíše na obrazovku všechny pátky třináctého od 1. 1. 1990 do 31. 12. 2020 -- poradíme vám, že 1. 1. 1990 bylo pondělí. V programu nesmíte používat systémové funkce pro práci s datem.
Počítání slov
Napište program, který slouží k počítání slov v zadaném textovém souboru. Slovo je to, co se skládá z písmen anglické abecedy, číslic a podtržítka. Všechny ostatní znaky (i nová řádka) jsou chápány jako oddělovače. Mezi slovy může být libovolný počet oddělovačů. Program spočítá počet slov v souboru, počet znaků v souboru a počet řádek (i prázdný řádek je řádek). Na konci přehledně vypište všechny tři získané hodnoty.
Interpret grafického jazyka
Napište program, který bude provádět jednoduché grafické příkazy. Na vstupu bude textový soubor, který obsahuje seznam příkazů a jejich parametrů. Na každém řádku bude pouze jeden příkaz. Souřadnicový systém grafického jazyka je následující: rozsah obou os od 0 do 1, napřed se zadává souřadnice x (vzdálenost od levého okraje), pak souřadnice y (vzdálenost od dolního okraje). Využijte celou plochu obrazovky, pouze v dolní části si nechte místo na jeden řádek textu -- stavovou řádku.
Možné příkazy jsou:
LINE
X1 Y1 X2 Y2- vykreslí čáru z bodu [X1,Y1] do [X2,Y2]
POINT
X Y- vykreslí bod na souřadnicích [X,Y]
BOX
X1 Y1 X2 Y2- vykreslí prázdný rámeček z bodu [X1,Y1] do [X2,Y2]
FILLBOX
X1 Y1 X2 Y2- vykreslí vyplněný rámeček z bodu [X1,Y1] do [X2,Y2]
COLOR
C- nastaví barvu kreslení; čísla barev jsou shodná s barvami používanými v grafické knihovně BGI v Pascalu či C/C++
PAUSE
- počká na stisk klávesy; o tom, že čeká informuje uživatele výpisem ve stavové řádce
CLEAR
- smaže obrazovku (celou ji překreslí černě)
Příkazy je možné psát malými i velkými písmeny.
Příkazy a parametry jsou od sebe odděleny libovolným
počtem mezer. Vše se kreslí (i vyplňuje) právě
nastavenou barvou (určenou příkazem COLOR
).
Po startu programu je nastavena bílá barva. V případě
chyby vypište do stavové řádky informace o chybě
(číslo řádky a chybný příkaz), počkejte na stisk
klávesy a ukončete běh programu. V grafickém
programu se mohou vyskytovat prázdné řádky a komentářové
řádky (začínají znakem '%
' nebo ';
'),
které se ignorují. Umožněte zadání názvu vstupního
souboru jako parametr příkazové řádky.
Ukázkový program:
% Toto je ukázkový program % úhlopříčka LINE 0 0 1 1 % nakreslíme zelené obdélníky COLOR 2 FILLBOX 0 1 0.5 0.5 FILLBOX 0.5 0.5 1 0 PAUSE % obdélníky orámujeme žlutě COLOR 14 BOX 0 1 0.5 0.5 BOX 0.5 0.5 1 0 PAUSE
Tento program nakreslí bíle úhlopříčku, pak vykreslí dva zelené obdélníky přes čtvrtinu plochy obrazovky (vlevo nahoře a vpravo dole), počká na stisk klávesy, obdélníky orámuje žlutě, počká znovu na stisk klávesy a skončí.
Odpočítávání
Napište program, který průběžně zobrazuje kolik dní, hodin, minut a sekund zbývá do začátku roku 2000.
Kategorie vizuální nástroje
Dáma
Vytvořte program pro hraní stolní deskové hry Dáma, která se hraje podle následujících pravidel.
Hraje se na klasické šachovnici (8 x 8 polí). Kameny se pohybují pouze po černých polích a pouze ve směru od hráče (to neplatí pro dámu). Má-li hráč možnost vzít soupeři kámen, musí tak učinit (platí i pro vícenásobné braní) a to i dámou. Vyhrává hráč, který soupeři vzal všechny hrací kameny.
Vaším úkolem je zobrazit hrací pole (šachovnici) a hrací kameny. Program umožní hrát dámu dvěma hráčům. Výběr kamene a tah může hráč provést myší nebo klávesnicí. Program umožní odebrání kamenů po skoku a vytvoření dámy při dosažení protějšího konce šachovnice hracím kamenem.
Doplňte program tak, aby bylo možné zapnout kontrolu správnosti tahu kamenem.
Po splnění předchozího úkolu doplňte program tak, aby uměl simulovat jednoho hráče.