Souhrnná úloha – Knihovní asistent
| Sitio: | Moodle ZČU |
| Curso: | Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný) |
| Libro: | Souhrnná úloha – Knihovní asistent |
| Imprimido por: | Nepřihlášený host |
| Día: | domingo, 18 de octubre de 2026, 05:55 |
Úloha
Zadání (kontext úlohy):
Vytvoř malý program „Knihovní asistent“, který umožní zpracovat údaje o knize. Pomocí několika funkcí ověří správnost dat, převede délku čtení na hodiny a minuty a vygeneruje krátké shrnutí pro uživatele.
Cíl úlohy:
Procvičit vytváření a volání funkcí, práci s parametry a návratovými hodnotami, přehledné rozdělení kódu do samostatných částí a pochopení rozdílu mezi deklarací a výrazem funkce.
Vstupní podmínky:
-
Student pracuje se soubory
index.htmlascript.js. -
Data se získávají z uživatelských vstupů pomocí
prompt(). -
Program má obsahovat alespoň tři vlastní funkce:
-
overitNazev(kniha)– zkontroluje, zda název knihy není prázdný. -
prevodCasu(minuty)– převede dobu čtení na hodiny a minuty. -
vytvorShrnuti(nazev, autor, hodiny, minuty)– vrátí formátovaný text s výsledkem.
-
Požadovaný výstup:
-
Načti od uživatele název knihy, autora a odhadovaný čas čtení v minutách.
-
Pomocí funkce
overitNazev()ověř, že název není prázdný. -
Pomocí
prevodCasu()vypočítej odpovídající hodiny a minuty. -
Pomocí
vytvorShrnuti()sestav text ve tvaru např.:
„Kniha Hobit od autora Tolkien zabere přibližně 6 hodin a 15 minut čtení.“ -
Výsledek vypiš do konzole i do stránky do
<div id="vystup">.
Doplňující pokyny:
-
Používej pouze
letaconst. -
Nepoužívej šipkové funkce ani ternární operátory.
-
Funkce musí mít návratovou hodnotu (
return). -
Ošetři vstup: pokud uživatel nezadá čas nebo zadá neplatné číslo, použij výchozí hodnotu 0.
-
Funkce deklaruj i přiřaď pomocí výrazu, aby bylo vidět rozdíl v pořadí deklarací (hoisting).
Řešení úlohy
Co je zde splněno
-
Načtení názvu, autora a času v minutách přes
prompt(). -
Ověření názvu funkcí
overitNazev(nazev)(deklarace – demonstruje hoisting). -
Převod minut na hodiny a minuty funkcí
prevodCasu(minuty)(funkční výraz – nelze volat před přiřazením). -
Sestavení výsledné věty funkcí
vytvorShrnuti(nazev, autor, hodiny, minuty)(funkční výraz, return řetězce). -
Ošetření neplatného času: při
isNaN()se použije 0. -
Výsledek je vypsán do konzole i do stránky do
<div id="vystup">. -
Dodržena pravidla: pouze
let/const, bez šipkových funkcí, každá funkce má návratovou hodnotu.
Poznámky
Hoisting: funkce deklarovaná pomocí
function overitNazev(...) {}je „zvednuta“ – lze ji volat i před místem definice.
Funkční výrazconst prevodCasu = function(...) {}je k dispozici až po přiřazení.Převod času je zjednodušený; neřeší jazykové varianty (1 hodina / 2 hodiny / 5 hodin). Pokud je to požadováno, lze doplnit zvláštní funkci pro skloňování.