Projekt OP VK „Inovace studijních oborů zajišťovaných katedrami PřF UHK“ Registrační číslo: CZ.1.07/2.2.00/28.0118
1
Strukturované programování
Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů, s tvorbou a využíváním procedur a funkcí, s využitím zápisu algoritmů pomocí vývojových diagramů. 1.1
Programování počítačových aplikací
V současné době je pojem „programování“ velice často používán v nejrůznějších situacích. V domácnosti si můžeme naprogramovat topení v bytě, praní prádla v automatické pračce, nahrávání televizních pořadů do pamětí videorekordérů atd. Bez problémů bychom našli řadu dalších aplikací, ve kterých je možno uvažovat o programování. V rámci předmětu Programování 2 se ale budeme zabývat výhradně programováním počítačových aplikací. Z tohoto pohledu bude naprosto nepodstatné, jestli výsledná aplikace má sloužit k realizaci nějakých abstraktních matematických výpočtů, k simulaci procesů, které probíhají v reálném světě kolem nás, nebo k řízení technologického procesu. Celý vývoj počítačové aplikace lze rozdělit do tří základních kroků, které ale nejsou izolované a v praxi se vzájemně ovlivňují. 1.1.1 Analýza problému Jedná se o úvodní fázi programování, kdy je třeba shromáždit veškerá dostupná data a informace o analyzovaném problému. Jde o vytvoření základní představy o výsledné aplikaci. Jaká data budeme zpracovávat, jaký je jejich rozsah, jaké jsou mezi nimi vazby. Již v této fázi je nutno rozhodnout, zda se bude jednat o relativně malou jednoduchou 1/5
Vladimír Jehlička
Programování 2 Strukturované programování
aplikaci, kterou zvládneme v rámci strukturovaného programování, nebo zda se bude jednat o rozsáhlý projekt, o kterém můžeme předpokládat, že se v budoucnu bude dále rozšiřovat. V takovém případě je třeba přisoupit k objektové analýze. S touto problematikou se seznámíme v předmětu Programování 3 a především pak v předmětu Programování 4. 1.1.2 Návrh projektu Tato fáze programování je nejdůležitější. Programátor zde vytváří vlastní projekt, který zatím není vázán na konkrétní programovací jazyk. V předmětu Programování 1 jsme se seznámili s tvorbou algoritmů. Jednalo se vždy o hierarchické seskupení dílčích činností, které se postupně vykonávaly tak, že v konečném počtu kroků jsme od vstupních dat jednoznačným způsobem dospěli k požadovanému výsledku. Pro grafické znázornění algoritmů jsme s výhodou používali zápis pomocí vývojových diagramů. V podstatě jsme tak řešili strukturovaný návrh projektu. Vytvářené algoritmy nebyly vázány na žádný programovací jazyk, neboť pro konstrukci projektu je programovací jazyk v drtivé většině případů nepodstatnou záležitostí. V navazujících předmětech se seznámíme s objektově orientovaným návrhem projektu. Jedná se o zcela jiný myšlenkový přístup, který je založen na objektové analýze problému. Mezi hlavní výhody objektově orientovaného programování patří snadná editace již realizované aplikace, editace dílčích objektů, přidávání nových objektů a další rozvoj aplikace. Je zřejmé, že i strukturovaně vytvářené aplikace lze dále rozšiřovat a inovovat. Ale především u rozsáhlých aplikací to bývá složitější, než u projektů vytvářených objektově. 1.1.3 Implementace projektu Zde se jedná o zapsání projektu v konkrétním programovacím jazyku. Je to rutinní záležitost, při které využíváme znalost daného programovacího jazyku, jeho možnosti a syntaxi. V této fázi již žádným zásadním způsobem neovlivňujeme strukturu vytvářeného projektu.
2/5
Vladimír Jehlička
Programování 2 Strukturované programování
1.2
Sekvenční programování
Při vytváření prvních jednoduchých programů psali programátoři příslušný kód ve zvoleném programovacím jazyku: assembler, basic, algol, fortran atd. Jednalo se o kratší či delší sekvenci příkazů, mezi kterými bylo možno pomocí vložených podmínek se rozhodovat o dalším postupu řešení. Zásadní nevýhodou tohoto systému byla možnost kdykoliv předat postup řešení do libovolného místa programu. K tomu byl používán příkaz „go to ...“. Tyto nekontrolovatelné skoky zdánlivě usnadňovaly práci programátorům, ale ve skutečnosti nesmírně komplikovaly přehlednost vytvářených programů a jakoukoliv jejich další editaci. 1.3
Strukturované programování
Zásadní zpřehlednění programových kódů souviselo s naprostým zákazem skoků typu „go to ...“ a rozdělením programu do dílčích bloků. Každý programový blok má svůj vstup a svůj výstup. Jednotlivé bloky lze vzájemně seskupovat tak, že jsou vykonávány postupně za sebou. Program můžeme větvit a na základě splnění či nesplnění zadané podmínky je v dalším kroku vykonán ten či onen blok. Kromě toho bloky je možno vkládat do sebe, případně je konstruovat jako samostatné funkce a podprogramy. Pro grafické znázornění algoritmů byly vytvořeny strukturogramy, které neumožňovaly vytvářet skoky typu „go to ...“. Strukturogramy měly jasně definované vstupy a výstupy jednotlivých bloků. Nikdy však nebyly popsány jakoukoliv uzákoněnou normou. V programátorské praxi se neuchytily a postupem času zcela zanikly. Pro zápisy algoritmů využíváme vývojové diagramy, které slouží nejenom k popisu daného algoritmu, ale jedná se o významnou pomůcku pro vytváření hierarchichy strukturovaných programů. Vývojové diagramy jsou definovány mezinárodní normou, ve které jsou popsány sambolické značky diagramů a způsob jejich použití. S tím jsme se seznámili v předmětu Programování 1. Základní vývojový diagram jednoduchého programu lze znázornit schématem uvedeným na obr. 1.1.
3/5
Vladimír Jehlička
Programování 2 Strukturované programování Začátek Čtení vstupních dat
Výpočty
Psaní výsledků výpočtů
Konec Obr. 1.1 – Vývojový diagram jednoduchého programu Po spuštění programu dojde k načtení vstupních dat, které si můžeme představit např. zadáním hodnot jednotlivých dat uživatelem z klávesnice počítače. Případně se může jednat o načítání dat z paměťových médií počítače. Následují výpočty a psaní výsledků. Výsledky mohou být zobrazeny na monitoru počítače, ale také mohou být uloženy do paměti počítače. Tím je práce programu ukončena. 1.4
Objektově orientované programování
Této problematice jsou věnovány předměty Programování 3 a Programování 4. Ale již nyní si můžeme říci, že základní myšlenka objektově orientovaného programování vychází z pozorování okolního světa a ze snahy o jeho popsání. Svět kolem nás se skládá z jednotlivých prvků, které jsou v rámci programování označovány jako objekty. Základem popisu reálného světa je existence volné sítě vzájemně komunikujících objektů. Každý objekt má svoje vlastnosti a má schopnost reagovat na určité události. Například každý konkrétní pes má svoji výšku, váhu a může chodit, běhat, štěkat atd. Vedle toho každý konkrétní automobil má svoji šířku, délku, výšku a může svítit, troubit, jezdit atd. U každého konkrétního 4/5
Vladimír Jehlička
Programování 2 Strukturované programování
psa můžeme vysledovat jeho rodokment, popsat jeho předky a zabývat se zděděním vlastností předků. Obdobně se ale můžeme zabývat i vývojem automobilů a přenosem některých konstrukčních prvků ze starších modelů do modelů nových. Ale tím vším se budeme zabývat až v následujících předmětech Programování 3 a Programování 4.
5/5