Programové struktury

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Cyklus)
(Větvení)
Řádka 28: Řádka 28:
  
  
* '''Neúplný podmíněný příkaz'''
+
* '''1) Neúplný podmíněný příkaz'''
 
[[Soubor:neuplny_podm_prikaz.jpg]]  
 
[[Soubor:neuplny_podm_prikaz.jpg]]  
  
Řádka 35: Řádka 35:
 
if (x > 0) MessageBox.Show("Kladné číslo");</pre>
 
if (x > 0) MessageBox.Show("Kladné číslo");</pre>
  
* '''Úplný podmíněný příkaz'''
+
* '''2) Úplný podmíněný příkaz'''
 
[[Soubor:uplny_podm_prikaz.jpg]]
 
[[Soubor:uplny_podm_prikaz.jpg]]
  
Řádka 48: Řádka 48:
 
MessageBox.Show("Není přirozené číslo");
 
MessageBox.Show("Není přirozené číslo");
 
}</pre>
 
}</pre>
 
  
 
== Cyklus ==
 
== Cyklus ==

Verze z 21. 4. 2012, 13:42

  • způsob zápisu algoritmu pomocí VD
  • událostní funkce
  • obecná funkce, objektová metoda, předávání parametrů funkci, návratová hodnota
  • binární větvení
  • cyklus (podmíněný, s definovaným počtem opakování)
  • objekt
  • příklady programů ve vybraném jazyce


Obsah

Strukturované programování (strukturovaný programovací jazyk)

  • označuje v informatice programovací techniku, kdy se implementovaný algoritmus rozděluje na dílčí úlohy (tzn. na procedury či funkce, které se spojují v jeden celek). Na strukturované programování lze nahlížet jako na imperativní programování za využití vybraných řídicích. U strukturovaného programování se vyhýbáme řídicímu příkazu skoku.


  • Strukturované programování definuje, že se program může skládat pouze z následujících čtyř struktur:
    • sekvence: provádí posloupnost příkazů jeden po druhém
    • větvení: jeden nebo více příkazů je vykonán v závislosti na stavu programu (obvykle vyjadřováno klíčovými slovy if-else)
    • cyklus: příkazy jsou prováděny do té doby, dokud program nedosáhne nějakého stavu (obvykle vyjadřováno klíčovými slovy while, for)
    • podprogram: příkazy jsou shromažďovány do samostatného bloku, který má své jméno a definuje vstupy a výstupy. Tento blok (funkci nebo proceduru) lze z jiné části programu volat jeho jménem (identifikátorem). Funkce s návratovou hodnotou lze zařadit do výrazu.
  • Nejznámějším důsledkem těchto zásad je snaha zabránit nebo v závislosti na programovacím jazyce alespoň omezit používání příkazu skoku. Programový kód nerespektující výše uvedené zásady se často hanlivě označuje jako „špagetový kód“.


Sekvence

  • Sekvence představuje posloupnost jednotlivých příkazů řazených v pořadí za sebou tak, jak mají být vykonány. Uzavřená sekvence se nazývá složený příkaz nebo blok.


Větvení

  • Větvení umožňuje volit další postup řešení na základě splnění nebo nesplnění určité podmínky. Z obecného pohledu ale nemusí být vždy testována podmínka, neboť rozhodující pro větvení je až logická hodnota (true/false), která je výsledkem zmíněné podmínky. Větvit lze tedy i jen na základě hodnoty v logické proměnné. Větvení může být realizováno jako neúplný podmíněný příkaz, úplný podmíněný příkaz nebo jako přepínač.


  • 1) Neúplný podmíněný příkaz

Neuplny podm prikaz.jpg

Nejprve je vyhodnocena podmínka P. Když je splněna, provede se sekvence S. Není-li podmínka splněna, nic se neprovádí a běh programu pokračuje dále.

int x;
if (x > 0) MessageBox.Show("Kladné číslo");
  • 2) Úplný podmíněný příkaz

Uplny podm prikaz.jpg

Nejprve je vyhodnocena podmínka P. Když je splněna, provede se sekvence S1. Není-li podmínka splněna, provede se sekvence S2.

int x;
if (x > 0)
{
MessageBox.Show("Je přirozené číslo");
}
else
{
MessageBox.Show("Není přirozené číslo");
}

Cyklus

  • Slouží k vyjádření opakujících se operací. Počet opakování může být předem zadán, nebo je odvozen od splnění některé dané podmínky. Existují tak tři základní druhy cyklu: cyklus s výčtem hodnot, cyklus s podmínkou na počátku a cyklus s podmínkou na konci.


  • 1) Cyklus s výčtem hodnot (cyklus s předepsaným počtem opakování)

Cyklus s vyctem hodnot.jpg

Tento druh cyklu se provádí tolikrát, kolikrát je opakování cyklu předepsáno. Předpis je dán definicí dolní hodnoty p, kroku a horní hodnoty p (případně podmínky, která musí být po celou dobu vykonávání cyklu splněna).

for (int i = 0; i < 10; i++) x[i] = nahoda.next(0, 11);


  • 2) Cyklus s podmínkou na začátku

Podm zac.jpg

Nejprve je vyhodnocena podmínka P. Je-li podmínka splněna, provedou se příkazy sekvencí C a následuje návrat na začátek cyklu. Tato se opakuje, pokud stále platí podmínka P. Z uvedeného je zřejmé, že v sekvenci S musí být operace, která mění některou z hodnot logického výrazu podmínky P. Kdyby tomu tak nebylo, cyklus by nemohl skončit. Při dosažení neplatnosti podmínky P cyklus skončí.

Je tedy zřejmé, že cyklus s podmínkou na začátku (někdy zvaný cyklus POKUD) nemusí proběhnout vůbec (je-li podmínka P nesplněna před vstupem do cyklu), nebo jednou, či n-krát. V případě chybného naprogramování cyklu může dojít k zacyklení, což nastane, pokud podmínka P platí stále.

int i=0;
while (i<10)
{
x[i] = nahoda.next(0, 11);
i++;
}


  • 3) Cyklus s podmínkou na konci

Podm kon.jpg

Nejprve je provedena sekvence S. Poté je vyhodnocena podmínka, pokud platí, sekvence S se znovu neprovádí a běh programu pokračuje za cyklem. Není-li podmínka splněna opakuje se sekvence S a to tak dlouho, dokud podmínka stále neplatí. Z uvedeného je zřejmé, že v sekvenci S musí být operace, která mění některou z hodnot logického výrazu podmínky P. Kdyby tomu tak nebylo, cyklus by nemohl skončit.

Tento cyklus se někdy nazývá cyklus DOKUD, čímž se myslí - dokud podmínka neplatí, opakuje se sekvence S. Tento cyklus proběhne vždy alespoň jednou. Četnost výskytu potřeby tohoto typu cyklu v programech je asi desetkrát menší než cyklu s podmínkou na začátku.

int i=0;
do
{
x[i] = nahoda.next(0, 11);
i++;
} while (i<10)


Podprogram

Podprogram.jpg

  • Podprogramy představují ucelené, relativně samostatné části programu, napsané v tomto programu jenom jednou, ale s možností využít je vícekrát v různých místech tohoto programu. Podprogram musí mít své jméno (identifikátor), jehož prostřednictvím se na něj v programu odvoláváme a seznam formálních parametrů, které slouží po jejich nahrazení skutečnými parametry při odvolání se na podprogram.
Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje