Vyhlášení obvodního kola Soutěže v programování na Praze 6 a 17
36. ročník 2021/2022
Termíny:
středa 23. 3. 2022 –Programovací jazyky a web
Prezence 8:30-8:50 v místě konání soutěže, zahájení soutěže v 9:00. Ukončení v cca 13:00 hodin.
pondělí 28. 3. 2022 – Programování mikrořadičů (Arduino)
Prezence 8:30-8:50 v místě konání soutěže, zahájení soutěže v 9:00. Ukončení v cca 13:00 hodin.
Kategorie mladší žáci
středa, 23. 3. 2022
Kategorie je určená pro žáky ZŠ a žáky odpovídajících ročníků víceletých gymnázií. (6. – 7. třída a odpovídající ročník VG) programovací jazyk Scratch
Kategorie starší žáci
středa, 23. 3. 2022.
Kategorie je určená pro žáky ZŠ a žáky odpovídajících ročníků víceletých gymnázií. (8. a 9. ročník a odpovídající ročník VG): programovací jazyk Scratch
Kategorie mládež
středa, 23. 3. 2022.
Kategorie vyšší programovací jazyky starší žáci a mládež: libovolný vyšší programovací jazyk, (Java, Python, C++, C#, Pascal, Basic …) – soutěžící uvede v přihlášce
Programování mikrořadičů (Arduino)
pondělí, 28. 3. 2022.
Kategorie je určená pro žáky ZŠ a SŠ do 19 let včetně
Programování webu – nepostupová kategorie
středa, 23. 3. 2022.
Nepostupová kategorie určená pro všechny žáky do 19 let včetně – rozhodnutím NPI tato kategorie v letošním školním roce není oficiálně vyhlášena a nebude tak ani v krajském ani ústředním kole.
Úloha 1 – Zájezd na Statistickém úřadě [40]
Oddělení počítačové podpory na Statistickém úřadě plánuje na léto zájezd k Máchovu jezeru. Jedná se o velmi výjimečnou událost, na které je z důvodu úspory na hromadné dopravě a ubytování žádoucí co nejvyšší počet účastníků. Každý zaměstnanec má ale téměř zcela odlišný časový harmonogram a proto výběr ideálního termínu zájezdu nebude snadný.
Jakožto předního odborníka na analýzu dat je Tvým úkolem napsat program, který takovýto termín dokáže najít. Každý zaměstnanec poskytl informace o tom, ve které dny se může zúčastnit. Tyto dny byly od všech shromážděny a byly vytvořeny různě dlouhé varianty zájezdů. pro každou variantu zájezdu je tak znám celkový počet možných účastníků.
Úloha 2 – Výpočet BMI [25]
Index tělesné hmotnosti, BMI (z anglického Body Mass Index) je číslo používané nejen lékaři k udávání nadváhy či podváhy pacientů. Vypočítá se jako podíl hmotnosti a výšky na druhou: kde hmotnost je hmotnost pacienta v kilogramech a výška je jeho výška v metrech. Jednotkou BMI je kg·m2.
Vytvořte program, který vypočítá BMI pacienta. Uživatel zadá programu hmotnost a výšku a pacienta a program vypočítá ze zadaných hodnot BMI, které vypíše.
Pokud bude zadaná hmotnost vyšší než 700 kg, program vypíše chybu (nejtěžší člověk na světě vážil podle Guinnesovy knihy rekordů 635 kg). Stejně tak program vypíše chybu, pokud bude zadána výška větší než 3 m.
Úloha 3 – Rychlopísař [35]
Vytvořte program, který změří počet úhozů za minutu písaře při přepisování textu.
Po zapnutí programu je uživatel vyzván k zadání jedné věty. Uživatel větu zapíše a potvrdí. Program pak větu zobrazí a uživatel ji musí co nejrychleji přepsat. Během psaní se měří čas. Když uživatel větu dopíše, zmáčkne „enter“ (nebo jinou funkční klávesu, například „Ctrl“). Program pak vypíše, zda byla věta přepsaná správně, za jak dlouho ji uživatel přepsal a kolik úhozů za minutu (rozuměj kolikrát za minutu stiskl nějaké písmeno) měl. Po zobrazení výsledku se uživatel může rozhodnout, zda chce psát další větu či program ukončit.
Zadaná věta: Dnes je polojasno.
Příklad zobrazení výsledku:
Přepsaná věta: Dnes je polojasno.
Věta byla přepsána správně:-)
Věta byla přepsána za 27 sekund.
Počet úhozů za minutu: 40.
Nebo
Zadaná věta: Včera bylo oblačno.
Přepsaná věta: Včeta bxlo oblašno.
Věta byla přepsána špatně:-(
Věta byla přepsána za 23 sekund.
Počet úhozů za minutu: 50.
Úloha 1 – Zájezd na Statistickém úřadě [45]
Oddělení počítačové podpory na Statistickém úřadě plánuje na léto zájezd k Máchovu jezeru. Jedná se o velmi výjimečnou událost, na které je z důvodu úspory na hromadné dopravě a ubytování žádoucí co nejvyšší počet účastníků. Každý zaměstnanec má ale téměř zcela odlišný časový harmonogram a proto výběr ideálního termínu zájezdu nebude snadný.
Jakožto předního odborníka na analýzu dat je Tvým úkolem napsat program, který takovýto termín dokáže najít. Každý zaměstnanec poskytl informace o tom, ve které dny se může zúčastnit. Tyto dny byly od všech shromážděny a pro každý den je znám celkový počet možných účastníků.
Zájezdů bylo vybráno několik variant s různými délkami pobytu. Cílem je ke každé variantě zjistit, kterým dnem začíná termín, na kterém bude po celou jeho dobu nejvyšší počet účastníků.
Úloha 2 – Rovnice [30]
Vytvořte program, který dokáže řešit jednoduché rovnice složené maximálně z deseti členů, které
a) musí mít znaménku plus či mínus
b) mohou mít 1 neznámou „x“
c) jsou z množiny celých čísel (o max. rozsahu hodnot integer)
Příklad:
Po spuštění programu zadá uživatel rovnici 15x+5-40=5-3x-2x,
počítač vypíše výsledek x=2.
Zadání rovnice je bez mezer. Po zobrazení výsledku může uživatel zadat další rovnici či program ukončit. Pokud uživatel zadá rovnici ve špatném tvaru, program by neměl spadnout, ale uživatele upozornit nějakým hlášením.
Úloha 3 – Rychlopísař [25]
Vytvořte program, který ze zadaného textového souboru náhodně vybere jednu větu (každá věta začíná na novém řádku; program na začátku běhu vyzve uživatele k zadání cesty k souboru – za dialogové okno nebudou v tomto případě body navíc; například „c:\vety.txt“). Soubor pro testování při řešení úlohy si vytvořte sami. Tento soubor můžete odevzdat s programem, ale hodnotitelé budou používat vlastní, dle výše popsaného zadání.
Po stisknutí libovolné klávesy větu zobrazte. Uživatel v tuto chvíli musí větu co nejrychleji a bez chyby přepsat.
Hlavní úlohou programu je vypočíst průměrný počet úhozů uživatele za minutu.
Přepsanou větu uživatel potvrdí stisknutím klávesy „enter“ (či jinou funkční klávesou). Po jedné větě bude následovat věta další či konec programu (na přání uživatele – například jednou klávesou následuje další věta, jinou klávesou se přepisování ukončí a zobrazí se výsledek). Průměrný počet úhozů za minutu se vypočítá z jednotlivých frekvencí přepisu. Čas se měří jen, pokud je zobrazena věta k přepisování. Po přepsání jedné věty, než se uživatel rozhodne, zda chce větu další či nikoli, se čas neměří.
Pokud uživatel již nechce přepisovat další větu, zobrazte výsledek. Ve výsledku uveďte počet všech zadaných a správně přepsaných vět a dále počet úhozů za minutu. Vypočítejte počet úhozů ze správně přepsaných vět, ze špatně přepsaných vět i ze všech přepsaných vět dohromady. Pokud tedy uživatel během přepisování udělá chybu, ošetřete tuto situaci vhodným způsobem.
Příklad zobrazení výsledku:
Počet zadaných vět: 5 Počet správně přepsaných: 3 Počet úhozů za minutu ve správně přepsaných větách: 30 Počet úhozů za minutu ve špatně přepsaných větách: 35 Počet úhozů za minutu ve správně přepsaných větách: 32
This is just a placeholder to help you visualize how the content is displayed in the tabs. Feel free to edit this with your actual content.