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
120Na 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.
Jak psát:
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 4Pokud má Ema se 38 body trojku, zkontrolujte, že podmínka pro dvojku používá >=.
Začněte programovat zdarma
2/7