Ročník 2016

Transkript

Ročník 2016
9. ROČNÍK ŠKOLNÍ SOUTĚŽE V PROGRAMOVÁNÍ – 2016

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://programovani.sspbrno.cz/nahravani
Při nahrávání volte pozorně číslo úlohy, můžete nahrávat vícekrát stejnou úlohu, uloží se všechny
verze, budeme opravovat poslední!

Nahrávejte vždy jen ZDROJOVÝ KÓD (tj. soubor končící příponou c, cpp, cs, php, java, py, js)

Pište do zdrojových kódů krátké komentáře, které usnadní orientaci v kódu

Pokud nebude výslovně řečeno, nemusíte kontrolovat uživatelské vstupy

Nahrajte i rozpracované a nedokončené úlohy.
1 Klasifikace
Nejmenovaný učitel stanovil pravidla pro stanovení výsledné známky z předmětu pro každého studenta:

známky průběžné klasifikace patří vždy nějaké konkrétní kapitole, udávají se s přesností na celý
stupeň: 1, 2, 3, 4, 5 nebo N (nemá z dané kapitoly známku)

z každé kapitoly musí mít student právě jednu známku

pokud je byť jen jediná ze známek 5 nebo N, pak nemá student uzavřenu kapitolu a výsledná
známka z předmětu je 5

pokud není výsledná známka 5, je výsledná známka studenta určena pouze průměrem známek (pro
průměr v rozmezí 1-1.5 je výsledná známka 1, pro průměr v rozmezí >1.5 až 2.5 je výsledná známka
2, ...)
Napište program na výpočet výsledné známky:

vstup uživatele: počet kapitol v daném pololetí

vstup uživatele: všechny známky jednoho žáka pro dané pololetí

kontrola vstupu známky

výpočet výsledné známky, výstup programu: výsledná známka
Příklad vstupu
Zadej počet kapitol: 6
Zadej známky: 1,2,3,1,N,4
Příklad výstupu
Výsledná známka: 5
Bodování
Načtení známek, kontrola vstupu – 2 body, výpočet známky – 2 body, celkem 4 body
2 Tabulka mocnin
Napište program/funkci, který vypíše tabulku velikosti N x N (N je vstup od uživatele – celé číslo), která pro
číslo N=7 vypadá následovně (čísla jsou díky doplňkovým nulám pod sebou) - příklad výstupu:
01
04
09
16
25
36
49
04
01
04
09
16
25
36
09
04
01
04
09
16
25
16
09
04
01
04
09
16
25
16
09
04
01
04
09
36
25
16
09
04
01
04
49
36
25
16
09
04
01
Školní soutěž v programování 2016
1/4
Příklad vstupu
Zadej celé číslo (velikost tabulky): 7
Bodování
Tabulka nezarovnaná – 3 body, zarovnání – 2 body, celkem 5 bodů
3 Sázkař Olin
Olin se rozhodl vsadit nějaká čísla. Použil pro rozhodování náhodu, a to takto:

Tiket má N čísel (od jedné do N).

Olin hází zaráz dvěma kostkami (šestistěnnými).

Po prvním hodu Olin sečte hody na obou kostkách a zaškrtne toto číslo na tiketu.

V dalších hodech Olin přičte hody na obou kostkách k číslu, které zaškrtl minule, a zaškrtne nový
součet.

Pokud někdy padne alespoň jedna šestka, Olin hází znova. Sčítá pak všechna padlá čísla (viz
příklad výpisu).

Hra končí, pokud je nový součet větší než počet čísel na tiketu (a tedy není co zaškrtnout).

Vstupem od uživatele je pouze počet čísel N. Použijte funkce random(), randint(), … - viz
dokumentace
Příklad vstupu
Zadej celé číslo – počet čísel na tiketu: 80
Příklad výstupu
V 1.
Olin
V 2.
Olin
V 3.
Olin
V 4.
Olin
V 5.
Olin
V 6.
Olin
kole padlo 5 5
zaškrtl číslo 10.
kole padlo 3 5
zaškrtl číslo 18.
kole padlo 6 4 a dále 5 1
zaškrtl číslo 34.
kole padlo 6 6 a dále 1 6 a dále 6 3 a dále 1 1
zaškrtl číslo 64.
kole padlo 1 2
zaškrtl číslo 67.
kole padlo 1 6 a dále 5 5
už nic nemůže zaškrtnout.
Bodování
Hody – 2 body, výpočet zaškrtnutí – 3 body, celkem 5 bodů
4 Rýmovač
Pomozte básníkům a naprogramujte „rýmovač“, který najde pět nejvíce se rýmujících slov se slovem na
vstupu. K vyhledávání použijte slova ze souboru rymovnicek.txt

To, jak moc se slova rýmují, je dáno pouze počtem shodných znaků na konci slova (nepřerušená
řada od konce). Např. TRAPAS a KONIPAS mají index rýmování 3, TRAPAS a LOPATA 0, TRAPAS
a KLAS 2.

Pokud najdete více než pět slov se stejným maximálním indexem rýmování, můžete z nich vybrat
jakýchkoli 5.

Měkké I a tvrdé Y jsou z hlediska rýmování shodné, tedy BIDLO a BYDLO má index rýmování 5.

