Cyklus

Obrázky ako podľa pravítka

Pri programovaní sa často stretneme s tým, že máme niečo urobiť viackrát za sebou.

Tento jednoduchý program nakreslí zvislú čiaru.

size(400, 400);
line(50, 0, 50, height);
size(400, 400)
line(50, 0, 50, height)

Napr. program, ktorý nakreslí 40 rovnakých zvislých čiar vedľa seba s rozostupom 10 bodov, by mohol vyzerať takto:

size(400, 400);
line(0, 0, 0, height);
line(10, 0, 10, height);
line(20, 0, 20, height);
line(30, 0, 30, height);
line(40, 0, 40, height);
line(50, 0, 50, height);
// ... atď. ...
line(390, 0, 390, height);
size(400, 400);
line(0, 0, 0, height);
line(10, 0, 10, height);
line(20, 0, 20, height);
line(30, 0, 30, height);
line(40, 0, 40, height);
line(50, 0, 50, height);
# ... atď. ...
line(390, 0, 390, height);

Cyklus while

Aby sme opakujúce sa časti programu nemuseli trápne písať a prepisovať v nich číselká, môžeme použiť príkaz while. S jeho pomocou sa zápis výrazne skráti.

Vyššie uvedený program, zapísaný pomocou cyklu.

size(400, 400);
int i = 0;

while (i < width) {
    line(i, 0, i, height);
    i = i + 10;
}
size(400, 400);
i = 0;

while (i < width):
    line(i, 0, i, height);
    i = i + 10;

Štvorcový príklad

    size(400, 400);
    int i = 0;                        // riadiaca premenna cyklu

    while (i < 10) {                 //  hlavicka cyklu
        rect(i*40, 0, 30, 30);    // telo cyklu, nakresli 10 stvorcov 30 x 30, 10 bodov
        i = i + 1;
    }

    print("Hotovo, sefe!");       // prikaz, ktory uz nepatri do tela cyklu
                                  // vykona sa saz po skonceni prikazu while
size(400, 400);
i = 0;                        # riadiaca premenna cyklu

while (i < 10):               # hlavicka cyklu
    rect(i*40, 0, 30, 30);    # telo cyklu, nakresli 10 stvorcov 30 x 30, 10 bodov
    i = i + 1;

print("Hotovo, sefe!");       # prikaz, ktory uz nepatri do tela cyklu
                                  # vykona sa saz po skonceni prikazu while

Výsledok je toto:


Cyklus for (java)

Cyklus for robí to isté ako cyklus while, ale je zapísaný úspornejšie. A tiež rieši častý problém programátorov, že zabudnú na niektorú zo zložiek cyklu while, ktoré spôsobujú jeho nesprávne fungovanie/zacyklenie.

Nasledujúci príklad kreslí tie isté štvorce ako príklad s príkazom while.

    int i;

    for (i = 0; i < 10; i = i+1) {               //  hlavicka cyklu
        rect(i*40, 0, 30, 30);    // telo cyklu, nakresli 10 stvorcov 30 x 30, 10 bodov
    }

cyklus-priklad-stvorce-na-ciare


Úloha Pomocou jedného cyklu while s riadiacou premennou nakresli tieto obrázky, alebo si vymysli vlastné, podobné (1 bod za obrázok, max. 3. b):


Na tieto príklady je potrebné trošku viac porozmýšľať a prepočítavať, (nepovinné).

Alternatívne môžeš skúsiť verziu siete s farbou a alfa priesvitnosťou: