6. ROČNÍK ŠKOLNÍ SOUTĚŽE V PROGRAMOVÁNÍ 2013



Podobné dokumenty
Zadání soutěžních úloh

Zadání soutěžních úloh

Programy na PODMÍNĚNÝ příkaz IF a CASE

ČÍSELNÉ SOUSTAVY PŘEVODY

Cykly a pole

Hodnocení soutěžních úloh

Zadání soutěžních úloh

CVIČNÝ TEST 37. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 5 III. Klíč 13 IV. Záznamový list 15

CVIČNÝ TEST 22. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15

II. Úlohy na vložené cykly a podprogramy

Zadání soutěžních úloh

Školní kolo soutěže Baltík 2009, kategorie C

Základní jednotky používané ve výpočetní technice

Hodnocení soutěžních úloh

CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

0.1 Úvod do lineární algebry

Jakýkoliv jiný způsob záznamu odpovědí (např. dva křížky u jedné úlohy) bude považován za nesprávnou odpověď.

Zadání soutěžních úloh

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

pro bakalářské studijní programy fyzika, informatika a matematika 2018, varianta A

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

63. ročník Matematické olympiády 2013/2014

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 48. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 41. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Hodnocení soutěžních úloh

Zadání soutěžních úloh

Korespondenční Seminář z Programování

Pokud nebude na příkazové řádce uveden právě jeden argument, vypište chybové hlášení a stručný

Mgr. Tomáš Kotler. I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

c jestliže pro kladná čísla a,b,c platí 3a = 2b a 3b = 5c.

Přijímací zkouška na MFF UK v Praze

Školní kolo soutěže Baltík 2010, kategorie C, D

TESTOVÝ SEŠIT NEOTVÍREJTE, POČKEJTE NA POKYN!

Zadání soutěžních úloh

UniLog-D. v1.01 návod k obsluze software. Strana 1

Vlastnosti pravděpodobnosti, geometrická pravděpodobnost

Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY ZADÁNÍ NEOTVÍREJTE, POČKEJTE NA POKYN!

Cílem seminární práce je aplikace teoretických znalostí z přednášky na konkrétní úlohy. Podstatu algoritmu totiž

Úlohy krajského kola kategorie C

ANTAGONISTICKE HRY 172

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Programování v jazyku LOGO - úvod

MATEMATIKA. 1 Základní informace k zadání zkoušky. 2 Pravidla správného zápisu řešení. 3.2 Pokyny k uzavřeným úlohám 7-15 DIDAKTICKÝ TEST

Metody síťové analýzy

Kód uchazeče ID:... Varianta:

Hodnocení soutěžních úloh

Rozšíření Hessova Plátna na Weissovo plátno

Lineární algebra Operace s vektory a maticemi

CVIČNÝ TEST 35. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

0.1 Úvod do lineární algebry

Technická specifikace struktury ABO formátu UHL1 DATOVÝ SOUBOR

Algoritmizace a programování

Tabulkový procesor. Základní rysy

P4 Ukecaný program InterLoS 2014

Hodnocení soutěžních úloh

Grantové řízení Oranžové hřiště

Nápovědy k numerickému myšlení TSP MU

ALGEBRA. Téma 5: Vektorové prostory

5. Lokální, vázané a globální extrémy

WORD. 4. Texty vyskytují se v dokumentu 3x mají zelenou barvu

Jednoduché cykly

Střední odborná škola a Střední odborné učiliště, Hořovice

Zadání druhého zápočtového projektu Základy algoritmizace, 2005

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

CVIČNÝ TEST 12. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 19 IV. Záznamový list 21

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Algoritmy a datové struktury

Golayův kód 23,12,7 -kód G 23. rozšířený Golayův kód 24,12,8 -kód G 24. ternární Golayův kód 11,6,5 -kód G 11

11. ročník. Řešení: 3. a 4. sada

} Vyzkoušej všechny povolené možnosti.

Pavlína Matysová. 5. listopadu 2018

59. ročník Matematické olympiády 2009/2010

MATEMATICKÉ DOVEDNOSTI

Pokud budete chtít svou odpověď opravit, zabarvěte původně zakřížkovaný čtvereček a zakřížkujte nový čtvereček.

(A) o 4,25 km (B) o 42,5 dm (C) o 42,5 m (D) o 425 m

