Hodnocení soutěžních úloh

Kategorie programování žáci a mládež

14. až 16. dubna  2016

Soutěž v programování – 30. ročník

Krajské kolo 2015/2016

Zobrazení rezistorů
Drahé slovo
Hrátky s čísly
Rozpoznávání číslic

Zobrazení rezistorů

Koeficient 1

Prokop dostal k Vánocům arduino se spoustou součástek a návodů na zapojení. Ihned se chtěl pustit do práce, ale všiml si, že zatímco v návodech jsou hodnoty rezistorů uváděny číselně. On má jen jakési válečky s barevnými proužky. Neváhal a na wikipedii si nalezl pravidla pro barevné značení a rozhodl, že si na to napíše program. Pomůžete mu?

Vaším úkolem je napsat program, který ze zadané číselné hodnoty rezistoru, která může obsahovat i jednotku k – kilo nebo M – mega (např. 7k1 = 7100), nakreslí rezistor s jeho barevným značením (viz obrázek) – odchylku ignorujte.


Zdroj: http://www.amapro.cz

Zadávání hodnot rezistorů se řídí těmito pravidly:

kde

Například:

pro 6 => 6 ohmů (d=6)
pro 68 => 68 ohmů (d=6, n=8)
pro 680 => 680 ohmů (d=6, n=8)
pro 6K => 6 kiloohmů (d=6)
pro 6K8 => 6,8 kiloohmů (d=6, n=8)
...

Rozšiřte program tak, aby uměl vykreslit seriové či paralelní zapojení podle zadaného výrazu včetně barevného zobrazení.

Pravidla zadání:

  1. Sériové zapojení dvou rezistorů R1 a R2 je vyjádřeno pomocí plus "+" : R1 + R2.
  2. Paralelní zapojení dvou rezistorů R1 a R2 je vyjádřeno pomocí lomítka "/" : R1 / R2.
  3. U paralelního zapojení jsou max. dva rezistory a v každé větvi po jednom rezistoru.

Příklady:

  1. seriové zapojení: 7K1+120
  2. paralelní zapojení: 120/1K2
  3. kombinované zapojení: 7K1 + 120 / 1K2

Hodnocení

Body Za co
0,5 Program lze spustit
0,5 Program zobrazí schématickou značku rezistoru
1 Program správně zobrazí barevné značení číselných hodnot (první dva barevné pruhy - nezávisle na násobiteli)
1 Program správně zobrazí barevné značení násobitele (třetí barevný pruh)
1 Program správně zobrazí jednoduché seriové zapojení (viz.Příklad 1)
2 Program správně zobrazí jednoduché paralélní zapojení (viz.Příklad 2)
1 Program správně zobrazí jednoduché kombinované zapojení (viz.Příklad 3)
2 Program optimalizuje složitější kombinované značení tak, aby všechny rezistory byly zobrazené -např. zmenší velikost rezistorů, popř. zobrazí v další vodorovné řadě.
1 Dokumentace

Drahé slovo

Koeficient 1

Strýček Skrblík si chce naplánovat výdaje za tisk. Pomůže mu, pokud zjistí, které slovo z textu obsahuje nejvíce různých znaků.

Napište program, který v zadaném textu nalezne slovo, které obsahuje nejvíce různých znaků a ukáže ho. Je možné, že takových slov je v textu více a nejsou stejná. V takovém případě zobrazte všechna taková slova v pořadí, v jakém jsou ve vstupním souboru.

Vstup pro programy bez grafiky (konzole) je textový soubor, jehož jméno je zadáno jako první parametr při spuštění. Na obrazovce (stdout) zobrazte nalezené slovo. Pokud je takových slov více, zobrazte každé takové slovo na samostatném řádku.
Vstup pro programy s grafickým rozhraním (GUI) je textový soubor, jehož jméno uživatel zvolí výběrem ze seznamu zvoleného adresáře. Nalezené slovo nebo slova se zobrazí samostatně v textovém okně. Pokud je takových slov více, zobrazte každé takové slovo na samostatném řádku.
Pokud váš program umožňuje obě varianty vstupu, je třeba to zveřejnit v dokumentaci i v grafickém rozhraní (GUI). Výstup bude stejného typu, jako je aktuální vstup.

V obou případech zobrazte postup prohledávání (animaci).

Slova jsou tvořena znaky s kódy 33 až 255. Znaky s kódy 1 až 32 slova oddělují. Kódování souborů je windows-1250, každý bajt je právě jeden znak.
Velikost písmen, háčky a čárky se rozlišují.
Například následující znaky jsou různé: E É Ě e é ě
Interpunkce je součástí slova. Například na následujícím řádku je jen jedno slovo, které má 12 různých znaků.
Slovo;slovodva"slovoIII/slovo4

V adresáři s testovacími daty naleznete tři soubory:

název souboru počet různých znaků počet nejdelších slov hledané/á slovo/a poznámka
Slovo1.txt 11 1 Předsednictvo
Slovo2.txt 14 1 prostřednictvím
Slovo3.txt 8 4 zvláštní
"Listina")
soudcům,
Republice
Soubor má 4 různá slova s nejvyšším počtem znaků. Každé slovo je na samostatném řádku.

Hodnocení

