Cykly

Na této stránce se seznámíš s jednou z nejdůležitějších konstrukcí programovacích jazyků -- s cyklem. Zatím se naučíš používat pouze nejjednodušší typ cyklu, který Želví grafika nabízí, a to cyklus opakuj. K jiným konstrukcím jsou zapotřebí vyšší znalosti, postupně se k nim také dostaneme.

Jistě si vzpomínáš na úlohu z minulé stránky -- procedura, která nakreslí čtverec. Předpokládám, že jsi napsal(a) něco jako:

vpred o 50;
otoc o 90;
vpred o 50;
otoc o 90;
vpred o 50;
otoc o 90;
vpred o 50;
otoc o 90;

Toto řešení je nepochybně správné, má však jednu podstatnou vadu na kráse. Zbytečně se v něm opakují stejné příkazy. U čtverce se to dá ještě přežít, ale představ si, že bys měl(a) za úkol napsat proceduru kreslící šestatřicetiúhelník (třeba o straně délky 5). V takové proceduře by se opakovala dvojice příkazů

vpred o 5;
otoc o 10;

a to šestatřicetkrát! Naštestí nám Želví grafika nabízí konstrukci, která psaní podobných věcí usnadní. Princip je velmi jednoduchý. Když přijdeš do obchodu, neřekneš prodavačce, že by chtěl(a) jablko, jablko, jablko, jablko a jablko, ale poprosíš ji o pět jablek. A přesně toto řekneš Želví grafice. Nejprve uvedu ukázku, jak by se dala procedura pro přepsání čtverce zjednodušit, pak ji okomentuji.

opakuj 4 krat: {4krát se zopakují příkazy, které začínají zde...}
    vpred o 50;
    otoc o 90;
konec; {...a končí zde}

V příkladě jsme použili nový příkaz opakuj. Jedná se o takzvaný blokový příkaz (někdy budeme říkat také bloková konstrukce). Blokové příkazy obsahují narozdíl od normálních příkazů takzvané tělo, což je skupina jiných příkazů. Všechny blokové příkazy v Želví grafice mají tělo zakončené klíčovým slovem konec, mají i spoustu jiných společných rysů, ale konkrétní syntaxe blokových konstrukcí se příkaz od příkazu mírně liší. Co se týče příkazu opakuj, jeho syntaxe je následující: opakuj počet krat: skupina_příkazů konec;. Za počet je nutno dosadit číslo, které udává, kolikrát se má tělo cyklu provést, skupina_příkazů tvoří tělo cyklu.

Úloha: vytvoř novou proceduru, která nakreslí desetiúhelník (zvol délku strany), použij při tom cyklus opakuj.