Úvod 1 2 3 4 Příklady Testy

Příklady programů

Obsah
 


Anotace kapitoly
Na této stránce jsou zadání neřešených úloh, které má Ferda s vaší spoluprací provádět. Úlohy jsou řazeny podle obtížnosti. Po vyřešení všech úloh budete seznámeni se základní metodikou řešení úloh a s tvorbou algoritmů.
Pro řešení těchto úloh využijte sbírku řešených úloh.v kapitole 3.

Poznámka:

Pouste se vyřešit všechny úlohy. U každé úlohy je vyjádřena relativní obtížnost řešení úlohy ve valorech. Nejtěžší úloha má 100 valorů, nejlehčí 1 valor (V). Obdobná zadání o různé obtížnosti se vyskytnou v ostrém zadání atestu.

Řešte následující úlohy

Příklady
Zadání 1.1
Ferda v prázdném městě nakreslí ze značek čtverec 10x10. (Obtížnost 10V)
Zadání 1.2
Ferda položí značky do čtverce 10x10 značek a vyznačí i úhlopříčky tohoto čtverce.(Obtížnost 15V)
Zadání 1.3
Ferda v prázdném městě nakreslí ze značek rovnostranný trojúhelník se základnou o velikosti 10 značek. (Obtížnost 15V)
Zadání 1.4
Ferda vyplní město šachovnicí ze značek.(Obtížnost 20V)
Zadání 1.5
Ferda nakreslí vyplněný čtverec 10x10 značek s tím, že obvod čtverce budou tvořit políčka se třemi značkami. (Obtížnost 25V)
Zadání 1.6
Ve městě jsou náhodně rozmístěny značky. Ferda je všechny sebere, tedy na konci programu nebudou ve městě žádné značky. Poté se Ferda zastaví. (Obtížnost 20V)
Zadání 1.7
V prázdném městě jsou náhodně rozmístěny tři značky. Ferda je nalezne a odnese domů. Pak ukončí program. (Obtížnost 20V)
Zadání 1.8
Ve městě jsou na prvním řádku položeny náhodně do tří políček 1,2 nebo 3 značky. Ferda tyto značky přenáší tak, že je seřadí podle velikosti - podle jejich počtu. To znamená, že na konci programu bude v řádku nejprve políčko s jednou značkou, pak se dvěma a poslední se třemi značkami. Zkuste tuto úlohu rozšířit i na seřazení více políček než tří. (Obtížnost 40V)
Zadání 1.9
Ve městě je pomocí značek vyznačena cesta. Cesta může vést i úhlopříčně. Na konci cesty jsou tři značky. Ferda jde po cestě a po nalezení tří značek se zastaví. (Obtížnost 25V)
Zadání 1.10
Ferda vyplní oblast města ohraničenou zdí značkami tak, že bude obvod oblasti obcházet ve spirále.(Obtížnost 15V)
Zadání 1.11
Ferda má ve městě vytvořit ze značek spirálu tak, že začne vyplňovat značky nejdříve po obvodu a uprostřed města skončí. Spirála má mezery mezi jednotlivými závity.(Obtížnost 30V)
Zadání 1.12
Ferda má ve městě vytvořit ze značek spirálu tak, že spirálou vyplní oblast ohraničenou třemi značkami. (Obtížnost 30V)
Zadání 2.1
Město je tvořeno souvislým bludištěm, t.j. každá zeď navazuje na jinou zeď nebo na okraj města. Na libovolném místě města je položena značka. Ferda tuto značku nalezne a program ukončí. (Obtížnost 20V)
Zadání 2.2
Město je tvořeno souvislým bludištěm, t.j. každá zeď navazuje na jinou zeď nebo na okraj města. Na libovolném místě města jsou položeny 3 značky. Ferda tyto značky nalezne a poté se pro ně vypraví znovu, ale už nejkratší cestou. Poté program ukončí. (Pozn.: Ferda si cestu musí během bloudění vyznačit). (Obtížnost 50V)
Zadání 2.3
Město je tvořeno nesouvislým bludištěm, t.j. zeď nemusí navazovat na jinou zeď nebo na okraj města. Na libovolném místě města je položena značka. Ferda tuto značku nalezne a program ukončí. (Obtížnost 60V)
Zadání 2.4
Město je tvořeno nesouvislým bludištěm, t.j. zeď nemusí navazovat na jinou zeď nebo na okraj města. Na libovolném místě města jsou položeny 3 značky. Ferda tyto značky nalezne a poté se pro ně vypraví znovu, ale už nejkratší cestou. Poté program ukončí. (Pozn.: Ferda si cestu musí během bloudění vyznačit). (Obtížnost 80V)
Zadání 2.5
Město je tvořeno souvislým bludištěm, t.j. každá zeď navazuje na jinou zeď nebo na okraj města. Po městě jsou rozmístěny 3 jednotlivé značky. Ferda tyto značky nalezne, odnosí je domů (ne příkaz domů!) a poté program ukončí.(Obtížnost 50V)
Zadání 2.6
Město je tvořeno nesouvislým bludištěm. Po městě jsou rozmístěny 3 jednotlivé značky. Ferda tyto značky nalezne, odnosí je domů (ne příkaz domů!) a poté program ukončí. (Obtížnost 80V)
Zadání 2.7
Ve městě jsou rozmístěny ve směru východ-západ zdi s jediným průchodem. Na nejsevernější hraně města je umístěna značka. Ferda nalezne ke značce nejkratší cestu. Využijte funkci RANDOM VBOK a srovnejte s algoritmem, kde tuto funkci nepoužijete. Proveďte analýzu rychlosti obou dvou algoritmů. (Jedná se o využití metody, která se nazývá Monte Carlo). Vyzkoušejte města s více průchody ve zdech(nesouvislé bludiště).(Obtížnost 20V)
Zadání 3.1
Vytvořte program, který vyplní náhodně oblast o rozměrech 8x6 značkami - v políčku buď bude jedna značka nebo žádná značka. Poté jednotlivé řádky interpretujte jako dvojková čísla(je značka =1, není značka=0) a po jejich převodu do desítkové soustavy snad dostanete náhodná čísla do sportky. Jak omezíte Ferdu aby generoval pouze dvojková čísla do určité velikosti? (Obtížnost 60V)
Zadání 3.2
Ve městě jsou na různých místech rozmístěny souvislé zdi, které jinak spolu nesouvisí. Ferda tyto zdi obklopí značkami - izoluje je od ostatního města značkami. (Obtížnost 90V)
Zadání 3.3
Ve městě jsou na různých místech rozmístěny souvislé zdi, které jinak spolu nesouvisí. U těchto zdí jsou nesouvisle rozmístěny značky. Ferda tyto značky zdvojí.(Obtížnost 90V)
Zadání 3.4
Ve městě jsou na různých místech rozmístěny souvislé zdi, které jinak spolu nesouvisí. U těchto zdí jsou nesouvisle rozmístěny 3 značky. Ferda tyto značky zredukuje na jednu značku. (Obtížnost 90V)
Zadání 3.5
Ve dvou řádcích jsou umístěny značky tak, že je je možné interpretovat jako dvojková čísla. Ferda provede sečtení těchto dvojkových čísel a výsledek umístí do následujícího řádku. Pro sčítání dvojkových čísel platí: 0+0=0, 0+1=1, 1+0=1, 1+1=10.Příklad počátečního postavení je na následujícím obrázku. Jsou zde dvojkově vyjádřena čísla 10101101 což je 173 dekadicky a 01110111= 119 dekadicky. Správný výsledek je 292 t.j. binárně 1 0010 0100 (Obtížnost 70V)