Body Za co
1 Program lze spustit a lze vybrat soubor (krátký text)
1 Program správně vyhodnotí porota1.txt 1 hledané slovo:
přezkoumávání
2 Program správně vyhodnotí porota2.txt 1 hledané slovo:
přezkoumávání
3 Program správně vyhodnotí porota3.txt 5 hledaných slov:
bezprostředně
bezpečnostních
přezkoumávání
shromáždění,
demokratických
1 Program zobrazuje animaci vyhledávání
1 Program umožňuje obě metody vstupu a je to uvedeno v dokumentaci i GUI
1 Dokumentace

Hrátky s čísly

Koeficient 1

K maximálně 8místnému přirozenému číslu X nalezněte nejmenší číslo Y, které je větší než číslo X a je současně součinem právě tří různých prvočísel.

Například pro číslo 30 to je číslo 42 (= 2×3×7).

V adresáři hratky-s-cisly máte k dispozici tabulku potřebných prvočísel. Hledání jedné trojice prvočísel nesmí překročit dobu deseti sekund.

Hodnocení

Body se přidělí pouze pokud program výsledek oznámí do deseti sekund.

Body Za co
1 99999999 100000006 = 2 * 491 * 101833
1 42142 42143 = 17 * 37 * 67
1 83788396 83788397 = 7 * 11 * 1088161
1 99938130 99938131 = 379 * 457 * 577
1 99938127 99938131 = 379 * 457 * 577
1 99938126 99938127 = 3 * 233 * 142973
1 99938124 99938127 = 3 * 233 * 142973
1 99938123 99938127 = 3 * 233 * 142973
1 99938121 99938127 = 3 * 233 * 142973
1 dokumentace, komentáře, přehlednost, výstižné názvy proměnných,funkčnost: třetí prvočíslo se nehledá hrubou silou, ale přibližně určí například jako X/(a*b) a v několika krocích dohledá - 0.5 bodu

Rozpoznávání číslic

Koeficient 3

Zisky strýčka Skrblíka stouply do takových výšek, že Skrblík ani nestačí sčítat a zapisovat vydělané peníze do svého notesu. Pomozte mu vytvořením programu, který bude rozpoznávat ručně psané číslice, takže se zisky budou sčítat automaticky.

Vaším cílem je poznat, jaká číslice 0 až 9 je na daném obrázku ve stupni šedi. Velikost obrázku je vždy 28×28.

Abyste měli z čeho vycházet, pro každou číslici dostanete 100 ukázkových psaní této číslice.

Vstup

Na vstupu dostanete dva soubory, vzory.bmp a cislice.bmp. Soubor cislice.bmp obsahuje obrázek ve stupních šedi o velikosti 28×28, který obsahuje jednu neznámou ručně psanou číslici 0 až 9. Soubor vzory.bmp je také ve stupních šedi a obsahuje 100 variant každé ručně psané číslice 0 až 9, a to následujícím způsobem: v souboru je nejprve vedle sebe uloženo 100 variant číslice 0, pod nimi 100 variant číslice 1, a tak dále, až na spodku obrázku je uloženo 100 variant číslice 9. Velikost obrázku vzory.bmp je tedy 2800×280.

Výstup

Na výstup vypište, jaká ručně psaná číslice 0 až 9 se nachází na vstupním obrázku cislice.bmp

Formát BMP

Pokud nemáte k dispozici knihovnu načítající obrázky ve formátu BMP, můžete se spolehnout na to, že obrázky BMP v této úloze jsou vždy uloženy následovně. Prvních 1146 bajtů je hlavička a po ní následují jednotlivé pixely obrázku, každý pixel je reprezentován jako jeden bajt, přičemž hodnota 0 reprezentuje zcela černou a hodnota 255 zcela bílou. Pixely jsou uloženy po řádcích od spodníhohornímu, takže první pixel za hlavičkou je levý spodní bod obrázku a poslední pixel v souboru je pravý horní bod obrázku.

Příklad

Pro následující vstup:

vzory.bmp cislice.bmp

by měl váš program vypsat 3.

Hodnocení

Program soutěžících se vyhodnotí na desíti vstupních souborech cislice0.bmpcislice9.bmp, za každý dostane soutěžící 0 bodů nebo 0.9 bodu.

Při vyhodnocování souboru cisliceN.bmp zkopírujeme tento soubor do adresáře s programem soutěžícího a přejmenujeme ho na cislice.bmp. Do tohoto adresáře také zkopírujeme soubor vzory.bmp a program soutěžícího spustíme (pokud to program vyžaduje, vybereme soubory vzory.bmp a cislice.bmp). Program musí skončit do deseti vteřin. Pokud program v limitu vypsal, že neznámá číslice je N, dostane 0.9 bodu, jinak dostane 0 bodů.

Body Za co
0.9 Program vrátí hodnotu 0 pro soubor cislice0.bmp
0.9 Program vrátí hodnotu 1 pro soubor cislice1.bmp
0.9 Program vrátí hodnotu 2 pro soubor cislice2.bmp
0.9 Program vrátí hodnotu 3 pro soubor cislice3.bmp
0.9 Program vrátí hodnotu 4 pro soubor cislice4.bmp
0.9 Program vrátí hodnotu 5 pro soubor cislice5.bmp
0.9 Program vrátí hodnotu 6 pro soubor cislice6.bmp
0.9 Program vrátí hodnotu 7 pro soubor cislice7.bmp
0.9 Program vrátí hodnotu 8 pro soubor cislice8.bmp
0.9 Program vrátí hodnotu 9 pro soubor cislice9.bmp
1 dokumentace, komentáře, přehlednost, výstižné názvy proměnných, …