Známky

Ke každému výsledku patří známka. Učitelka ji dává podle počtu bodů:

  • 45 až 50 bodů: 1
  • 38 až 44 bodů: 2
  • 30 až 37 bodů: 3
  • 20 až 29 bodů: 4
  • méně než 20 bodů: 5

Na výběr z několika možností máte else if. Dejte ho do funkce, která dostane počet bodů a vrátí známku. Funkce může mít víc příkazů return a podmínka rozhodne, který se provede. Třeba vstupné do kina:

#include <iostream>

int vstupne(int vek) {
    if (vek < 15) {
        return 100;
    } else if (vek < 65) {
        return 180;
    } else {
        return 120;
    }
}

int main() {
    std::cout << vstupne(10) << std::endl;
    std::cout << vstupne(30) << std::endl;
    std::cout << vstupne(70) << std::endl;
    return 0;
}
100
180
120

Na pořadí podmínek záleží. Program je zkouší odshora a provede jen první, která platí. Každá další se tedy zkouší, jen když žádná předchozí neplatila. Desetiletý splňuje i vek < 65, ale k té podmínce se program vůbec nedostane. Ve funkci znamka() proto začněte nejvyšší hranicí. Kdyby první podmínka byla pocetBodu >= 20, platila by i pro Filipa se 48 body a ten by dostal čtyřku.

Pozor i na hranice: 45 bodů je ještě jednička, takže podmínka je pocetBodu >= 45, ne pocetBodu > 45.

Novou funkci napište nad vypisVysledky(), která ji bude volat. Kdyby byla až pod ní, kompilátor by ji v místě volání ještě neznal a ohlásil by chybu:

main.cpp:9:75: error: use of undeclared identifier 'znamka'

Funkci, která vrací hodnotu, můžete zavolat přímo ve výpisu: std::cout << znamka(body[i]) vypíše známku žáka s indexem i.

Pokyny

Nad funkci vypisVysledky() napište funkci int znamka(int pocetBodu), která vrátí 1 pro 45 bodů a víc, 2 pro 38 a víc, 3 pro 30 a víc, 4 pro 20 a víc a jinak 5.

Ve funkci vypisVysledky() přidejte na konec řádku každého žáka čárku, mezeru, slovo známka, mezeru a známku spočítanou funkcí znamka():

Adam: 42 bodů, známka 2
Ema: 38 bodů, známka 2
Filip: 48 bodů, známka 1
Jakub: 14 bodů, známka 5
Lenka: 27 bodů, známka 4

Pokud má Ema se 38 body trojku, zkontrolujte, že podmínka pro dvojku používá >=.

Začněte programovat zdarma

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

Nebo se registrujte pomocí:

2/7