|
|
| (Nejsou zobrazeny 4 mezilehlé verze od 1 uživatele.) |
| Řádka 2: |
Řádka 2: |
| | | | |
| | | | |
| − | == Řídící struktury programovacích jazyků Java a PHP ==
| + | Procesor počítačů [[Von Neumannova architektura|von Neumannova typu]] provádí instrukce v takovém pořadí, v jakém jsou uloženy v operační paměti. Pokud chceme toto chování změnit, musíme použít speciální instrukci skoku. |
| | | | |
| − | Počítače von Neumannova typu provádí instrukce v takovém pořadí, v jakém jsou v operační paměti uloženy. Pokud chceme toto chování změnit, musíme použít speciální instrukci skoku. Ve [[Programovací_jazyky | vyšších programovacích jazycích]] se používají pro přehlednější zápis ustálené řídící struktury.
| + | Ve [[Programovací_jazyky | vyšších programovacích jazycích]] se používají pro přehlednější zápis ustálené řídící struktury. |
| | | | |
| − | Řídící struktury vyšších programovacích jazyků:
| + | Běžné řídící struktury vyšších programovacích jazyků jsou: |
| − | * podmíněný příkaz (<code>if</code>)
| + | |
| − | * cyklus <code>for</code>
| + | |
| − | * cyklus <code>while</code>
| + | |
| − | * cyklus <code>do-while</code>
| + | |
| − | * + větvení (příkaz <code>switch</code>)
| + | |
| | | | |
| − | Dále uvádíme základní popis použití nejběžnějších řídících struktur. Jsme si vědomi, že '''následující text je velmi zjednodušený!'''
| + | == Větvení == |
| | + | * Podle splnění podmínky pokračuje kód jednou z několika větví. |
| | | | |
| | + | * Podmíněný příkaz (<code>if-elseif-else</code>) |
| | | | |
| − | | + | if (hero.lives <= 0) { |
| − | | + | window.alert("Game over!") |
| − | == Podmíněný příkaz ==
| + | |
| − | | + | |
| − | === Zápis: ===
| + | |
| − | | + | |
| − | if (PODMÍNKA) PŘÍKAZ [ else PŘÍKAZ ]; | + | |
| − | | + | |
| − | * PODMÍNKA:
| + | |
| − | *: výraz, který vrací pravdivostní hodnotu (pravda nebo nepravda)
| + | |
| − | *: více o zápisu podmínek je v kapitole [[Podmíněný výraz]].
| + | |
| − | * PŘÍKAZ:
| + | |
| − | *: obvykle se jedná o ''''složený příkaz'''', tedy o posloupnost příkazů, ohraničenou složenými závorkami.
| + | |
| − | * větev <code>else</code>:
| + | |
| − | *: tento příkaz se provede, pokud podmínka '''není''' splněná.
| + | |
| − | *: tato část příkazu ale nemusí být vůbec uvedena.
| + | |
| − | | + | |
| − | === Příklady PHP === | + | |
| − | | + | |
| − | <pre>
| + | |
| − | if ($vek < 15) {
| + | |
| − | echo "POZOR! Přístupné až od 15 let!";
| + | |
| | } | | } |
| − | </pre> | + | |
| | + | * Příkaz <code>switch</code> |
| | | | |
| − | <pre>
| + | switch(varianta) { |
| − | if ($hotovost > $cena) { | + | case 1: return "Varianta A"; |
| − | $hotovost -= $cena;
| + | case 2: return "Varianta B"; |
| − | } else {
| + | case 3: return "Varianta C"; |
| − | die("Nákup nelze provést! Nemáme dostatek peněz.");
| + | |
| | } | | } |
| − | </pre>
| |
| − |
| |
| − | === Příklady Java ===
| |
| − |
| |
| − | if (vek < 15) {
| |
| − | System.out.println("POZOR! Přístupné až od 15 let!");
| |
| − | }
| |
| − |
| |
| − | if (zakaznik.getHotovost() > cena) {
| |
| − | zakaznik.zaplat(cena);
| |
| − | } else {
| |
| − | System.err.println("Nákup nelze provést! Nemáme dostatek peněz.");
| |
| − | }
| |
| − |
| |
| − |
| |
| − |
| |
| − |
| |
| − |
| |
| − | == Cyklus <code>for</code> ==
| |
| − |
| |
| − | === Zápis: ===
| |
| − |
| |
| − | for (INICIALIZACE; PODMÍNKA; ÚPRAVA_ČÍTAČE) PŘÍKAZ;
| |
| − |
| |
| − | Cyklus <code>for</code> je v PHP a Javě hodně obecný, obvykle se ale používá tak, že definujeme řídící proměnnou (třeba <code>i</code>), která postupně nabývá hodnot od 0 do maximální hodnoty. Pro každou hodnotu řídící proměnné pak provádíme příkaz, který obvykle tuto hodnotu nějak využívá.
| |
| − |
| |
| − | Řídící proměnné se někdy také říká „čítač“.
| |
| − |
| |
| − | * INICIALIZACE_ČÍTAČE:
| |
| − | *: příkaz, který se provede na začátku, před prováděním cyklu.
| |
| − | *: obvykle nastaví počáteční hodnotu řídící proměnné cyklu.
| |
| − | * ÚPRAVA_ČÍTAČE:
| |
| − | *: příkaz, který se provede po každém provedení PŘÍKAZU. Obvykle zvýší či sníží hodnotu řídící proměnné.
| |
| − | * PODMÍNKA:
| |
| − | *: výraz, který vrací pravdivostní hodnotu (pravda nebo nepravda)
| |
| − | *: více o zápisu podmínek je v kapitole [[Podmíněný výraz]].
| |
| − | * PŘÍKAZ:
| |
| − | *: obvykle se jedná o ''''složený příkaz'''', tedy o posloupnost příkazů, ohraničenou složenými závorkami.
| |
| − |
| |
| − | === Příklady PHP ===
| |
| − |
| |
| − | <pre>
| |
| − | for ($i = 0; $i < 15; $i++) {
| |
| − | echo "<p>Průchod číslo $i.</p>";
| |
| − | }
| |
| − | </pre>
| |
| − |
| |
| − | Tento příklad vlastně provede následující kód:
| |
| − |
| |
| − | <pre>
| |
| − | $i = 0;
| |
| − | echo "<p>Průchod číslo $i.</p>"; // $i == 0
| |
| − | $i++;
| |
| − | echo "<p>Průchod číslo $i.</p>"; // $i == 1
| |
| − | $i++;
| |
| − | .
| |
| − | :
| |
| − | :
| |
| − | echo "<p>Průchod číslo $i.</p>"; // $i == 13
| |
| − | $i++;
| |
| − | echo "<p>Průchod číslo $i.</p>"; // $i == 14
| |
| − | $i++;
| |
| − | </pre>
| |
| − |
| |
| − | Dále už je hodnota <code>$i == 15</code>, takže není splněna podmínka <code>$i < 15</code> a tedy se provádění cyklu ukončí.
| |
| − |
| |
| − |
| |
| − | === Příklady Java ===
| |
| − |
| |
| − | for (int i = 0; i < 15; i++) {
| |
| − | System.out.println("Průchod číslo "+i+".");
| |
| − | }
| |
| − |
| |
| − |
| |
| − |
| |
| − |
| |
| − | == Cyklus <code>for each</code> ==
| |
| − | * Pro průchod přes všechny prvky [[Java:_Kontejnery|kontejneru]] je lépe využít cyklus <code>for each</code>.
| |
| − | * Více viz: [[Java:_Kontejnery#Proch.C3.A1zen.C3.AD_kontejneru| Java: Kontejnery]].
| |
| − |
| |
| − | == Cyklus <code>while</code> ==
| |
| − |
| |
| − | === Zápis: ===
| |
| − |
| |
| − | while (PODMÍNKA) PŘÍKAZ;
| |
| − |
| |
| − | Cyklus <code>while</code> provádí zadaný PŘÍKAZ tak dlouho, dokud je splněna PODMÍNKA.
| |
| − |
| |
| − | * PODMÍNKA:
| |
| − | *: výraz, který vrací pravdivostní hodnotu (pravda nebo nepravda)
| |
| − | *: více o zápisu podmínek je v kapitole [[Podmíněný výraz]].
| |
| − | * PŘÍKAZ:
| |
| − | *: obvykle se jedná o ''''složený příkaz'''', tedy o posloupnost příkazů, ohraničenou složenými závorkami.
| |
| − |
| |
| − | Pozn.: Cyklus <code>for</code> jazyků Java a PHP lze přepsat pomocí cyklu <code>while</code> následujícím způsobem:
| |
| − |
| |
| − | INICIALIZACE;
| |
| − | while (PODMÍNKA) {
| |
| − | PŘÍKAZ;
| |
| − | ÚPRAVA_ČÍTAČE;
| |
| − | }
| |
| − |
| |
| − | === Příklady PHP ===
| |
| − |
| |
| − | <pre>
| |
| − | $i = 0;
| |
| − | while ($i < 15) {
| |
| − | echo "<p>Průchod číslo $i.</p>";
| |
| − | $i++;
| |
| − | }
| |
| − | </pre>
| |
| − |
| |
| − | Tento příklad vlastně provede následující kód:
| |
| − |
| |
| − | <pre>
| |
| − | $i = 0;
| |
| − | echo "<p>Průchod číslo $i.</p>"; // $i == 0
| |
| − | $i++;
| |
| − | echo "<p>Průchod číslo $i.</p>"; // $i == 1
| |
| − | $i++;
| |
| − | .
| |
| − | :
| |
| − | :
| |
| − | echo "<p>Průchod číslo $i.</p>"; // $i == 13
| |
| − | $i++;
| |
| − | echo "<p>Průchod číslo $i.</p>"; // $i == 14
| |
| − | $i++;
| |
| − | </pre>
| |
| − |
| |
| − | Dále už je hodnota <code>$i == 15</code>, takže není splněna podmínka <code>$i < 15</code> a tedy se provádění cyklu ukončí.
| |
| − |
| |
| − | === Příklady Java ===
| |
| − |
| |
| − | int i = 0;
| |
| − | while (i < 15) {
| |
| − | System.out.println("Průchod číslo "+i+".");
| |
| − | i++;
| |
| − | }
| |
| − |
| |
| − |
| |
| − |
| |
| − | == Cyklus <code>do while</code> ==
| |
| − |
| |
| − |
| |
| − |
| |
| − |
| |
| − | == Příkaz <code>switch</code> ==
| |
| − |
| |
| − |
| |
| − |
| |
| − | == Cvičení ==
| |
| − |
| |
| − | === 1. Hodnoty funkce ===
| |
| − | * Vstup: čísla ''A'', ''B'' a ''K''.
| |
| − | * Berte hodnoty funkce ''y = 1/2 x^2 - 5'' v rozsahu hodnot ''x'' z intervalu <''A'';''B''> s krokem ''K''.
| |
| − | * Vypište hodnoty ''x'', ve kterých je hodnota ''y'' v intervalu <-2;2>.
| |
| − |
| |
| − | === 2. Průchod pole ===
| |
| − | * Vstup: číslo ''K'' a pole kladných čísel ''P''.
| |
| − | * Projděte hodnoty čísel v poli ''P''.
| |
| − | * Pokud je hodnota dělitelná číslem ''K'', zapište na odpovídající pozici v poli ''P'' číslo ''-1''.
| |
| − |
| |
| | | | |
| | + | * Více viz [[Větvení]]. |
| | | | |
| | | | |
| − | == Zdroje: == | + | == Cykly == |
| − | # The Java Tutorials [online]. 1995, 2011 [cit. 2011-06-07]. ''Control Flow Statements''.
| + | * Zadaný kód se opakuje, dokud je splněna podmínka. |
| − | #:Dostupné z WWW: [http://download.oracle.com/javase/tutorial/java/nutsandbolts/flow.html <http://download.oracle.com/javase/tutorial/java/nutsandbolts/flow.html>].
| + | * Cyklus <code>for</code> |
| − | # ARCANIS. Výuka PHP a MySQL [online]. Třeboň : 2008 [cit. 2011-06-07]. ''Řídící struktury''.
| + | * Cyklus <code>for each</code> |
| − | #:Dostupné z WWW: <[http://arcanis.argon.cz/docs/seminarka1/index.php?incl=lekce_5 http://arcanis.argon.cz/docs/seminarka1/index.php?incl=lekce_5]>.
| + | * Cyklus <code>while</code> |
| − | # ARCANIS. Výuka PHP a MySQL [online]. Třeboň : 2008 [cit. 2011-06-07]. ''Cykly''.
| + | * Cyklus <code>do-while</code> |
| − | #:Dostupné z WWW: <[http://arcanis.argon.cz/docs/seminarka1/index.php?incl=lekce_6 http://arcanis.argon.cz/docs/seminarka1/index.php?incl=lekce_6]>.
| + | |
| | | | |
| − | ; Související stránky:
| + | * Více viz [[Cykly]]. |
| − | * [[Programovací_jazyky]] | + | |
| − | * [[Java:_Kontejnery#Proch.C3.A1zen.C3.AD_kontejneru]]
| + | |