Lineární funkce, rovnice a nerovnice

Algoritmizace a programování

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Vánoční turnaj GP Praha 2012

Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Opravná zkouška 2SD (druhé pololetí)

Typy a použití klopných obvodů

A0M15EZS Elektrické zdroje a soustavy ZS 2011/2012 cvičení 1. Jednotková matice na hlavní diagonále jsou jedničky, všude jinde nuly

5 Orientované grafy, Toky v sítích

... sekvenční výstupy. Obr. 1: Obecné schéma stavového automatu

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Test žáka. Zdroj testu: Celoplošná zkouška 2. Školní rok 2012/2013 MATEMATIKA. Jméno: Třída: Škola: Termín provedení testu:

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

MATEMATIKA MAHZD14C0T01 DIDAKTICKÝ TEST. 2.1 Pokyny k otevřeným úlohám. 1 Základní informace k zadání zkoušky. 2.2 Pokyny k uzavřeným úlohám

Lineární programování

Symetrické a kvadratické formy

CVIČNÝ TEST 13. OBSAH I. Cvičný test 2. Mgr. Zdeňka Strnadová. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Funkce a lineární funkce pro studijní obory

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

IB112 Základy matematiky

Transkript:

6. ROČNÍK ŠKOLNÍ SOUTĚŽE V PROGRAMOVÁNÍ 2013 Pořadí úloh si určujete sami, u každé úlohy je uvedeno její bodové hodnocení. Můžete řešit různé úlohy v různých programovacích jazycích. Každou hotovou úlohu raději ihned nahrajte na server: http://www.sspbrno.cz/soutezprg Při nahrávání volte pozorně číslo úlohy! Nahrávejte vždy jen ZDROJOVÝ KÓD (tj. soubor končící příponou c, cpp, cs, php, java, py) Nahrajte i rozpracované a nedokončené úlohy. Úloha 1: Bankovní automat (5 bodů) Bankovní automat vám může vydat peníze v různých bankovkách. U bankomatů si už dnes můžete vybrat z několika možností, v jakých bankovkách chcete peníze dostat. Bankomat bude vydávat peníze v bankovkách o hodnotě: 200, 500, 1000, 2000 a 5000. Načtěte od uživatele peníze, které chce vybrat (maximálně 10 000). Zkontrolujte, zda je možno tento obnos pokrýt dostupnými bankovkami. Pokud to jde, nabídněte uživateli více možností, jak danou sumu z bankovek poskládat, nejvíce 3 možnosti. Pravidla: Jedna z možností musí obsahovat bankovky s nejnižší možnou hodnotou Jedna z možností musí obsahovat nejvyšší možnou bankovku. Žádné bankovky nebude v žádné volbě více než 5 ks. U každé z možností bude také uvedeno, kolik jakých bankovek uživatel při dané volbě dostane. Vstupy a výstupy Příklad vstupu 1: 450, Příklad výstupu 1: nelze Příklad vstupu 2: 6900, Příklad výstupu 2: výstup 1: 2x200 + 3x500 + 5x1000 výstup 2: 2x200 + 1x500 + 3x2000 výstup 3: 2x200 + 3x500 + 1x5000 Bodování Načtení vstupu a validace vstupu (2 bod) Korektní výstup 1 (1bod) Korektní výstup 2 (1bod) Korektní výstup 3 (1bod) Školní soutěž v programování 2013 1/5

