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
Pergoly a střechy Brno

Vývojové diagramy - 6. díl

Google       Google       29. 7. 2011       46 858×

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 Konference: Moderní informační systémy podporují automatizaci

Konference: Moderní informační systémy podporují automatizaci

Současná situace v šíření onemocnění Covid-19 klade na řadu firem nové nároky a mnohé z nich jsou nyní více než kdy jindy závislé na nejmodernějších informačních technologiích. Proto i v oblasti podnikových informačních systémů vidíme rostoucí důraz na automatizaci nebo na důslednou integraci. Také o těchto trendech se bude mluvit na konferenci Firemní informační systémy, která se koná 24.9.2020 v pražském Kongresovém centru Vavruška na Karlově náměstí.

Reklama
Reklama
Obrázek ke článku Nebezpečí ukrytá v USB: z nuly na škvarek za pět sekund

Nebezpečí ukrytá v USB: z nuly na škvarek za pět sekund

Za cenu šesti dolarů lze celkem bez obtíží koupit nový, líbivě vyhlížející flash disk. Přidaná hodnota, které se vám spolu s ním dostane, už tak moc líbivá není. To, co se před pár sekundami tvářilo jako externí disk, se po připojení k počítači změní v důmyslné elektrické křeslo, které vaše zařízení v onen příslovečný škvarek promění za pár sekund. Cílovou skupinou pro koupi takových zařízení by mohli být záškodníci, kteří by tímto způsobem osnovali pomstu třeba vůči záletnému partnerovi. 

Obrázek ke článku Znalosti, dovednosti i prestižní titul MBA: Jde to i moderně a online

Znalosti, dovednosti i prestižní titul MBA: Jde to i moderně a online

Snad nikdy není špatná příležitost na investici do hodnotného vzdělání. Obzvlášť v případě, že absolvent dovede teoretické poznatky přetavit v praktické dovednosti, využitelné při řešení problémů i v komunikaci. Právě na to se specializuje studijní program MBA Řízení informačních technologií, vyučovaný na Business Institutu.

Obrázek ke článku Coding Bootcamp Praha: Obor IT krize nepoznamenala, žádaní jsou weboví vývojáři

Coding Bootcamp Praha: Obor IT krize nepoznamenala, žádaní jsou weboví vývojáři

Pandemie Covid-19 otřásla trhem práce v základech. Dopady krize pocítilo celkově až 45 % zaměstnanců. Není divu, že čím dál větší jistotu přináší obor IT. Ten zůstal krizí téměř nepoznamenán a při nutnosti začít dělat věci na dálku se ještě více ukázalo, jak moc mnohé firmy kvalitní IT potřebují. Do IT nyní přicházejí začátečníci, kteří v něm vidí lukrativní budoucnost a jistotu, ale i freelanceři a zaměstnanci z oborů zasažených krizí

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