{{indexmenu_n>4}}
====== 4 - Jednoduché programy s cykly a funkcemi ======
* pro vyučující: [[courses:b0b36prp:internal:tutorialinstruction:04|]]
===== Procvičovaná témata =====
* [[https://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B|operátory]]
* [[courses:b0b36prp:tutorials:control|řídicí struktury]]
* rozdělení programu do funkcí
===== Úkoly =====
* Vypište všechna sudá čísla od 1 do $n$, kde $n$ zadá uživatel na standardním vstupu
* Vypište součin všech čísel vypsaných v předchozím kroku
* Vypište řadu $n$ čísel ve tvaru:
=== ===
1, -1, 1, -1, 1, -1, ...
===== =====
* Napiště program který umožní výpočet Ludolfova čísla jako součtu Leibnizovy řady
$$
\qquad\pi = 4 \sum_{k=0}^\infty\dfrac{(-1)^k}{2k+1} = \dfrac{4}{1}-\dfrac{4}{3}+\dfrac{4}{5}-\dfrac{4}{7}+\dfrac{4}{9}-\dfrac{4}{11}+\cdots
$$
* Vytvořte funkci pro výpočet Ludolfova čísla pomocí $n$ prvků Leibnizovy řady
* Zjistěte kolik členů řady je potřeba zahrnout, abychom dostali Ludolfovo číslo s přesností na $10^{-6}$.
* Vypište v dekadické, hexadecimální a binární reprezentaci znak zapsaný na standardním vstupu uživatelem (hint: pro výpis v binárním tvaru použijte bitové operátory)
=== ===
Standardní vstup:
a
Standardní výstup:
97
0x61
b01100001
===== =====
/*
===== Vnořené podmínky =====
- Zopakování if a doplnění ... TBD příklad (možná přesunout do lab02)
===== Cykly - syntaxe =====
==== For cyklus ====
for (inicializace; podmínka; změna) {
tělo cyklu
}
* //Inicializace// u ''for'' cyklu se provede pouze před prvním provedením těla cyklu.
* //Podmínka// je ověřována před každým provedením těla cyklu.
* //Tělo cyklu// se provede pouze, pokud je podmínka splněna.
* //Změna// se provede vždy až po provedení těla cyklu. Použití preinkrementu či postinkrementu tuto vlastnost neovlivní.
* U for cyklu lze vynechat libovolnou část příkazu for. Cyklus for(;;) bude nekonečný.
=== Příklad ===
Výpis čísel od 1 do 10.
for (int i = 1; i <= 10; i = i + 1) {
printf("%d, ", i);
}
==== While cyklus ====
while(podmínka) {
tělo cyklu
}
Nejprve se otestuje platnost podmínky. Je-li splněna, provede se tělo cyklu a poté se opět otestuje platnost podmínky. V případě nesplnění podmínky při prvním testování, neproběhne tělo cyklu ani jednou.
=== while cyklus - příklad ===
Výpis čísel od 1 do 10.
int i = 1;
while (i <= 10) {
printf("%d, ", i);
i = i + 1; // nebo i++;
}
==== Do - while cyklus ====
do {
tělo cyklu
} while (podmínka);
* Nejprve se provede //tělo cyklu// a teprve po jeho prvním provedení se otestuje podmínka. Znovu se tělo cyklu provede pouze v případě platnosti podmínky.
* Narozdíl od while cyklu se tělo do - while cyklu provede alespoň jednou.
=== do - while cyklus - příklad ===
Jaký je rozdíl mezi while a do-while?
int i = 1;;
do {
printf("%d, ", i);
i++;
} while ( i <= 10 );
*/
/*
==== Speciální příkazy pro cykly ====
* Příkaz **''break''** ukončí provádění cyklu a pokračuje zpracováním kódu za tělem cyklu.
* Příkaz **''continue''** ukončí provádění těla cyklu a v případě splnění podmínky znovu zahájí zpracování těla cyklu.
*/