V rýmovníčku není diakritika a je psán velkými písmeny

Vypište 5 nejvíce rýmujících slov se slovem na vstupu uživatele.
Příklad vstupu (+ vstup ze souboru)
Zadej slovo: PALOUCEK
Školní soutěž v programování 2016
2/4
Příklad výstupu
Rýmuje se: KLOUCEK, TLOUCEK, BROUCEK, OBROUCEK, SOUCEK (index 5)
Bodování
Nalezení shody rýmu a výpočet indexu – 3 body, vypsání slov podle indexu – 3 body, celkem 6 bodů
5 Nejkratší cesta

V souboru mesta.txt najdete seznam cest mezi městy, na 1 řádku je uvedena vzdálenost mezi 2
městy ve formátu: A-B-5 (z města A do města B je to 5km). Vaším úkolem je najít nejkratší cestu
z jednoho města do druhého, např. z města A do města F.

Načtěte data ze souboru a uložte do vhodné struktury

Vypište seznam všech měst

Pokud je v souboru duplicita a vzdálenost mezi 2 městy je uvedena 2x, vyřaďte tu s větší
vzdáleností, každá vzdálenost pak bude zapsána jen 1x, „A-B“ je shodná s „B-A“

Uživatel zadá 2 města – začátek a konec cesty (program kontroluje, jestli máte města v seznamu
měst), program najde a vypíše nejkratší možnou cestu (žádným městem nesmíte projít 2x). Pokud
jsou 2 stejně dlouhé, stačí vypsat jen jednu z nich. Příklad cest na obrázku. Z A do F se dostanete
více cestami (např. ACF, ADF, ABDF, …), nejkratší je cesta ADF nebo ABDF, obě mají součet 10
(neodpovídá délce spojnice v nákresu)
Příklad vstupu ze souboru
C-F-9
A-B-4
A-C-5
A-D-6
B-A-8
D-B-2
F-D-4
. . .
Příklad výstupu
V seznamu
Zadej bod
Zadej bod
Nejkratší
jsou města: ['C', 'F', 'A', 'B', 'D', 'E']
= začátek cesty: A
= konec cesty: F
cesta ADF meří 10
Bodování
Načtení souboru – 1 bod, odstranění duplicit – 3 body, seznam měst – 2 body, nalezení nejkratší cesty – 7 bodů, celkem
13 bodů
Školní soutěž v programování 2016
3/4
6 Osmisměrka
Naprogramujte aplikaci na vytváření osmisměrek, případně čtyřsměrek (bez diagonál) ze zadaných slov
(pravidla stejná jako u příkladu 4 – bez diakritiky), který funguje podobně jako aplikace:
http://puzzlemaker.discoveryeducation.com/WordSearchSetupForm.asp. Uživatel zadá hledaná slova a
velikost osmisměrky/čtyřsměrky. Úkolem aplikace je umístit písmena slov do osmisměrky/čtyřsměrky.
Umístěná písmena pak doplňte náhodnými písmeny a osmisměrku/řtyřsměrku zobrazte.
Příklad vstupu
Zadej počet slov: 8
Vstup slov: BIT, BYTE, COMPUTER, JAVA, KLAVESNICE, MONITOR, PROCESOR, PYTHON
Velikost osmisměrky: 10
Příklad výstupu
Řešení
Bodování
Vstupy od uživatele – 1 bod, nalezení společných písmen – 2 body, umístění do mřížky – 5 bodů, doplnění náhodnými
písmeny – 2 body, celkem 10 bodů
Školní soutěž v programování 2016
4/4

Podobné dokumenty

Unit 1 - Základní škola Sv. Čecha, Choceň

Unit 1 - Základní škola Sv. Čecha, Choceň d) čte samostatně (potichu nebo nahlas) a ukazuje zvýrazněná slovíčka na obrázku. Nakonec ukáže na obrázku Marka. Ptáme se: „Where´s Mark?“ (Učitel pozná, že žák dočetl do konce a spojil si informa...

Více

zde

zde Síťové služby mohou být spojované nebo nespojované. A Spojované služby (CONS):

Více

Vyjmenovaná slova 4

Vyjmenovaná slova 4 Základní škola a Mateřská škola Loučany Čeština nás baví I2 – 2 – 04 Vyjmenovaná slova 4

Více

IPEX SOAP brána 1

IPEX SOAP brána 1 odeslat pouze když je zůstatek kreditu větší než 10 Kč. Limit pro odeslání SMS u Prepaid účtu je 5 zpráv za minutu. Autorizace na SOAP bránu může byt realizována přes přístup na B2BWS pro všechna č...

Více

Test slovní zásoby

Test slovní zásoby spisovatel, tím lepší slovní zásoba. Mnohdy byly výsledky až zarážející. Velká slovní zásoba nám dává větší možnost vyjadřovat se. Průměrný český člověk by měl dosáhnout výsledku mezi 200 až 300 bo...

Více

HLEDÁME ZLATÉ ČÍSLO V PRAZE

HLEDÁME ZLATÉ ČÍSLO V PRAZE Fibonacciho posloupnost fascinovala matematiky po celá staletí. Všimli si, že tato čísla se objevují v mnoha dalších souvislostech a nejrůznějších přírodních strukturách a obdivovali jejich krásu. ...

Více