Úloha 2: Testování spojů (18 bodů) Přístroj pro testování spojů je specifické zařízení, které testuje tištěné spoje a to tím způsobem, že spoj rozdělí na pomyslnou mřížku, kterou potom po částech kontroluje. V každém čtverci dané mřížky otestuje odpor a uloží ho jako hodnotu od 0 do 255. Tato mřížka je vždy o velikosti 8x8. Vaše úloha je následující: 1. Načtěte mřížku ze souboru a vypište ji na monitor tak, abyste mezi hodnotami nechali bílé místo (mezera nebo tabulátor). Výpis bude odpovídat přiloženému souboru. znázorněna 0 a tam, kde není spoj, hodnota 1. 2. Spoje je možno najít tak, že hodnota v daném čtverci je menší než 30. Je-li hodnota rovna 30 a více, už se nedá počítat s tím, že by to byl spoj. Vypište mřížku na obrazovku tak, aby na místě spoje byla 3. Otestujte desku vůči chybám: Chyba1 nastane, pokud je čtverec považován za slepý konec. Jinak řečeno, pokud pro daný čtverec, který je považován za spoj neexistují alespoň 2 čtverce v 4-sousednosti, které jsou taktéž spoj. Netestujte řádky a slupce 0 a 7. Chyba2 nastane, pokud je čtverec považován za křižovatku. Jinak řečeno, takový čtverec, který je považován za spoj a má alespoň 3 sousední čtverce v 4-sousednosti, které jsou považovány za spoje. Netestujte řádky a slupce 0 a 7. 4. Spočítejte a tyto informace vypište na obrazovku.: počet čtverců, které spoje zabírají celkový odpor spojů průměrný odpor na jeden čtverec spoje Bodování Správné načtení a výpis informací o tištěném spoji. (4 body) Správný výpis očištěného tištěného spoje. (3 body) Nalezení Chyby1. (4 body) Nelezení Chyby2. (4 body) Plocha tištěného spoje (1bod), celkový odpor (1bod), a průměrný odpor (1bod) Vstupy a výstupy viz web soutěže Testovací vstup naleznete v souboru silicontest01.txt a výstup v souboru silicontest01_out.txt Testovací vstup naleznete v souboru silicontest02.txt a výstup v souboru silicontest02_out.txt Školní soutěž v programování 2013 2/5

Úloha 3: Fibonacciho kódování (14 bodů) Fibonacciho posloupnosti čísel vypadá takto: 0 1 1 2 3 5 8 13 21 34 Počítá se nasledovně: první číslo je 0, druhé je 1 a každé další číslo je součtem dvou předchozích čísel. Věty obsahují jenom znaky z ASCII tabulky, které mají hodnotu mezi 55 a 100 a znak s hodnotou 32 (mezera). Příklad: JA JSEM JANA zakódujeme jako J@ HV@U K=S8. První znak bude mít hodnotu písmena J plus poslední číslice prvního čísla fibonačiho posloupnosti, teda 74 + 0. Výsledný kódovaný znak je teda znak s hodnoutou 74 a to je J. Druhý znak bude mít hodnotu písmena A, teda 65 mínus poslední číslice druhého fibonačiho čísla. 65-1 = 64 = @. Třetí znak nebudeme kódovat, protože je to mezera a pouze ho přepíšeme. (Bylo by ale použito plus) Čtvrtý znak budeme kódovat. Je to písmeno J. Odečteme od něho 2 a dostaneme pismeno H. K devátému znaku, což je písmeno J přičteme poslední číslici 9 čísla ve fibonacciho řadě, což je 21, a dostáváme teda 74 + 1= 75 a to je H. Dekódování za pomoci fibonačiho čísel. Dekódování správy pomocí fibonacciho čísel je obdobné kódování. Tam, kde v kódování přípočítáte poslední cifru fibonacciho čísla tak v dekódování odpočítaváte. Tipy Testovací věta má méně než 45 znaků. Nemusíte teda používat datové typy, které jsou schopny jít dál než je číslo 2 31. Úlohy a bodování Před kódováním a dekódováním vypište pomocí funkce prvních 45 fibonacciho čísel. (2 body) Před kódováním a dekódovaním vypište pomocí funkce poslední cifry z prvních 45 fibonacciho čísel. (2 body) Zakódujte větu DOUFAM ZE SE MI PODARI TUTO ULOHU UDELAT. (5 body) Dekódujte větu JHO?N JV IJ XL MYSIKT. (5 body) Školní soutěž v programování 2013 3/5

