Vývojové diagramy - 6. díl
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vývojové diagramy - 6. dílVývojové diagramy - 6. díl

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

Vývojové diagramy - 6. díl

Google       Google       29. 7. 2011       45 767×

V tomto dílu zakončíme téma podmínky složitějšími příklady, na kterých si ukážeme, že podmínek může být ve vývojové diagramu více.

Reklama
Reklama

Podmínky se používají na řízení toku programu, určujeme jimi, kudy se bude program ubírat dále. Ukázky, které jsou v předchozím dílu, by snadno mohly vést k mylnému dojmu, že ve vývojovém diagramu může být pouze jedna podmínka. Ve vývojovém diagramu není žádné omezení na počet a kombinace podmínek. Složitější programy obsahují destíky, stovky, tisíce,… podmínek. A stejně tak složitější vývojové diagramy mohou obsahovat více podmínek. V tomto dílu už nebudou u vývojových diagramů tabulky na průchody – můžete si je zkusit vytvořit sami.

Hledání minima

Prvním příkladem je hledání minima ze tří zadaných čísel. Zadání tohoto příkladu zní: najděte minimální číslo ze tří zadaných. Na vstupu tedy budou tři čísla, která zadá uživatel. Výstupem bude vypsané číslo, které je nejmenší (zadá-li uživatel 1, 2, 3, tak výsledkem algoritmu musí být vypsání čísla 1). Je více způsobů, jak zadanou úlohu řešit. Vzhledem k tomu, že nehledáme optimální nebo nejrychlejší řešení, ale pouze si demonstrujeme algoritmy s použitím podmínek, tak použijeme metodu „porovnání každý s každým“. Z těchto porovnání je samozřejmě možné některá vynechat. Pokud bude platit, že A < B, tak již víme, že A je menší než B. Dále tedy stačí A porovnat s C a B již s C porovnávat nemusíme, protože víme, že A je menší (jenom připomínám, že hledáme nejmenší číslo).

Výsledný vývojový diagram je na obrázku. Nejprve se tedy porovná A s B. Podle výsledku tohoto porovnáví se buď C porovnává s A (pokud předchozí podmínka byla splněna, neboli A je opravdu menší než B), nebo se C porovnává s B (v opačném případě). Pokud bychom stejnou metodu použili i pro více vstupních hodnot, tak by nám strom vývojového diagramu utěšeně rostl. Proto se častěji používá metoda s uloženým lokálním minimem (maximem), kterou si ukážeme  některém z následujícíh dílů.

Kvadratická funkce

Druhý příklad je na výpočet reálných kořenů kvadratické rovnice. Zadání úlohy je následující: vytvořte algoritmus pro výpočet reálných kořenů kvadratické rovnice, která je zadaná koeficienty A, B, C (dle vzorce Ax2 + Bx + C = 0). Na vstupu od uživatele dostaneme tři hodnoty (A, B, C) a výsledkem budou vypočtené kořeny.

Toto je první úloha, ve které se zmíním o kontrole vstupu od uživatele. V reálných programech je nutné vstup od uživatele kontrolovat vždy. Tam, kde váš program bude očekávat číslo, uživatel jistě zadá slovo „pokus" apod. Kvadratická rovnice je kvadratická pouze v případě, že A je nenulové. V případě, že A je nulové, pak se jedná o lineární rovnici a tu neřešíme. Při zadání A = 0 musí být výsledkem algoritmu hlášení, že zadané koeficienty netvoří kvadratickou rovnici.

Dále postupujeme přes výpočet diskriminantu. Vzorec pro výpočet diskriminantu je: D = B2 - 4AC. Řešení kvadratické rovnice v oboru reálných čísel je pouze v případě, že vypočtený diskriminant není záporný. To bude druhá podmínka v algoritmu. V případě záporného algoritmu nemá kvadratická rovnice řešení (v oboru reálných čísel). Pokud není diskriminant záporný, pak je možné vypočítat kořeny a vypsat je.

Jednoduchá kalkulačka

