Přejít na cvičení:
Rozhodovačka
Přejít na téma:
Proměnné: obecné principy
Zobrazit na celou obrazovku
Procvičujte neomezeně

Váš denní počet odpovědí je omezen. Pro navýšení limitu či přístup do svého účtu s licencí se přihlaste.

Přihlásit se
Zobrazit shrnutí tématu
M9X
Sdílet
Zobrazit nastavení cvičení

QR kód

QR kód lze naskenovat např. mobilním telefonem a tak se dostat přímo k danému cvičení nebo sadě příkladů.

Kód / krátká adresa

Tříznakový kód lze napsat do vyhledávacího řádku, také je součástí zkrácené adresy.

Zkopírujte kliknutím.

M9X
umime.to/M9X

Nastavení cvičení

Pozor, nastavení je platné pouze pro toto cvičení a předmět.

umime.to/M9X

Proměnné: obecné principy

Proměnná je pojmenované úložiště hodnoty, kterou lze měnit. V úvodní kapitole jsme viděli, jak můžeme měnit hodnotu jedné proměnné. V této kapitole budeme uvažovat i složitější situace, kdy dochází k interakci mezi více proměnnými a je potřeba rozlišovat mezi jménem a hodnotou proměnné.

Jméno vs. hodnota

Proměnná má jméno a hodnotu. Pomocí jména se na proměnnou v programu odkazujeme, když chceme její hodnotu použít nebo změnit. Mezi jménem a hodnotou je vhodné rozlišovat, například v příkazu vypiš x musí být x jméno proměnné, ale vypíše se její hodnota (nikoliv jméno). Pokud chceme kreslit kolečka rostoucí velikosti, použijeme proměnnou se jménem r nebo poloměr, která bude postupně nabývat hodnot 10, 20, 30 atd.

Typ proměnné

Proměnné nemusí být jen čísla. Kromě jména a hodnoty mají proto proměnné ještě typ, což může být například celé číslo, text ("mrkev"), nebo logická hodnota (pravda / nepravda).

Změna hodnoty

Přiřazovací příkaz umožňuje nastavit novou hodnotu proměnné, nebo upravit hodnotu stávající. Příkaz x ← 3 nastaví hodnotu proměnné x na 3, příkaz x ← x + 1 zvýší hodnotu proměnné x o 1. Na levé straně přiřazovacího příkazu je proměnná, kterou měníme, na pravé straně může být konkrétní hodnota, proměnná, nebo libovolný výraz.

Pokud je na pravé straně výraz, nejprve se vyhodnotí a výsledek se nastaví jako nová hodnota proměnné. Příkaz x ← 1 + 1 nastaví hodnotu proměnné x na 2. Výraz na pravé straně může obsahovat proměnné. Příkaz x ← y + 1 nastaví hodnotu proměnné x na hodnotu o 1 vyšší než je aktuální hodnota y.

Více jmen pro jednu hodnotu

Přiřazovací příkaz x ← y nastaví hodnotu proměnné x na hodnotu proměnné y. Hodnota proměnné y se přitom nemění.

Po provedení přiřazovacího příkazu x ← y mají obě proměnné stejnou hodnotu. Pořád jde však o dvě různé proměnné – pokud do proměnné y přiřadíme novou hodnotu, proměnnou x tím neovlivníme.

Prohození hodnot proměnných

Po provedení příkazu x ← y mají obě proměnné stejnou hodnotu. K prohození hodnot dvou proměnných je proto potřeba pomocné proměnné. Hodnoty prohodí následující trojice příkazů (pro konkrétnější představu předpokládejme x = 1, y = 2):

  1. p ← x (uložíme si 1 do pomocné proměnné)
  2. x ← y (x přenastavíme na 2)
  3. y ← p (y přenastavíme na 1)

Mýty o přiřazovacím příkazu

Mýtus Skutečnost
Proměnná, do které nebylo nic přiřazeno, má hodnotu 0. Počáteční hodnota proměnné není určená, je potřeba do ní nějakou hodnotu přiřadit.
Proměnná si pamatuje všechny hodnoty, které do ní byly v minulosti přiřazeny. V proměnné je uložená pouze poslední přiřazená hodnota.
Proměnná automaticky sčítá všechny přiřazené hodnoty. V proměnné je uložená pouze poslední přiřazená hodnota.
Přiřazovací příkaz x ← y přesouvá hodnotu, tj. y pak nemá hodnotu. Přiřazovací příkaz x ← y nastaví x, proměnnou y nemění.
Přiřazovací příkaz x ← y přiřadí do proměnné x text “y”. Přiřazovací příkaz x ← y přiřadí do proměnné x hodnotu proměnné y.

Metafory pro proměnné

Proměnné lze přirovnat třeba ke krabičkám, šuplíkům či obálkám, které mají uvnitř nějaký předmět (nebo třeba číslo napsané na papíře). Trochu přesněji odpovídají proměnným štítky nalepené na předmětech, nebo popsané kolíky držící předměty na prádelní šňůře. Takové metafory mohou přispět k základní intuici za proměnnými, je však potřeba vědět, že každá metafora má svoje omezení a neplatí dokonale.

Proměnné jako krabičky

Proměnná se často přirovnává ke krabičce, která je popsaná (jméno proměnné) a uvnitř má nějaký objekt (hodnota proměnné), třeba jablko. Můžeme se podívat, jaký objekt je uvnitř krabičky (zjištění hodnoty) a můžeme objekt v krabičce nahradit jiným, třeba hruškou (změna hodnoty). Tato metafora má však má svoje limity:

  • Do skutečné krabičky bychom nejspíš mohli přidat hrušku, aniž bychom z ní odebrali jablko. Proměnná si však pamatuje pouze poslední přiřazenou hodnotu. To by odpovídalo pravidlu, že kdykoliv do krabičky něco dáváme, nejprve ji vyprázdníme.

  • Ze skutečné krabičky bychom mohli objekt vzít a dát ho do jiné krabičky. To však neodpovídá chování přiřazovacího příkazu x ← y, po kterém je původní hodnota proměnné y v obou proměnných x i y. To by odpovídalo krabičkám vybaveným magickou kopírkou pro vytváření kopií objektů před jejich přiřazením či jiným použitím.

Proměnné jako nálepky

Proměnné si můžeme představit jako samolepící štítky (jméno proměnné) nalepené na objektu (hodnota proměnné). Přiřazovací příkaz x ← y odpovídá přelepení nálepky x na objekt označený nálepkou y. Jeden objekt tak může mít více nálepek (jmen), zatímco jedna nálepka se vždy odkazuje na jediný objekt.

Zavřít

Deaktivace bomby: proměnné (těžké)

Vyřešeno:

NAPIŠTE NÁM

Děkujeme za vaši zprávu, byla úspěšně odeslána.

Napište nám

Nevíte si rady?

Nejprve se prosím podívejte na časté dotazy:

Čeho se zpráva týká?

Vzkaz Obsah Ovládání Přihlášení Licence