Počítání

Druhý vzor počítá: kolik dní, záhonů nebo vajec splňuje nějakou podmínku? Vypadá podobně jako sčítání, jen místo hodnoty přičítáte 1, a to jen tehdy, když to dovolí if.

Obchodník Hugo přijíždí na farmu každý pátý den. Kolikrát přijede za 30 dní?

local navstevy = 0
for den = 1, 30 do
    if den % 5 == 0 then
        navstevy = navstevy + 1
    end
end
print("Návštěvy Huga: " .. navstevy)
Návštěvy Huga: 6

Počítadlo navstevy začíná před cyklem na 0. Cyklus projde všechny dny a if rozhodne, jestli daný den započítat. Operátor % znáte z lekce o proměnných: dává zbytek po dělení. den % 5 == 0 platí, když jde den vydělit pěti beze zbytku, tedy každý pátý den: 5, 10, 15, 20, 25 a 30. S % 7 byste dostali každý sedmý den a s % 2 každý druhý (ty sudé). Výsledek zase vypíšete až za cyklem.

Všimněte si dvou end: první uzavírá if, druhý cyklus. Když každou úroveň odsadíte o další 4 mezery, uvidíte, který end patří k čemu. Kdyby se navstevy = navstevy + 1 ocitlo mimo if (ale pořád v cyklu), program by započítal každý den a vypsal Návštěvy Huga: 30.

Jeden cyklus může počítat i několik věcí najednou, každou ve vlastním počítadle. S if a else se každý den započítá právě jednou, buď do jednoho, nebo do druhého počítadla:

local sHugem = 0
local bezHuga = 0
for den = 1, 30 do
    if den % 5 == 0 then
        sHugem = sHugem + 1
    else
        bezHuga = bezHuga + 1
    end
end
print("Dny s Hugem: " .. sHugem)
print("Dny bez Huga: " .. bezHuga)
Dny s Hugem: 6
Dny bez Huga: 24

6 + 24 je 30, jeden za každý den. Takové sečtení počítadel je rychlý způsob, jak ověřit, že jste počítali správně.

Pokyny

V této sezóně prší každý třetí den: třetí, šestý, devátý a tak dál. Spočítejte deštivé dny: vytvořte lokální proměnnou destive s hodnotou 0, projděte cyklem for dny od 1 do dny a u každého dne, který jde vydělit třemi, zvyšte destive o 1. Za cyklem vypište:

Deštivé dny: 13

Ve všech ostatních dnech musí Ema zalévat. Spočítejte je ve stejném cyklu: před cyklem vytvořte lokální proměnnou suche s hodnotou 0 a zvyšujte ji ve větvi else. Za cyklem vypište výsledek na řádek pod deštivé dny:

Deštivé dny: 13
Suché dny: 27

Ema jezdí na trh každý sedmý den, ale ne, když prší. Ve stejném cyklu spočítejte do třetího počítadla, trhy, dny, které jdou vydělit sedmi, ale ne třemi. Na konci vypište:

Dny s trhem: 4

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

6/10