Posledním příkladem je jednoduchá kalkulačka. Zadání je následující: vytvořte algoritmus pro jednoduchou kalkulačku, která bude umět načíst 2 operandy a operátor (+, -, ×, ÷), vypočítat výsledek a vypsat ho. Na vstupu od uživatele tedy budou 2 čísla a operátor (znak), který bude signalizovat operaci, která se má provést. Musíme tedy vytvořit rozhodovací strom, kde budeme kontrolovat, jestli se jedná o jednu z podporovaných operací, a pokud ano, tak provedeme výpočet. V případě, že zadaný operátor nebude mezi podporovanými, vypíšeme hlášení, že se nejedná o podporovanou operaci (kontrola vstupu od uživatele).

Vzhledem k tomu, že mezi vybranými operátory je i dělení, tak musíme (stejně jako ve 4. dílu) kontrolovat, jestli by nedošlo k dělení nulou. Před samotným dělením tak musí být podmínka, která této variantě zabrání, a místo chyby programu (tak by dělení nulou v programu končilo) zobrazíme uživateli hlášení, že nulou nelze dělit. Nakonec vypíšeme výsledek, který jsme vypočítali.

Krátká poznámka na konec. V této úloze by se dala s výhodou použít podmínka s více větvemi (switch), kde se každá větev prochází pro přesně danou hodnotu proměnné v podmínce. V našem případě by v podmínce bylo pouze oper a jednotlivé větve by byly označené +, -, ×, ÷. V tomto seriálu takto zapsanou podmínku používat nebudeme.

Tím tento díl zakončíme a příště na nás čekají cykly.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
8 hlasů
Google
Autor se věnuje programování za peníze :)

Nové články

Obrázek ke článku Open source neznamená „zdarma“

Open source neznamená „zdarma“

Mnoho společností po celém světě, univerzity, vládní organizace a jim podobné dnes používají open source technologie k vytvoření vlastních webových stránek. Tyto technologie se používají čím dál tím více. Jednoduše proto, že je řada poskytovatelů nabízí zcela zdarma. Je to ale opravdu to správné řešení pro všechny? 

Reklama
Reklama
Obrázek ke článku Rádi sledujete obsah streamovacích služeb? Dejte si pozor na pirátské verze Mandaloriana a Netflixu

Rádi sledujete obsah streamovacích služeb? Dejte si pozor na pirátské verze Mandaloriana a Netflixu

Streamovací služby a jejich obsah se v uplynulých měsících těšily velkému zájmu uživatelů, kteří se při pobytu v karanténě chtěli zabavit sledováním filmů a seriálů. Toho bleskově zneužili hackeři, kteří pod názvy oblíbených streamovacích platforem a jejich obsahu maskovali škodlivé soubory. Nejčastěji používali jako návnadu Netflix a seriál The Mandalorian. 

Obrázek ke článku Bionické ruce mění lidem životy. Konference INSPO ukázala nejnovější technologie

Bionické ruce mění lidem životy. Konference INSPO ukázala nejnovější technologie

Bionické myoprotézy rukou jsou ukázkou pokroku, který udělaly za posledních dvacet let technologie pro lidi se zdravotním postižením. Dnešní protézy, které fungují na principu snímání svalových vzorců, umožňují uživatelům operovat s křehkými předměty či provádět úkony složité na kooperaci různých částí těla – ať už jde o hru na hudební nástroje, zavazování tkaniček, nebo třeba pití ze skleničky. Na 20. ročníku konference INSPO se budou zájemci moci naživo seznámit nejen s takzvanou myorukou, ale rovněž s jedním z jejích uživatelů. 

Obrázek ke článku Využití .htaccess na malém webu

Využití .htaccess na malém webu

V dnešní době existuje spoustu cms, které mnohdy ale vůbec nepotřebujeme a stačila by nám pouze základní funkčnost k úpravě url, přesměrování. K tomuto účelu je ideální .htaccess soubor, který nám se všemi těmato úpravami umí pomoct.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý