Typové konstanty pole

Z Delphi & Pascal (česká wiki)
Skočit na navigaci Skočit na vyhledávání

Deklarace konstanty typu array určuje hodnoty složek.

Prvek konstantního pole může být libovolný typ kromě typu souboru.

Příklad
type
  Stav = (Aktivni, Pasivni, Cekajici);
  StavMap = array[Stav] of string[7];
const
  StavStr: StavMap = ('Aktivni', 'Pasivni', 'Cekajici');
{ Prvky pole StavStr jsou:
  StavStr[Aktivni] = 'Aktivni'
  StavStr[Pasivni] = 'Pasivni'
  StavStr[Cekajici] = 'Cekajici' }
Znaková pole

Konstanty typu pakovaného řetězce mohou být určeny buď ve tvaru jednotlivých znaků nebo jako řetězec. Například, tato definice:

const
 Cislice: array[0..9] of Char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

může být vhodněji vyjádřena jako:

const
 Cislice: array[0..9] of Char = '0123456789';


Znaková pole ukončená nulou

Znakové pole ukončené nulou je takové, kde první prvek pole je 0 a poslední prvek je kladné nenulové celé číslo.

Například
array[0..X] of Char

Pokud povolíte rozšířenou syntaxi (s direktivou překladače {$X+}, znaková pole ukončená nulou mohou být inicializována řetězcem, který je kratší než deklarovaná délka pole.

const
 JmenoSouboru = array[0..79] of Char = 'TEST.PAS';

Když řetězec je kratší než délka pole, zbývající znaky jsou nastaveny do hodnoty NULL (#0) a pole skutečně obsahuje nulou ukončený řetězec.


Konstantní vícerozměrná pole

Konstantní vícerozměrná pole mají při definici hodnoty každého rozměru uzavřené ve zvláštním páru závorek, oddělených čárkami.

Nejvnitřnější úroveň odpovídá posledním (pravému) rozměru.

Například, deklarace
type
  Kostka = array[0..1, 0..1, 0..1] of Integer;
const
  Labyrint: Kostka = (((0, 1), (2, 3)), ((4, 5), (6, 7)));

poskytuje poli Labyrint tyto hodnoty:

  Labyrint[0, 0, 0] = 0
  Labyrint[0, 0, 1] = 1
  Labyrint[0, 1, 0] = 2
  Labyrint[0, 1, 1] = 3
  Labyrint[1, 0, 0] = 4
  Labyrint[1, 0, 1] = 5
  Labyrint[1, 1, 0] = 6
  Labyrint[1, 1, 1] = 7