1 / 29

Řízení běhu programu

Verze 2009.01. Řízení běhu programu. 5. A1PRG - Programování – Seminář Ing. Michal Heczko heczko@fai.utb.cz. Agenda. Opakování – logické a relační operátory Podmínka if Větvení if – else if Přepínač switch Cykly for , while a do-while Příkazy break a continue Příkaz goto.

donat
Download Presentation

Řízení běhu programu

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Verze 2009.01 Řízení běhu programu 5 A1PRG - Programování – Seminář Ing. Michal Heczko heczko@fai.utb.cz

  2. Agenda • Opakování – logické a relační operátory • Podmínka if • Větvení if – else if • Přepínač switch • Cykly for, while a do-while • Příkazy break a continue • Příkaz goto

  3. Opakování • LOGICKÉ HODNOTY • v jazyku C není definován logický datový typ • používá se datový typ int • 0 … znamená NE • 1 … znamená ANO

  4. Opakování • Relační operátory • slouží pro porovnání dvou hodnot • výsledek: logická hodnota

  5. Opakování • Logické operátory: • Negace • Logický součin • AND – a zároveň • Logický součet • OR – a nebo

  6. Podmínka • základní příkaz sloužící k větvení toku programu • obecná syntaxe: if (<podmínka>) <příkaz>; if (<podmínka>) <příkaz>; else <příkaz>;

  7. Podmínka if (<log_výraz>) <příkaz>; if (<log_výraz>) <příkaz>; else <příkaz>; • Logický výraz, dle kterého se rozhoduje je umístěn v závorkách za příkazem if. • Následuje příkaz, který se provede, pokud je výsledek logického výrazu 1. • Nepovinná část za příkazem else obsahuje příkazy, které se provedou, pokud je výsledek logického výrazu 0.

  8. Podmínka Příklad 1: if (a > b) x = a; Příklad 2: if (a > b) x = a; else x = b;

  9. Podmínka Příklad 3: if (a > b) { y++; x = a; } else { y--; x = b; }

  10. Podmínka Příklad 5: Pozor na nejednoznačnost!!! if (n > 0) if (a > b) z = a; else z = b;

  11. Podmínka Příklad 5: Dle normy se else váže k vnitřní podmínce! if (n > 0) if (a > b) z = a; else z = b;

  12. Podmínka if (n > 0) { if (a > b) { z = a; } else { z = b; } }

  13. Použití podmínky pro mnohonásobné větvení • Konstrukce: if (<výraz>) <příkaz> else if (<výraz>) <příkaz> else if (<výraz>) <příkaz> … else <příkaz>

  14. Použití podmínky pro vícecestné větvení • Příklad: if (počet_bodu >= 90) printf(“Vase znamka je A”); else if (počet_bodu >= 80) printf(“Vase znamka je B”); else if (počet_bodu >= 70) printf(“Vase znamka je C”); else if (počet_bodu >= 60) printf(“Vase znamka je D”); else if (počet_bodu >= 50) printf(“Vase znamka je E”); else printf(“Vase znamka je F”);

  15. Přepínač • Příkaz pro vícecestné větvení programu. • Testuje, zda výraz odpovídá jedné z několika konstantních celočíselných hodnot.

  16. Přepínač • obecná syntaxe: switch (<výraz>) { case <konstantnívýraz>: <příkazy> case <konstantnívýraz>: <příkazy> … default: <příkazy> }

  17. Přepínač • Příkaz break • Tento příkaz slouží pro okamžité vyskočení s příkazu switch. • Alternativy příkazu switch slouží pouze jako návěstí. Pokud je splněna podmínka u daného návěstí a za jeho příkazy není uveden break, jsou provedeny příkazy u všech následujících návěstí.

  18. Cyklus for • Označovaný také jako cyklus se známým počtem průchodů. • Obecná syntaxe: for (<počátek>; <konec>; <iterace>) <příkazy>

  19. Cyklus for • Příklad 1: int i; for (i = 1; i <= 5; i++) { printf(“%d. pruchod cyklu\n”,i); }

  20. Cyklus for • Poznámka: Dle normy C99 je možné deklarovat proměnnou i v rámci cyklu for • Příklad 2: for (int i = 1; i <= 5; i++) { printf(“%d. pruchod cyklu\n”,i); }

  21. Cyklus for • Vnořené cykly – příklad: int i,j; for (i = 1; i <= 5; i++) { for (j = 1; j <= 5; j++) { printf("%02d\t",i*j); } printf("\n"); }

  22. Cyklus while • Tzv. cyklus s podmínkou na začátku. • Použití tam, kde neznáme počet iterací • Provádí se, dokud je výraz pravdivý (pokud je nepravdivý, neprovede se ani jednou). • Obecná syntaxe: while (<výraz>) <příkazy>

  23. Cyklus while • Příklad: int i = 1; while(i <= 5) { printf(“%d. pruchod cyklu\n”,i); i++; }

  24. Cyklus do • Tzv. cyklus s podmínkou na konci. • Použití tam, kde je potřeba alespoň jeden průběh. • Provádí se, dokud je výraz pravdivý (pokud je nepravdivý, neprovede se pouze jednou). • Obecná syntaxe: do <příkazy> while (<výraz>);

  25. Cyklus do • Příklad: int i = 1; do { printf(“%d. pruchod cyklu\n”,i); i++; } while(i <= 5);

  26. Příkaz break a continue • break • Okamžité vyskočené z příkazu switch nebo z cyklu. • continue • Použití u cyklů. Ukončí aktuální iteraci, ale následující iterace proběhnou,

  27. Příkaz goto • Skok na určité místo v programu. • Skok lze provést téměř libovolně (nelze však provést skok z funkce do funkce). • Není vhodné používat skoky! • Provedení skoku: goto <návěstí>; • Definice návěstí: <návěstí>:

  28. Příkaz goto • Příklad: int i = 1; zacatek_cyklu: printf("%d\n", i); i++; if (i <= 10) goto zacatek_cyklu;

  29. A1PRG-s 05. Řízení běhu … Děkuji za pozornost Ing. Michal Heczko heczko@fai.utb.cz 218/U3 Prezentace k dispozici na http://vyuka.fai.utb.cz

More Related