Přeskočit na hlavní obsah

Proměnné

Proměnná je pojmenované místo, kam si program uloží nějakou hodnotu. Můžete si ji představit jako krabičku se štítkem. Na štítku je název proměnné a uvnitř je hodnota určitého datového typu. Do krabičky pro číslo dáváme číslo, do krabičky pro pravda/nepravda dáváme true nebo false. Když se typ a hodnota pletou, program má podobnou radost jako zásuvka, do které se snažíte nacpat špatný konektor.

U proměnných se často potkáte se třemi důležitými slovy:

  • deklarace vytvoří proměnnou, tedy připraví krabičku,
  • inicializace vytvoří proměnnou a rovnou do ní vloží první hodnotu,
  • přiřazení změní hodnotu v proměnné, která už existuje.
pocet

Deklarace

int pocet;

Deklarace vytvoří krabičku. Víme, že se jmenuje pocet a že do ní patří hodnota typu int. Hodnotu jsme do ní ale zatím nevložili.

3
pocet

Inicializace

int pocet = 3;

Inicializace vytvoří krabičku a rovnou do ní vloží první hodnotu. Tady vznikne proměnná pocet a dostane hodnotu 3.

pocet
3

Deklarace a přiřazení

int pocet;
pocet = 3;

Tady jsou to dvě samostatné věci. První řádek vytvoří proměnnou pocet. Druhý řádek do už existující proměnné vloží hodnotu 3.

7
pocet

Přiřazení

pocet = 7;

Přiřazení už novou krabičku nevytváří. Pouze vezme existující proměnnou pocet a vymění hodnotu uvnitř.

pocet
7
zaloha_poctu

Přiřazení z proměnné do proměnné

int pocet = 7;
int zaloha_poctu;
zaloha_poctu = pocet;

Hodnota se může vzít i z jiné proměnné. Řádek zaloha_poctu = pocet; znamená: přečti hodnotu z krabičky pocet a vlož ji do krabičky zaloha_poctu.

Například:

int pocet = 3;

Tady vznikla proměnná pocet a je v ní uložená hodnota 3. Tomu se říká inicializace, protože proměnnou vytváříme a zároveň jí dáváme první hodnotu. Slovo int říká, jaký datový typ proměnná má. Datový typ určuje, jaký druh hodnoty se do proměnné ukládá.

U proměnné tedy sledujeme tři věci:

částpříkladvýznam
typintjaký druh hodnoty ukládáme
názevpocetjak se na hodnotu v programu odkazujeme
hodnota3co je v proměnné právě uložené

Proč se používají

Bez proměnných by program pracoval jen s pevnými čísly. To by bylo nepohodlné. Proměnná umožňuje hodnotu pojmenovat, později ji změnit a používat ji na více místech programu.

Například:

int rychlost = 120;
rychlost = 80;

Hodnota proměnné rychlost se změnila ze 120 na 80. Název proměnné zůstal stejný, změnil se jen obsah krabičky.

Proměnnou můžeme také použít ve výpočtu:

int a = 5;
int b = 7;
int soucet = a + b;

Proměnná soucet bude obsahovat hodnotu 12. Program si nemusí pamatovat jen pevná čísla, ale může pracovat s hodnotami, které vzniknou až při běhu.

Název je důležitý

Názvy proměnných by měly říkat, co hodnota znamená.

Lepší je:

int teplota = 23;

než:

int x = 23;

Krátké názvy jako x nebo i nejsou zakázané, ale hodí se hlavně pro krátké výpočty nebo počítadla. Když proměnná něco opravdu znamená, měla by to říct svým názvem.

Proměnná v embedded programu

V embedded programování mohou proměnné ukládat třeba:

  • počet stisků tlačítka,
  • naměřenou hodnotu ze senzoru,
  • stav LED,
  • rychlost motoru,
  • příznak, že přišla zpráva.

Například:

bool led_sviti = false;
uint16_t hodnota_adc = 0;

Tady jsou důležité i datové typy:

  • bool se hodí pro hodnotu true nebo false,
  • uint16_t se hodí pro celé číslo bez znaménka od 0 do 65535.

U ADC se uint16_t používá často, protože naměřená hodnota bývá celé nezáporné číslo. Pro stav LED je zase lepší bool, protože LED buď svítí, nebo nesvítí.

Proměnné nejsou jen čísla v sešitě. V malém zařízení často přímo popisují, co se právě děje v hardwaru.