Cyklus for 1 Obecn tvar for vraz 1

Cyklus for (1) • Obecný tvar: for (výraz 1; výraz 2; výraz 3) příkaz • Funkce: – výše uvedený příkaz je ekvivalentní konstrukci: výraz 1; while (výraz 2) { příkaz výraz 3; } 2021 -03 -12 1

Cyklus for (2) • Typické použití cyklu for: – výraz 1: používán pro inicializaci (řídící) proměnné cyklu – výraz 2: testuje, zda má cyklus pokračovat nebo skončit – výraz 3: aktualizuje (řídící) proměnnou cyklu • Poznámka: – libovolný z výrazů v cyklu for může být vynechán – středníky oddělující výrazy a kulaté závorky musí být uvedeny vždy 2021 -03 -12 2

Cyklus for (3) • Příkaz for se provádí následovně: 1. je-li výraz 1 uveden, vyhodnotí se a jeho hodnota se potlačí 2. je-li výraz 2 uveden, vyhodnotí se jako řídící výraz: • jestliže je výsledek nulový, pak provádění cyklu for končí a program pokračuje dalším příkazem • jestliže je výsledek nenulový (nebo výraz 2 není uveden), pak se provede příkaz 3. je-li výraz 3 uveden, vyhodnotí se a jeho hodnota se potlačí 4. pokračuje se bodem 2 2021 -03 -12 3

Cyklus for (4) • Poznámka: – Standard C 99 dovoluje v části inicializace (výraz 1) provést i definici řídící proměnné cyklu – rozsah platnosti této proměnné je potom omezen pouze na prováděný příkaz – příklad: for (int cis = 1; cis < 11; cis++) printf(”%dn”, cis); 2021 -03 -12 4

Příkaz break • Obecný tvar: break; • Funkce: – způsobí předčasné ukončení cyklu (for, while nebo do), který je momentálně prováděn – program dále pokračuje příkazem, který následuje bezprostředně za cyklem • Poznámka: – příkaz break je možné použít také k předčasnému ukončení příkazu switch 2021 -03 -12 5

Příkaz continue • Obecný tvar: continue; • Funkce: – ukončí právě prováděný průchod cyklem (for, while nebo do) – řízení se předá okamžitě na konec cyklu – u cyklu: • while a do: vyhodnotí výraz (podmínku) za klíčovým slovem while a poté pokračuje, resp. nepokračuje novým průchodem • for: provede výraz 3, testuje výraz 2 a poté pokračuje, resp. nepokračuje novým průchodem 2021 -03 -12 6

Poznámka • Příkazy break a continue jsou v souvislosti s cykly vždy nahraditelné • Jejich použití může často vést k nepřehledným programům • V našich programech budeme používat pouze příkaz break pro předčasné ukončení příkazu switch 2021 -03 -12 7

Příkaz goto (1) • Obecný tvar: goto identifikátor; • Funkce: – umožňuje provést nepodmíněný skok na libovolný příkaz v rámci jedné funkce – identifikátor musí být shodný s pojmenovaným návěštím u některého příkazu v rámci současné funkce – způsobí předání řízení na místo označené návěštím • Poznámka: – návěští se od příkazu odděluje symbolem : 2021 -03 -12 8

Příkaz goto (2) • Poznámky: – v praxi je příkaz goto vždy nahraditelný – neuvážené používání příkazu goto vede mnohdy ke značně nepřehledným programům – příkaz goto se používá pouze ve výjimečných případech, např. přerušení výpočtu nějaké hluboce zanořené struktury (dvou a více cyklů naráz) – v našich programech příkaz goto používat nebudeme 2021 -03 -12 9

Příkaz goto (3) • Příklad: for (. . . ) {. . . if (chyba) goto oprava; . . . }. . . oprava: příkaz 2021 -03 -12 10

Algoritmus (1) • Nelze přesně definovat • Posloupnost operací, která pro přípustná vstupní data vede po konečném počtu kroků k odpovídajícím výsledkům • Vlastnosti algoritmu: – obecnost (hromadnost) – determinovanost – resultativnost – efektivita 2021 -03 -12 11

Algoritmus (2) • K zápisu algoritmu v nějakém programovacím jazyce slouží jeho příkazy • Při definici konkrétního příkazu je nezbytné popsat jeho: – syntaxi (obecný tvar): struktura a způsob jeho vyjádření v daném jazyce – sémantiku (funkci): význam daného příkazu, tj. akci, kterou tento příkaz provádí 2021 -03 -12 12
- Slides: 12