Vyšší odborná škola, Obchodní akademie a Střední odborná škola EKONOM, o. p. s. Litoměřice, Palackého 730/1
DUM Téma: Kombinované úlohy – cvičení Varianta: A
Algoritmy
DUM III/2-T1-1-19 PRG-01A-var1
Střední škola
Rok: 2012 – 2013
Zpracoval: Mgr. Pavel Hrubý
VÝKLAD
Kombinované úlohy - cvičení Obsah Zadání 1.8 - téma průchod souvislým bludištěm .................................................................................... 1 Zadání 1.9 - téma průchod souvislým bludištěm s návratem ................................................................. 3 Zadání 1.10 - téma generátor náhodných čísel ....................................................................................... 4 Zdroje a odkazy................................................................................................................................ 5
Anotace kapitoly V této kapitole se seznámíte s obecnými postupy, které programátor potřebuje nutně znát a to na řešených příkladech. Příklady podobného typu, ale neřešené naleznete v kapitole ÚLOHY. Po prostudování této kapitoly byste měli řešit běžné úlohy s využitím programu FERDA. Jednotlivé typy úloh se vám objeví opět a znovu při řešení algoritmů v kapitole o základech programování v jiném programovacím prostředí.
Zadání 1.8 - téma průchod souvislým bludištěm Město je tvořeno souvislým bludištěm, t.j. každá zeď navazuje na jinou zeď nebo na okraj města. Ve městě je umístěna značka. Ferda tuto značku nalezne a program ukončí. Jedna z možností řešení tohoto úkolu je znázorněna na následujícím vývojovém diagramu.
Operační program CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu CZ.1.07/1.5.00/34.0553 Název projektu Elektronická podpora zkvalitnění výuky Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován z Evropského sociálního fondu a ze státního rozpočtu České republiky DUM-III2-T1-1-19_cviceni_ferda-kombinovane_ulohystránka 1 4.docx
Vyšší odborná škola, Obchodní akademie a Střední odborná škola EKONOM, o. p. s. Litoměřice, Palackého 730/1
Řešení: rem program bludiste rekni Tak odcházím hledat ten poklad. dokud neni znacka rychle vpravo vbok kdyz nebude zed krok jinak vlevo vbok kdyz nebude zed krok jinak vlevo vbok konec kdyz konec kdyz pomalu konec dokud rekni Tak ho mám. konec programu
Přepis vývojového diagramu do programu pro Ferdu je nepřesný a má dvě změny. Naleznete je? Proč jsou v programu použity příkazy RYCHLE a POMALU?
Operační program CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu CZ.1.07/1.5.00/34.0553 Název projektu Elektronická podpora zkvalitnění výuky Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován z Evropského sociálního fondu a ze státního rozpočtu České republiky DUM-III2-T1-1-19_cviceni_ferda-kombinovane_ulohystránka 2 4.docx
Vyšší odborná škola, Obchodní akademie a Střední odborná škola EKONOM, o. p. s. Litoměřice, Palackého 730/1
Při studiu tohoto algoritmu zjistíte, že je zbytečně dlouhý a opakují se dvakrát tytéž algoritmické struktury. Zkuste napsat algoritmus jednodušší, přesnější a rychlejší.
Zadání 1.9 - téma průchod souvislým bludištěm s návratem Město je tvořeno souvislým bludištěm, t.j. každá zeď navazuje na jinou zeď nebo na okraj města. Ve městě je umístěna 3 - značka. Ferda tuto 3 - značku nalezne a vrátí se nejkratší cestou zpět. Poté program ukončí. Konečný stav programu je na obrázku.
program bludiste s návratem rem program je uložen v souboru BLUD2.FRD rem soubor mesta je uložen v souboru BLUD1.MST rekni Tak odcházím hledat ten poklad. poloz poloz dokud nebude 3 kdyz neni znacka poloz jinak kdyz bude znacka zvedni konec kdyz konec kdyz krok vpravo vbok dokud bude zed vlevo vbok konec dokud konec dokud rekni Tak ho mám. poloz krok zvedni zvedni zvedni dokud nebude znacka vlevo vbok konec dokud opakuj
Operační program CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu CZ.1.07/1.5.00/34.0553 Název projektu Elektronická podpora zkvalitnění výuky Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován z Evropského sociálního fondu a ze státního rozpočtu České republiky DUM-III2-T1-1-19_cviceni_ferda-kombinovane_ulohystránka 3 4.docx
Vyšší odborná škola, Obchodní akademie a Střední odborná škola EKONOM, o. p. s. Litoměřice, Palackého 730/1
kdyz bude znacka krok jinak vlevo vbok kdyz nebude znacka celem vzad konec kdyz kdyz nebude znacka celem vzad konec kdyz konec kdyz az do je 2 konec programu
Zadání 1.10 - téma generátor náhodných čísel Ferda položí náhodně do prvního řádku značky. Jediná možnost, kterou Ferda má ke generování náhodných hodnot je příkaz RANDOM VBOK. Na tento příkaz provede Ferda náhodně buď vlevo nebo vpravo vbok. Procedura, která převede náhodný pohyb na položení značky je uvedena v programu. Řešení: program Náhodný generátor rem program je uložen v souboru GENE0.FRD rem v adresáři EXAMPL opakuj proc_nahzn krok az do bude zed konec programu rem definice procedur DF_nahzn random vbok kdyz je sever kdyz neni 2 poloz konec kdyz konec kdyz proc_navychod konecproc DF_navychod kdyz je sever vpravo vbok konec kdyz kdyz je jih vlevo vbok Operační program CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu CZ.1.07/1.5.00/34.0553 Název projektu Elektronická podpora zkvalitnění výuky Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován z Evropského sociálního fondu a ze státního rozpočtu České republiky DUM-III2-T1-1-19_cviceni_ferda-kombinovane_ulohystránka 4 4.docx
Vyšší odborná škola, Obchodní akademie a Střední odborná škola EKONOM, o. p. s. Litoměřice, Palackého 730/1 konec kdyz konecproc rem konec algoritmu
Pokuste se modifikovat tento program tak aby Ferda pokládal náhodně 1 až tři značky do první řady, do více řad. Pokud si představíte tiket sportky (7x7 políček), je možné napsat program, v kterém Ferda náhodně položí na různá místa právě šest značek? Zkuste to.
Zdroje a odkazy Wikipedie: Otevřená encyklopedie: Algoritmus [online]. c2012 [citováno 7. 8. 2012]. Dostupný z WWW:
Operační program CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu CZ.1.07/1.5.00/34.0553 Název projektu Elektronická podpora zkvalitnění výuky Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován z Evropského sociálního fondu a ze státního rozpočtu České republiky DUM-III2-T1-1-19_cviceni_ferda-kombinovane_ulohystránka 5 4.docx