Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
ccpp:cykluswhile [2019/10/10 16:08] – durdilova | ccpp:cykluswhile [2021/12/22 14:03] (aktuální) – bures | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
====== Cyklus while ====== | ====== Cyklus while ====== | ||
- | Cyklus while je cyklem s podmínkou na začátku. Nejprve se vyhodnotí podmínka | + | Cyklus while je cyklem s podmínkou na začátku. Nejprve se vyhodnotí podmínka |
Cyklus while se skládá ze dvou částí: | Cyklus while se skládá ze dvou částí: | ||
- | * hlavička | + | * Podmínka |
* klíčové slovo **while** | * klíčové slovo **while** | ||
* podmínka cyklu | * podmínka cyklu | ||
- | * tělo cyklu | + | * Příkaz/blok příkazů které |
- | * vlastní příkaz, nebo blok kódu, který | + | |
===== Syntaxe cyklu while ===== | ===== Syntaxe cyklu while ===== | ||
<code c> | <code c> | ||
- | // S jedním příkazem | + | // S jedním příkazem |
while (podminka) | while (podminka) | ||
prikaz; | prikaz; | ||
- | // S blokem příkazů | + | // S blokem příkazů |
while (podminka) | while (podminka) | ||
{ | { | ||
prikaz1; | prikaz1; | ||
prikaz2; | prikaz2; | ||
- | //... | + | // ... |
+ | prikazN; | ||
} | } | ||
</ | </ | ||
Řádek 28: | Řádek 27: | ||
* Podmínka cyklu nemusí být platná už před první iterací. Cyklus pak nevykoná ani jednu iteraci. | * Podmínka cyklu nemusí být platná už před první iterací. Cyklus pak nevykoná ani jednu iteraci. | ||
* Cykly while a for se dají mezi sebou navzájem transformovat. | * Cykly while a for se dají mezi sebou navzájem transformovat. | ||
- | * V těle cyklu musí být příkaz, který má vliv na podmínku. Jinak dojede k zacyklení programu. | + | * Pokud bude podmínka vždy pravdivá (tautologie), dojede k zacyklení programu |
===== Průběh cyklu while ===== | ===== Průběh cyklu while ===== | ||
Řádek 39: | Řádek 38: | ||
===== Ukázky ===== | ===== Ukázky ===== | ||
- | ==== Výpis čísel od 1 do 10 pomocí cyklu for ==== | + | ==== Výpis čísel od 1 do 10 pomocí cyklu while ==== |
<code c> | <code c> | ||
- | for (int cislo = 1; cislo <= 10; cislo++) | + | int cislo = 1; // Inicializujeme řídící proměnnou |
- | printf(" | + | |
- | </ | + | |
- | ==== Ekvivalentní výpis čísel od 1 do 10 pomocí cyklu while ==== | + | |
- | <code c> | + | |
- | int cislo = 1; // Inicializační část | + | |
while (cislo <= 10) // Podmínka cyklu | while (cislo <= 10) // Podmínka cyklu | ||
{ | { | ||
- | printf(" | + | printf(" |
- | cislo++; // Aktualizační | + | cislo++; // Zvětšení hodnoty o jedničku |
} | } | ||
</ | </ | ||
- | ==== Vypsání prvků pole o kapacitě 42 ==== | + | ==== Ekvivalentní výpis čísel od 1 do 10 pomocí cyklu for ==== |
<code c> | <code c> | ||
- | double pole[42] = {}; | + | for (int cislo = 1; cislo <= 10; cislo++; ) // Inicializační část; Podmínka cyklu; Aktualizační část |
- | // inicializace prvků pole | + | |
- | for (int i = 0; i < 42; i++) | + | |
{ | { | ||
- | printf(" | + | printf(" |
- | if (i != 41) | + | |
- | printf(", | + | |
} | } | ||
- | putchar(' | ||
</ | </ | ||
+ | |||
+ | ===== Příklady k procvičení ===== | ||
+ | * Výpis čísel od 10 do 1 | ||
+ | * Vypsat N-krát znak * (N je celé číslo ze vstupu) | ||
+ | * Výpis násobků zadaného čísla N (1 * N, 2 * N, ... 10 * N) | ||
+ | * Výpis celých čísel v zadaném intervalu <A, B>, (A, B>, nebo (A, B) |