====== Iterace ====== Pojem **iterace** má v informatice dva hlavní významy podle toho, zda se díváme na samotný kód, nebo na proces vývoje softwaru. ===== 1. Iterace v programování (Cykly) ===== V programování je iterace jeden konkrétní krok (opakování) v rámci cyklu. Pokud cyklus proběhne desetkrát, říkáme, že proběhlo deset iterací. ==== Základní typy iteračních konstrukcí: ==== * **Cyklus for:** Používá se, když předem známe přesný počet iterací. * **Cyklus while:** Opakuje se, dokud je splněna určitá podmínka. * **Iterátor:** Speciální objekt, který umožňuje procházet prvky v datové struktuře (např. v seznamu nebo poli), aniž by programátor musel řešit vnitřní logiku indexování. ===== 2. Iterace ve vývoji (Iterativní vývoj) ===== V metodikách jako **Agile** nebo **Scrum** znamená iterace časový úsek (často 2–4 týdny, tzv. Sprint), během kterého se vyvine, otestuje a nasadí část softwaru. ==== Rozdíl mezi Vodopádem a Iterací: ==== * **Vodopád (Waterfall):** Vše se naplánuje a pak se dlouho vyvíjí. Výsledek uvidí zákazník až na konci (riziko chyby). * **Iterativní vývoj:** Každá iterace přináší malý, ale funkční kus softwaru. Na základě zpětné vazby se v další iteraci produkt vylepší nebo opraví. ===== 3. Rekurze vs. Iterace ===== Každý problém řešený iterací (cyklem) lze teoreticky vyřešit i rekurzí (funkce volá samu sebe). ^ Vlastnost ^ Iterace (Cyklus) ^ Rekurze (Volání sebe sama) ^ | **Výkon** | Obvykle rychlejší a méně náročná na paměť. | Může být pomalejší kvůli režii volání funkcí. | | **Paměť** | Používá konstantní prostor v paměti. | Může zaplnit zásobník (**Stack Overflow**). | | **Čitelnost** | Přehledná pro jednoduché opakování. | Elegantnější pro procházení stromových struktur ([[it_encyklopedie:dfs|DFS]]). | ===== 4. Praktický příklad (Pseudokód) ===== Představte si, že chceme sečíst čísla v poli: suma = 0 PRO KAŽDÉ číslo V poli: // Start iterace suma = suma + číslo // Tělo iterace KONEC cyklu Každý průchod tímto cyklem, kdy přičítáme jedno číslo k celkové sumě, je **jedna iterace**. > **Zajímavost:** Pojem "Iterativní metoda" je klíčový i v matematice a numerických výpočtech, kde se k výsledku přibližujeme postupnými opravami odhadu (např. Newtonova metoda pro výpočet odmocniny). [[it_encyklopedie:algoritmus|Zpět na Algoritmy]]