Počítání
Druhý vzor počítá: kolik prvků 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:
std::vector<int> teploty = {18, 24, 27, 15, 31, 22, 29};
int horkeDny = 0;
for (int teplota : teploty) {
if (teplota >= 25) {
horkeDny++;
}
}
std::cout << "Horkých dnů: " << horkeDny << std::endl;Horkých dnů: 3Počítadlo horkeDny začíná před cyklem na 0. Cyklus se podívá na každou teplotu a if rozhodne, jestli ji započítat. horkeDny++ se provede jen pro 27, 31 a 29, takže na konci má počítadlo hodnotu 3. Všimněte si dvou párů složených závorek: horkeDny++ je v bloku if, který je v bloku cyklu. Výsledek zase vypíšete až za cyklem.
Počítat můžete i v textu. Tento cyklus spočítá malá písmena a:
std::string slovo = "Abrakadabra";
int pocet = 0;
for (char znak : slovo) {
if (znak == 'a') {
pocet++;
}
}
std::cout << "Počet a: " << pocet << std::endl;Počet a: 4Velké A na začátku se nezapočítá: 'A' a 'a' jsou různé znaky.
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ý prvek započítá právě jednou, buď do jednoho, nebo do druhého počítadla.
Jak psát:
Pokyny
Vektor vysledky obsahuje počty bodů z testu. V testu uspěje, kdo má 50 a více bodů. Spočítejte, kolik studentů uspělo: vytvořte proměnnou uspeli s hodnotou 0, projděte vysledky cyklem a pro každý výsledek, který je alespoň 50, zvyšte uspeli o 1. Za cyklem vypište výsledek jako Uspěli: 5.
Ve stejném cyklu spočítejte i studenty, kteří neuspěli: před cyklem vytvořte proměnnou neuspeli s hodnotou 0 a zvyšujte ji ve větvi else. Za cyklem vypište na další řádek Neuspěli: 3.
Začněte programovat zdarma
7/13