Seminární skupina IB001 Úvod do programování skrze C (skupiny 27 a 28)

Týden 4

Blok příkazů

V jazyce C je možné sloučit do bloku příkazy, které následují v programu přímo po sobě. V praxi se bloky využijí za řídícími konstrukcemi jako jsou podmíněný příkaz nebo cykly.
Blok se v jazyce C zapíše pomocí složených závorek takto:

{
    float base, exp;
    printf("Zadejte zaklad: ");
    scanf("%g", &base);
    printf("Zadejte exponent: ");
    scanf("%g", &exp);

    float result = pow(base, exp);
    printf("%.4f ^ %.2f = %.4f", base, exp, result);
}

Podmíněný příkaz if - else

Pokud chceme některou část programu provést jen pokud je splněna nějaká podmínka, můžeme v jazyce C použít podmíněný příkaz if. Takto můžeme v programu provést jeden příkaz nebo blok příkazů. Navíc je možné provést příkazy, když podmínka splněna není, k tomu se užije klíčové slovo else.
Zápis podmínky může vypadat takto:

int num;
/* Nacteni num ze vstupu */
if (num > 0)
    printf("Uzivatel zadal kladne cislo");

Se zápisem v bloku a s použitím větve else by vypadal stejný program takto:

int num;
/* Nacteni num ze vstupu */
if (num > 0) {
    printf("Uzivatel zadal kladne cislo");
} else {
    printf("Potrebuji kladne cislo");
}

Cyklus while a do - while

V programech je často potřeba vykonávat některé příkazy opakovaně mnohokrát po sobě. Může to být například při výpočtu algoritmu, který probíhá ve stále se opakujících krocích - výpočet minima/maxima řady čísel nebo algoritmus pro výpočet největšího společného dělitele dvou čísel. Základní konstrukcí pro zápis cyklů v jazyce C je while příkaz.
Níže je uveden příklad užití cyklu k výpisu čísel od 0 do n, kde n < 5. Před provedením těla cyklu se vyhodnotí platnost podmínky ve while. Pokud podmínka platí, je tělo cyklu provedeno, v opačném případě je cyklus opuštěn a program pokračuje dalšími příkazy.

int count = 5;
/* Nacteni count ze vstupu */
int i = 0;
while (i < count)
{
    printf("Hodnota i je %d", i);
    i++;
}

Někdy může být výhodné tělo cyklu provést alespoň jednou a až poté vyhodnotit podmínku pro opakování cyklu. K takovému účelu se v C používá konstrukce do - while.
Takto je možné opakovaně načítat číslo, dokud nesplňuje danou podmínku:

int n;
do
{
    printf("Zadejte kladne cislo: ");
    scanf("%d", &n);
} while (n <= 0); 

Za závorkou, která uzavírá podmínku do - while se vždy píše středník.