Úloha 4: Trojúhelníky a jejich Obaly (7 bodů) Mějme dvojrozměrnou síť, začínající v bodě (0,0), která pokračuje do kladných čísel. nachází se v ní 2 trojúhelníky. Tyto trojúhleníky jsou definovány jako trojice bodů a každý bod je definován jako dvojice (X,Y) představující jeho pozici na síti. Všechny body jsou definovány jako celá kladná čísla včetně nuly. Viz obrázek. Každý trojúhleník má svou plochu a taktéž má svůj obal. Obal je obdélník nebo čtverec, kterého nejmenší souřadnice na ose X je rovna nejmenší hodnote X bodů trojúhelníku, ke kterému patří. Jeho největší souřadnice je na ose X rovna největší hodnotě X bodů trojúhleníku. Pro souřadnice Y platí obdobné tvrzení. Popis k obrázku Zelený trojúhelník (vlevo) je definován body (1,2), (1,5) a (3,5). Minimum jeho obalu je na ose X i Y v bodě 1 a maximum na ose X a Y je v bodě 5. Oranžový trojúhelník (vpravo) je definován body (6,3), (4,4) a (6,7). Minimum obalu na ose X je v bodě 4 a na ose Y v bodě 3. Maximum na ose X je v bodě 6 a na ose Y v bodě 7. Tmavá plocha označuje vzájemné překrytí obalů trojúhelníků. Zadání a hodnocení Vypište souřadnice obalových těles (2 body) Zjistěte, jestli se obalová telesa trojúhelníku překrývají. Obalová telesa se nepřekrývají, pokud sdílí pouze hranu nebo bod s hranou nebo body. (2 body) Zjistěte, jaký je obsah překryvu obalových těles. (3 body) Vstupy programu Vstup nijak nenačítejte a použijte přímo tyto hodnoty: A) Trojúhelník 1: (0,0),(0,5),(4,0); Trojúhelník2: (8,7),(0,3),(2,6) B) Trojúhelník 3: (2,3),(0,4),(5,9); Trojúhelník4: (4,4),(3,3),(6,4) C) Trojúhelník 5: (2,3),(0,4),(5,9); Trojúhelník6: (4,4),(3,3),(6,4) D) Trojúhelník 7: (5,0),(0,1),(6,6); Trojúhelník8: (4,1),(2,2),(3,3) Ukázka výstupu E) Triangle: 1, MaxX: 5, MaxY: 9, MinX: 0, MinY:3 Triangle: 2, MaxX: 6, MaxY: 4, MinX:3, MinY:3 Překryv: true, Velikost: 2 Školní soutěž v programování 2013 4/5

Úloha 5: Kdy to padne? (7 bodů) Mějme server, který má určitou velikost paměti (0 až 2 31 Bytů). Na tomto stroji jsou do paměti nahrány 3 programy, které ihned zaberou určité množství paměti. Jejich další parametry jsou časový úsek (celé kladné číslo, sekundy), po kterém nastane změna množství paměti, kterou program zabere. Velikost této změny je celé kladné číslo. Po nahrání programů do paměti proběhne jejich spuštění. Programy upravují svoje místo v pořadí Program1, Program 2, Program3. Program nemůže mít zápornou hodnotu pro velikost místa, které potřebuje. Více osvětluje graf. Popis grafu Graf znázorňuje Servr s pamětí 37 Bytů, na kterém jsou následující programy: Program 1: Na začátku zabírá 20 Bytů a každou sekundu se zvětšuje o 1 Byte. Program 2: Na začátku zabírá 5 Bytů a zvětšuje se každou sekundu o 1 Byte. Program 3: Na začátku zabírá 5 Bytů a zvětšuje se každé dvě sekundy o 2 Byty. Paměť nebude stačit ve 3 sekundě a pád servru spůsobý program č. 2, protože se bude snažit překročit množství paměti, kterou je mu servr schopen poskytnout. Úlohy a bodování Zjistěte, ve které sekundě po startu už nebude dostatek místa a celý server spadne. (3 body) Zjistěte, který Program se snažil zabrat místo jako poslední. (2 body) Upravte úlohu tak, aby programy mohly místo i uvolňovat. (2 body) Tip Na testování programu použijte příklad z grafu. Značka MB znamená MegaByte. 1MB = 1024KB = 1024*1024 Bytů. Vstupy pro základní úlohu Server: 25MB paměti Program 1: 7MB na začátku a zvětšuje se o 256KB každou sekundu. Program 2: 4MB na začátku a zvětšuje se o 128KB každé 3 sekundy. Program 3: 1MB na začátku a zvětšuje se o 2MB každých 8 sekund. Vstupy pro rozšířenou úlohu Server: 1 GB paměti Program 1: 28MB na začátku a zvětšuje se o 256KB každou sekundu. Program 2: 128MB na začátku a zmenšuje se o 256KB každé 2 sekundy. Program 3: 1MB na začátku a zvětšuje se o 3MB každých 8 sekund. Školní soutěž v programování 2013 5/5