Pole (datová struktura)

datová struktura

Pojmem pole (také vektor) se v informatice označuje datová struktura, která sdružuje daný vždy konečný počet prvků (čísel, textových řetězců, …) stejného datového typu. K jednotlivým prvkům pole se přistupuje pomocí jejich indexu (celého čísla, označujícího pořadí prvku v rámci pole). Velikost pole zůstává při běhu programu neměnná (některé programovací jazyky toto omezení nekladou, zvětšení pole je ale časově náročná operace).

Prázdné jednorozměrné pole o 10 prvcích (zde indexováno od nuly, některé jazyky indexují od jedničky)

Ve většině programovacích jazyků je pole vestavěným datovým typem (viz též abstraktní datový typ).

Operace s polem

editovat

Indexování prvků

editovat

Různé programovací jazyky se (mimo jiné) liší v tom, jakým indexem označují první prvek pole:

  • C, C++, C#, Java a další indexují od nuly (a index vynásobený velikostí prvku v bytech vyjadřuje posunutí příslušného prvku v paměti od počátku pole).
  • BASIC a další indexují od jedničky, což odpovídá matematickému značení a přirozenému počítání.
  • Visual Basic, Pascal a další umožňují nastavit horní a dolní meze pole individuálně.

Syntax pro zápis indexů

editovat

Kromě způsobu indexování prvků se jazyky liší také syntaxí zápisu indexů. Řada programovacích jazyků pro indexy používá kulaté závorky, např. Tabulka(i,j). Další jazyky (např. Algol, Pascal a jazyky z nich odvozené), používají hranaté závorky, např. Tabulka[i,j]. Důvodem je i syntakticky na první pohled odlišit přístup k prvkům pole od jiných programových konstrukcí, kde se používají kulaté závorky. Z ukázek je rovněž zřejmé, že indexem pole může být (a zpravidla bývá) proměnná, tj. konkrétní hodnota indexu je spočtena až za běhu programu. Pochopitelně lze jako index použít také konstantu, např. Tabulka(2,3), resp. Tabulka[2,3]. Typické je ale právě použití proměnných v kombinaci s příkazem cyklus for (případně jinými řídícími strukturami pro cyklus).

Použití

editovat

Pole jsou jedním z nejzákladnějších datových typů, mají tedy široké použití nejen samy o sobě, ale také jako součást komplexnějších struktur, jako jsou haldy, hašovací tabulky či řetězce.

Vícerozměrná pole

editovat

V praktických úlohách, zejména v náročnějších výpočetních a grafických aplikacích, se uplatňují i vícerozměrná pole. Ta se indexují uspořádanou k-ticí celých čísel (souřadnic) – např. a[3, 2, 5]. Obzvláště často se používají dvourozměrná pole (matice), jen zřídka se v praxi používá počet rozměrů větší než tři.

Některé jazyky vícerozměrná pole nepodporují přímo, ale reprezentují je pomocí pole polí, např. dvourozměrná matice se vyjádří jednorozměrným polem řádků, z nichž každý obsahuje pole, které obsahuje již položky tohoto řádku (výše zmíněný příklad prvku trojrozměrné matice pak je a[3][2][5]).

Související články

editovat

Externí odkazy

editovat