Tablice (ang. ARRAYS) są to struktury złożone z
ustalonej liczby elementów tego samego typu, który może
być zarówno typem prostym lub łańcuchowym, jak i typem
strukturalnym.
Za pomocą tablic są reprezentowane regularne układy
danych, np. wektory i macierze. Dostęp do poszczególnych
elementów tablic uzyskuje się za pomocą indeksowania.
Indeksem może być dowolne wyrażenie, którego wartość
jest zgodna w sensie przypisania z typem indeksowym.
Dopuszczalny zakres indeksów jest podany w definicji
tablicy.
Można tworzyć tablice o dowolnej liczbie wymiarów.
Jednowymiarowa tablica to jedna kolumna o pewnej ilości
wierszy (lub jak ktoś woli jeden wiersz o pewnej ilości
kolumn), dwuwymiarowa posiada pewną ilość kolumn i pewną
ilość wierszy, trójwymiarowa posiada jeszcze głębokość.
Kolejnych wymiarów nie możemy sobie już niestety
wyobrazić, ponieważ postrzegamy świat w trzech
wymiarach, ale oczywiście można takie tablice tworzyć.
VAR x : ARRAY[1..n] OF Typ;2. Wielowymiarowe (w przykładzie dwu-) :
VAR x : ARRAY[1..n, 1..m] OF Typ;lub
VAR x : ARRAY[1..n] OF ARRAY[1..m] OF Typ;Dla jednowymiarowej pierwszą zmienną jest x[1], drugą x[2], ostatnią x[n].
VAR x : ARRAY['A'..'Z'];ale oczywiście trzeba ujmować te znaki w apostrofy.
Nazwa_tablicy[Indeks]2. Dwuwymiarowej :
Nazwa_tablicy[Indeks_1][Indeks_2]
TYPE Tab = ARRAY [1..n] OF Typ;umożliwi to nam działania na tablicach w procedurach i funkcjach.
Var Kolega : RECORD Imie, Nazwisko : String; Wiek, Waga, Wzrost : Byte; END;Podobnie jak w wypadku tablic lepiej jest zadeklarować nowy typ :
TYPE Rek : RECORD Imie, Nazwisko : String; Wiek, Waga, Wzrost : Byte; END; VAR Kolega : Rek;Teraz w zmiennej Kolega mamy zmienne jego dotyczace. Aby sie do nich odwolac trzeba wpisac :
Kolega.Nazwa_zmiennej:=Cos_tam;lub
WITH Kolega DO BEGIN Imie:=Jakies_imie; Nazwisko:=Jakies_nazwisko; ... Wzrost:=Jakis_wzrost; END.w drugim przypadku operujemy na wszystkich polach danego rekordu jednocześnie.
VAR Magazyn : ARRAY[1..100] OF RECORD Nazwa : String; Ilość : Word; Cena : Real; END; VAR Sklad : RECORD Nazwa : ARRAY[1..100] OF String; Ilość : ARRAY[1..100] OF Word; Cena : ARRAY[1..100] OF Real; END;W zasadzie obie powyżej zdefiniowane zmienne pozwalają opisać to samo : 100 różnych towarów w magazynie, jednak bardziej naturalna jest pierwsza. Bowiem opisuje ona tablicę stu towarów, każdy z tych towarów można czasem potraktować jako niezależną jednostkę. Rozwiązanie drugie jest sztuczne. Poszczególne właściwości towarów są ze sobą powiązane jedynie indeksem w tablicy. Zamiast 100 towarów mamy 100 nazw, 100 cen i 100 informacji o ilości. W pierwszym przypadkku raz wybieramy pozycję w tablicy i wiemy wszystko o danym towarze, w drugim - wybieramy trzy razy i musimy pamiętać, jaka jest zależność miedzy indeksami kolejnych danych.