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:
deklaracevytvoří proměnnou, tedy připraví krabičku,inicializacevytvoří proměnnou a rovnou do ní vloží první hodnotu,přiřazenízmění hodnotu v proměnné, která už existuje.
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.
Inicializace
int pocet = 3;Inicializace vytvoří krabičku a rovnou do ní vloží první hodnotu. Tady vznikne proměnná pocet a dostane hodnotu 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.
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ř.
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:
| část | příklad | význam |
|---|---|---|
| typ | int | jaký druh hodnoty ukládáme |
| název | pocet | jak se na hodnotu v programu odkazujeme |
| hodnota | 3 | co 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:
boolse hodí pro hodnotutruenebofalse,uint16_tse hodí pro celé číslo bez znaménka od0do65535.
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.