Úloha 3 – Složené přiřazovací operátory v praxi

Stránky: Moodle ZČU
Kurz: Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný)
Kniha: Úloha 3 – Složené přiřazovací operátory v praxi
Vytiskl(a): Nepřihlášený host
Datum: neděle, 18. října 2026, 19.50

Úvod do úlohy

Zkrácené přiřazovací operátory vypadají na první pohled jednoduše – prostě „přičti, odečti, vynásob a ulož zpět“. Jakmile je ale začneme kombinovat s různými datovými typy nebo speciálními situacemi (např. záporná čísla), ukáže se, že jejich chování není vždy tak přímočaré. Proto je důležité nejen znát jejich základní princip, ale také rozumět tomu, jak fungují v nuancích – například při spojování čísel a textů, nebo při zbytku po dělení záporných hodnot.


Teorie a principy

  1. Operátor += a typy hodnot:

    • Pokud se oba operandy chovají jako čísla, provede se aritmetické sčítání.

    • Pokud je alespoň jeden operand řetězec, dojde ke konkatenaci (spojení řetězců).

  2. Operátor -= , *= a /=:

    • Tyto operátory se pokouší převést operandy na čísla.

    • Pokud je operand text, který nelze převést, vznikne NaN (Not a Number).

  3. Operátor %= (modulo – zbytek po dělení):

    • Vrací zbytek po celočíselném dělení.

    • V JavaScriptu není modulo vždy „kladné“, protože výsledek má stejný znaménko jako dělenec (levý operand).


Praktické příklady kódu

+= a řetězce

Převody na čísla

%= se zápornými hodnotami


Typické chyby / záludnosti

  • Neočekávaná konkatenace: studenti čekají, že 5 += "5" bude 10, ale ve skutečnosti vznikne řetězec "55".

  • Výsledek modula se zápornými čísly: mnoho studentů předpokládá, že zbytek je vždy kladný, ale v JavaScriptu se řídí znaménkem dělence.

  • NaN při převodu: pokud dojde k neplatnému převodu textu na číslo (např. "abc"), dostaneme NaN, což může dál „otrávit“ výpočty.


Shrnutí

  • += funguje nejen pro čísla, ale i pro řetězce – v tom případě dochází ke konkatenaci.

  • -=, *=, /= se snaží převést hodnoty na čísla – pokud to nejde, výsledkem je NaN.

  • %= vrací zbytek po dělení se znaménkem podle dělence.

  • Nuance těchto operátorů jsou důležité hlavně při práci s daty, která nemusí být vždy jen čísla.

Úloha

Zadání (kontext úlohy)

Naprogramuj malý program pro zpracování výsledků hráče:

  • Vytvoř proměnnou hrac s hodnotou "Anna".

  • Pomocí += k ní připoj text " získala body:".

  • Vytvoř proměnnou body = 0.

  • Přičti k ní (+=) 120 bodů za první úkol.

  • Odečti (-=) 45 bodů za penalizaci.

  • Vynásob (*=) 2 za bonusovou úroveň.

  • Vyděl (/=) 3, protože hráč se účastnil tříkolové soutěže.

  • Vytvoř proměnnou zbytek = body. Pomocí %= zjisti, kolik bodů zůstane, pokud by se odměny rozdávaly po 100 bodech.

  • Do konzole vypiš výsledky ve formátu: Anna získala body: 50 (zbytek po odečtení celých stovek: 50)


Cíl úlohy
  • Procvičíš si kombinaci více složených přiřazovacích operátorů v reálnějším scénáři.

  • Uvidíš, jak se += chová u textu i u čísel.

  • Pochopíš použití %= při výpočtu zbytku.


Vstupní podmínky
  • Připrav si soubor script.js, do kterého zapíšeš celý kód.


Požadovaný výstup
  • V konzoli se zobrazí text s jménem hráče a výsledným počtem bodů doplněný o informaci o zbytku po dělení stovkou, např.: Anna získala body: 50 (zbytek po odečtení celých stovek: 50)


Doplňující pokyny
  • Po každé operaci můžeš průběžně vypisovat stav proměnných, abys sledoval výpočet.

  • Používej středníky na konci příkazů pro přehlednější kód.

Řešení úlohy

Co je zde splněno:

  • += předvedeno na textu → konkatenace.

  • %= použito na číselné hodnotě → zbytek po dělení 100.

  • Výstupy odpovídají zadání.