Pole
Pole je více hodnot stejného datového typu uložených za sebou. Používá se ve chvíli, kdy nechceme vytvářet zvláštní proměnnou pro každou hodnotu.
Místo toho, abychom psali:
int teplota1 = 21;
int teplota2 = 22;
int teplota3 = 20;
můžeme použít pole:
int teploty[3] = {21, 22, 20};
Máme jednu proměnnou teploty,
ve které jsou tři hodnoty.
Takto si pole můžete představit:
| index | 0 | 1 | 2 |
|---|---|---|---|
| hodnota | 21 | 22 | 20 |
Každá buňka má své číslo,
kterému říkáme index.
Hodnota je obsah buňky.
Název pole teploty označuje celou řadu buněk najednou.
int teploty[4] = {21, 22, 20, 24};
teploty[0] = 21;Kliknutím vyberete prvek pole. Změnou hodnoty se upraví obsah buňky i řádek kódu, který zapisuje na vybraný index.
Indexy
K jednotlivým prvkům pole se přistupuje přes index. V C a v mnoha dalších jazycích se počítá od nuly.
int prvni = teploty[0];
int druha = teploty[1];
int treti = teploty[2];
Pole se třemi prvky má indexy 0, 1, 2.
Index 3 už je mimo pole.
Když má pole délku 3,
poslední prvek není pole[3],
ale pole[2].
Počítače to tak dělají schválně.
Nedělají to proto,
aby zkoušely vaši trpělivost,
i když to tak někdy vypadá.
Proč jsou pole užitečná
Pole se hodí, když máme více podobných hodnot:
- naměřené hodnoty ze senzoru,
- stav několika tlačítek,
- jas více LED,
- přijaté bajty ze sériové linky,
- tabulku předpočítaných hodnot.
Například v embedded programu:
uint16_t hodnoty_adc[8];
Tím říkáme,
že máme osm hodnot z ADC.
Každá hodnota je uint16_t.
Procházení pole
Pole se často používá společně s cyklem:
for (int i = 0; i < 8; i++) {
hodnoty_adc[i] = 0;
}
Tento kód projde všechny prvky pole hodnoty_adc
a nastaví je na nulu.
Důležité je i < 8,
ne i <= 8.
Kdybychom použili i <= 8,
program by se pokusil sáhnout na hodnoty_adc[8],
který už neexistuje.
Pole není kouzelná taška
Pole má pevnou velikost. Když vytvoříte pole pro osm hodnot, nevejde se do něj devátá. V některých jazycích vás program zastaví chybou. V C se může stát něco mnohem horšího: program začne přepisovat paměť vedle pole.
To je jeden z důvodů, proč je práce s poli důležitá. Jsou jednoduchá, rychlá a velmi užitečná, ale chtějí přesnost.