Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Zahrádka s opakováním

Petřík sní o tom, že by si rád vysázet květiny po obvodu své zahrádky o velikosti 15 políček na šířku i výšku. Mohli bychom sice vícekrát rozkopírovat příkazy z předešlé kapitoly, ale za něco takového by se musel snad každý programátor začervenat studem .

Naučíme se proto používat cyklus. Cyklus zajišťuje opakované provádění příkazů. Použijeme cyklus s pevným počtem opakování. Je označen jménem opakování příkazů s počtem a najdete ho v okně Základní prvky, koš ve skupince řízení programu . Přetáhněte ho na úplný začátek programu z minulé kapitoly (před všechny příkazy).

Po položení prvku cyklu si všimněte, že si s sebou přinesl ještě další dva prvky. Tyto dva prvky jsou nedílnou součástí cyklu a nelze je zrušit ani nikam přesunout. První prvek je označen pro počet opakování a je určen k zadání počtu, kolikrát se mají příkazy cyklu provést. Druhý prvek nese označení opakuj příkazy . Sem klademe příkazy cyklu určené k opakování. Říkáme mu také tělo cyklu.

Nejdříve určíme příkazy, které bude cyklus provádět. Z předešlé kapitoly máme připravený příkaz pro krok a příkaz pro položení květiny před Petříka. Tyto dva příkazy přetáhněte do těla cyklu, tedy do prvku opakuj příkazy . Pro připomenutí, příkaz pro položení květiny před Petříka jsme si dříve vytvořili ze dvou prvků, z prvku předmět před Petříkem a k němu připojeného prvku Květina .

Nyní určíme počet opakování, kolikrát budou příkazy v cyklu provedeny. K tomu potřebujeme prvek číselná konstanta , který najdete ve skupince výpočty . Přetáhněte ho do prvku pro počet opakování . Pokud prvek číselné konstanty v okně Základních prvků rozvinete, najdete v něm prvky číslic 0 9 . Přetáhněte číslice do číselné konstanty v programu tak, aby vzniklo číslo počtu opakování příkazů. Sestavené číslo v číselné konstantě přitom čteme shora dolů. Jako počet opakování zvolíme číslo o jedno menší, než je šířka zahrádky. Nastavíme tedy číslo 14 - konstanta bude obsahovat číslici 1, pod ní bude číslice 4.

Prozradím vám ještě jiný způsob zadávání čísla. Neobsahuje-li číselná konstanta uvnitř žádný prvek číslice, uplatní se číslo napsané v popisném textu číselné konstanty. Za číslem může následovat jakákoliv poznámka. Takže v našem případě by stačilo napsat k prvku text 14 - počet kroků. Předešlý způsob je však poněkud názornější.

Teď již vyhoďte do koše (pole vpravo nahoře) všechny ostatní prvky, které zůstaly mimo cyklus, kromě jednoho příkazu pro otočení vlevo a příkazu pro čekání na stisk klávesy. Vyhazovat můžete myší, ale existuje i rychlejší způsob pomocí klávesnice. Označte kliknutím levým tlačítkem myši na ikonu první z rušených prvků a potom tiskněte klávesu Delete, dokud nebudou všechny nepotřebné prvky odstraněny. Moc to ale nepřežeňte, ať nemusíte používat obnovovací tlačítko Zpět .

Po všech úpravách by vám měl vzniknout program vypadající takto:

Všimněte si, jak lze program díky popisům prvků číst celkem přirozeným způsobem: "Pro počet opakování 14 opakuj příkazy: polož jako předmět před Petříkem Květinu, potom udělej krok."

Program spusťte. Petřík se vydá k pravému okraji okna a cestou sází květiny. Když nasází květiny téměř po celém spodním okraji okna, otočí se nahoru a čeká. Zapomněl květinu na začátku řady vlevo, ale příště se určitě polepší.

Teď bychom mohli náš cyklus zkopírovat ještě třikrát; potřebujeme totiž celkem čtyři strany. Ale protože jsme správní programátoři, použijeme k tomu opět cyklus. Cyklus je totiž v podstatě běžný příkaz a tak ho můžeme vložit do jiného cyklu.

Přetáhněte z pole Základních prvků další prvek opakování příkazů s počtem a vložte ho úplně na začátek programu. Jako počet opakování uveďte číslo 4. Pro číselné konstanty s jednou číslicí můžeme používat přímo samotné číslice, které najdete u prvku číselné konstanty. Takže do parametru cyklu pro počet opakování přetáhněte prvek číslice 4 .

Do těla cyklu opakuj příkazy přetáhněte dříve vytvořený cyklus pro vysázení jedné strany zahrádky a pod něj příkaz pro otočení vlevo. Příkaz pro čekání na stisk klávesy necháme úplně na konci celého programu. Dobrý programátor si ještě svůj výtvor okomentuje poznámkami, aby mu byla činnost programu jasná i na druhý den. A nejen jemu, ale i všem ostatním, kteří program někdy uvidí. Komentování znamená změna textu u prvku. Až na speciální případy (číselná a textová konstanta) program text uvedený u prvku nijak nepoužívá a je plně k dispozici poznámkám programátora.

Zde vidíte výsledek naší usilovné práce:

Program spusťte. Petřík se rozběhne kolem své nové zahrádky a pilně sází květiny. Tentokrát již nasázel všechny a na žádnou nezapomněl. Líbí se vám jeho zahrádka?

Zvýšíte-li počet kroků ve vnitřním cyklu, třeba na 44, můžete pozorovat, že Petřík vysází květiny teď již skutečně po celém obvodu plochy a ani mu nevadí, že na konci cesty vždy narazí hlavou do zdi. Pokud nemůže nějakou operaci provést, tak ji prostě neprovede a nic se nestane.

Chcete-li ještě experimentovat, zkuste zvětšit číslo v počtu opakování hlavního (vnějšího) cyklu. Petřík bude pobíhat kolem okraje okna neustále. Při velkém počtu opakování se možná už ani konce nedočkáte a budete muset program přerušit kliknutím na tlačítko s křížkem (v pravém horním rohu okna) nebo stiskem kombinace kláves Alt+F4.

Jako domácí úkol zkuste doplnit program tak, aby Petřík po nasázení květin obešel vše ještě jednou a květiny naopak otrhal.

Teď bychom mohli náš cyklus zkopírovat ještě třikrát; potřebujeme totiž celkem čtyři strany. Ale protože jsme správní programátoři, použijeme k tomu opět cyklus. Cyklus je totiž v podstatě běžný příkaz a tak ho můžeme vložit do jiného cyklu.

 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 276x (129.18 kB)
Aplikace je včetně zdrojových kódů v jazyce Petr (jsou obsaženy v EXE souboru, který lze v programu přímo otevřít)

 

Všechny články v sekci
Políčková grafika
Článek pro vás napsal Panda38
Avatar
Uživatelské hodnocení:
2 hlasů
Programátor C++, WinAPI, ASM.
Aktivity