Soutěž v programování
Ve školním roce 2011/2012
Listopad 2011
Ukázalo se, že obtížnost zadaných úloh je příliš velká: pouze dva lidi měli odvahu odevzdat.
S ohledem na výsledek bylo na další měsíc vybráno všestrannější téma: vytvoření prezenční listiny závodníků, kterou je možné vytvořit i v tabulkovém editoru. Doufám, že účast tentokrát bude o poznání vyšší.
Říjen 2011
Soutěže se zúčastnili pouze 3 soutěžící, z toho pouze jedna práce prošla sítem testovacích dat (zadání záporného čísla, prázdného čísla, nuly a bodů v přímce), se zobrazováním a počítáním obsahu si ale poradili všichni. Gratuluji.
Zadání na příští měsíc bude na počítání polynomů vysokého stupně. Uvidíme, kolik soutěžících uspěje tentokrát
Soutěžní úloha
Září 2011
29. září bylo zveřejněno první kolo školní soutěže. Řeší se počítání obsahu obecného mnohoúhelníku.
Letošní soutěž programování pokračuje osvědčenou korespondenční formou, ovšem rozděleno na dvě části:
školní soutěž programování: bude zaměřena na teoretické problémy, k jejichž vyřešení bude zapotřebí především invence. Zadání bude pravidelně zveřejňováno na www.sps-pi.cz/soutez, kde je možné přihlásit se přes váš facebookový účet nebo přes Google Open ID. Registrovaní uživatelé budou informováni o probíhajících událostech e-mailem. Řešení se odevzdává zabalené ve formátu zip. Je možné použít libovolný programovací jazyk umožňující spustit program bez nutnosti instalace dodatečného software (C/C++, C#, Java, Javascript, PHP pouze s FTP přístupy na server). Zdrojový kód je vyžadován vždy, u kompilovaných jazyků je pak nutný také spustitelný kód (exe).
komerční soutěž programování: bude realizována ve spolupráci se serverem AAA poptávka. Soutěžící budou sbírat body realizací zakázek, přičemž platí 1 vydělaná Kč = 1 bod (peníze zůstávají soutěžícím až na 10% placených do společného fondu, z něhož budou hrazeny poplatky za kontakty na poptávající a další aktivity).
Ve školním roce 2010/2011
Celkově byl za soutěže v programování „Stejné zadání – různá řešení“
Květen 2011 Páté květnové korespondenční kolo soutěže řešilo možnosti hexadecimálního formátu zápisu barvy, přičemž nebylo možno využít již začleněné funkce programovacího jazyka.
Duben 2011 Ve čtvrtém dubnovém kole soutěže v PRG byly zadány body znázorňující rozmístění sloupků na pozemku. Úkolem soutěžících bylo vytvořit aplikaci pro co největší plochu traviny ohraničenou sloupky. Výstupem byl setříděný seznam po sobě jdoucích souřadnic sloupků a uvedením počtu sloupků, které aplikace využila.
Dne 16.4.2011 proběhla v Českých Budějovicích Krajská soutěž v programování. Za naši školu se zúčastnili dva zástupci – pravidelní řešitelé školních kol soutěží v programování. Byli přihlášeni do kategorie mládež - vyšší programovací jazyky a nezklamali.
Březen 2011 Úkolem třetího březnového kola soutěže v programování bylo naprogramovat aplikaci v libovolném programovacím jazyce, která pracuje se vstupním textovým souborem a nalezne nejmenší možný kruh, který obsahuje všechny souřadnicově zadané body.
Soutěž v programování je realizována v rámci modernizace výuky na SPŠ a VOŠ Písek, spolufinancovaná Evropským sociálním fondem a rozpočtem České republiky.
Korespondenční část soutěže v programování
Květnové soutěžní kolo můžete řešit od úterý 3. 5. až do čtvrtka 26. 5. - http://soutezprg.howto.cz
- Počátkem lednového kola dochází ke změně v průběhu soutěže v programování. Všechny soutěžní úlohy se nyní budou řešit korespondenční formou přes školní server. Věříme, že řešení v klidném domácím prostředí přinese nové nápady a další účastníky naší soutěže :-)!
Průběžné výsledky korespondenční části soutěže
Aktuální hodnocení naleznete na stránkách školy.
Hodnocení jednotlivých úloh také naleznete u zadání na korespondenčním webu!
Zadání soutěžních úloh prezenční části soutěže
Vlastní zadání třetí soutěžní úlohy:
Vaším úkolem je naprogramovat aplikaci v libovolném programovacím jazyce, která dle zadaných rozměrů dárků vyčíslí obsah potřebného balícího papíru. Vaše řešení musí vycházet z následujících požadavků:
- Uživatel může ve smyčce vkládat dárky do té doby, než sám určí, že již vložil všechny. (Není třeba typové ošetření, hodnoty budou voleny tak, aby výsledný obsah nepřesáhl 32-bitového integeru.)
- Dárky mohou být tvaru krychle nebo kvádru. Celočíselné rozměry bude možno vkládat v cm nebo dm, a to u každého dárku dle uživatelovy volby.
- Jelikož při balení se spotřebuje více papíru (například na ohyby) – k potřebnému obsahu papíru na zabalení dárků ve tvaru krychle připočtěte 5% papíru, pro tvar kvádru poté 10% balícího papíru.
- V papírnictví jsou k dispozici role balícího papíru o obsahu 100 dm2, 75 dm2, 50 dm2 a 25 dm2.
- Výstup Vaší aplikace zobrazí obsah potřebného balícího papíru na zabalení všech dárků a počet jednotlivých rolí, které v papírnictví bude potřeba nakoupit.
Vlastní zadání druhé soutěžní úlohy:
Vaším úkolem je naprogramovat aplikaci v libovolném programovacím jazyce, která dle zadaného celočíselného vstupu uživatele (v rozsahu hodnot: 3 – 20) vygeneruje určený počet náhodných čísel z intervalu <0; 99>, která dále seřadí pomocí Vámi navrhnutého třídícího algoritmu. Třídění bude vycházet z metody postupného porovnávání sousedních
hodnot (tzv. ‚Bubble Sort‘).
- Ukázky z řešení soutěžících:
Vlastní zadání první soutěžní úlohy:
Vaším úkolem je naprogramovat aplikaci v libovolném programovacím jazyce, která bude šifrovat čitelný text zadaný uživatelem do Morseovy abecedy. Překládat bude text i číslice, slova a věty budou odděleny speciálními znaky. Program navíc vypíše počet slov a vět, které zašifroval.
- Ukázky z řešení soutěžících:
Přihlaste se!
- I v letošním školním roce navazujeme na zavedenou soutěž v programování. Letošní ročník bude probíhat ve formě schůzek v odborných učebnách VYT, kde budete mít prostor na řešení zadaných úloh a problémů. Své práce můžete realizovat v jazycích: C, C++, C# a Pascal. Zaměříme se na Vaši kreativitu a přístupnost programu pro uživatele. Výsledné práce bude možné odevzdát ve formě konzolové (CLI) i grafické 'okenní' aplikace (GUI). Na vítěze čekají poutavé odměny!
- Na Vaše přihlášky se těšíme na e-mailové adrese: soutezprg@ithvezda.cz, a to do konce září! Bližší informace můžete získat na uvedeném e-mailu a informačních letácích v prostorách školy. Nezapomeňte sledovat tuto stránku, kde se průběžně budou vyskytovat zprávy z dění soutěže.
Ve školním roce 2009/2010
Vyhodnocení soutěže
Příjmení a jméno | 1. kolo (max 10 b.) | 2. kolo (max 10 b.) | 3. kolo (max 10 b.) | 4. kolo (max 10 b.) | 5. kolo (max 10 b.) | Celkem bodů |
David | 10 | 10 | 10 | 10 | 10 | 50 |
Tomáš | 10 | 9 | 10 | 10 | 10 | 49 |
Jakub | 8 | 10 | 8 | 9 | 0 | 35 |
Znění zadávané úlohy v prvním kole, pro Vás všechny kteří jste propásli první kolo a chtěli by jste si to zkusit.
Vytvořte program (v C/C++, C#, VB, PHP, apod), který bude umět vypočítat kořeny
zadané libovolné lineární rovnice.
A to ve tvaru:
- ax + b = c
nebo
- ax – b = c
- Například:
Vstup bude:
- 3x + 1 = 7
Výstup bude:
- x = 2
Znění zadávané úlohy ve druhém kole, pro Vás všechny kteří jste propásli druhé kolo a chtěli by jste si to zkusit. Vlastní zadání: Vytvořte program (v C/C++, C#, VB, PHP, apod), který bude umět vypočítat počet bankovek a mincí pro potřebu mzdové účetní. Tak, aby věděla po zadání výše výplat, kolik bankovek v jakých hodnotách má vyzvednout v bance, proto aby měla pro každého zaměstance přesnou částku. Zadávané výplaty budou pouze v celých korunách a program bude umět počítat počet bankovech z libovolného počtu mezd
Znění zadávané úlohy ve třetím kole, pro Vás všechny kteří jste propásli třetí kolo a chtěli by jste si to zkusit.
Vlastní zadání:
- Úloha a)
Vytvořte program, který hráči dokáže pomoci při hraní hry Hanojské věže. Navrhněte a implementujte algoritmus, který vypíše správné tahy hry čísla věží ABC, patro 1–8. Zde jsou její pravidla: hráč musí přesunout patra věže z levé strany na pravou, tak že může použít prostřední věže jako pomocné. Nesmí ovšem při přesouvání nikdy položit patro s větším průměrem na patro s průměrem menším. Hra končí v okamžiku kdy jsou přesunuty patra ze levé krajní věže na pravou.
- Úloha b)
Pastva zvířete – zěmědělec má k dispozici plochu o poloměru „r“ Zvíře je uvázáno na provazu délky „d“. Zvíře bude napaseno jedině tehdy, když bude moci spást minimálně polovinu plochy kterou má zemědělec k dispozici. Napište program který na základě zadané délky provazu na kterém je zvíře uvázáno k okraji pozemku a poloměru kruhové plochy pastviny napíše zda bude zvíře dostatečně nasyceno.
Znění zadávané úlohy ve čtvrtém kole, pro Vás všechny kteří jste propásli čtvrté kolo a chtěli by jste si to zkusit.
Vlastní zadání:
- Navrhněte vlastní implementaci šifrovacího algoritmu. K šifrování a dešifrování bude nutno použít tajný klíč, do algoritmu šifrování přidejte i náhodnou složku. Ošetřete aby nešlo vkládat netisknutelné znaky. Šifrovani
Příklad vstupu:
- Heslo
Výstup:
- 23:AF:45:DE:2F:2B:36:FA
--> Dešifrováni -->
Příklad vstupu:
- 23:AF:45:DE:2F:2B:36:FA
Výstup:
- Heslo
- Hodnocena bude propracovanost algoritmu, odolnost vůči chybám, použitelnost a univerzálnost řešení.
PS.: Datum zadání příští úlohy bude 17. 6. 2010.
Ve školním roce 2008/2009
- V rámci projektu OPVK, který je spolufinancován Evropským sociálním fondem a státním rozpočtem ČR, se konalo dne 28. 4. 2009 na SPŠ a VOŠ Písku školní kolo Soutěže v programování, které bylo určené pro studenty druhých a třetích ročníků. Zadání v podobě návrhu a realizace vlastního databázového dotazovacího jazyka prověřilo přihlášené studenty na maximum. Svištění kláves během soutěžního klání ukazovalo, že studenti přípravu nepodcenili. Vzduch plný napětí a konkurence, ve kterém vytvářeli soutěžící vlastní jedinečná řešení, se dal doslova krájet. Po velmi vyrovnaném boji a složitém hodnocení obsadili prvních pět míst z celkového počtu 16 soutěžících.
- Poděkování patří firmě I-services, která sponzorskými dary motivovala studenty k maximálním výkonům a rovněž tak vedení školy, které i v hektické době konání dlouhodobých praktických maturitních zkoušek dokázalo organizačně zvládnout celodenní obsazení pedagogickými dozory v jedné z počítačových učeben a v neposlední řadě patří poděkování všem studentům, kteří se soutěže účastnili a ukázali tak, že svoje řemeslo opravdu umí.