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: 6Počí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: 246 + 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ě.
Jak psát:
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: 13Ve 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: 27Ema 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: 4Začněte programovat zdarma
6/10