Zadání 4.1
V prvním řádku je položeno 15 značek po sobě. Střídavě s Ferdou odebíráte každý jednu až tři značky. Kdo nemá co sebrat prohrává. Sestavte program tak, že při každém spuštění Ferda sebere příslušný počet značek. Poté ručně odeberete své značky a opět spustíte program. Ferda při posledním spuštění úrogramu oznámí výsledek. (Obtížnost 60V)
Zadání 4.2
Zadání je shodné se zadáním 4.1 pouze v každém z patnácti políčkek může být položena jedna až tři značky. Pravidla jsou taková, že lze sebrat pouze značky jen z jednoho políčka a to současně jednu až všechny tři. Kdo nemá co sebrat, prohrává. Sestavte program podobným způsobem, jako v bodě 4.1. (Obtížnost 70V)
Zadání 4.3
Ve třech sloupcích jsou rozmístěny jednotlivé značky. Jejich počáteční celkový počet je 15 značek. Hrajete střídavě s Ferdou. Vždy můžete sebrat značky, ale pouze stejný počet značek ze dvou sloupečků. Kdo sebere poslední počet značek tak prohraje (vyhraje). Program pro Ferdu vždy spusťte a poté vy odeberte příslušný počet značek. Ferdu můžete jiným programem přinutit, aby náhodně za vás značky na začátku hry postavil. Příklad počátečního postavení je na následujícím obrázku. (Obtížnost 100V)