Strukturalne typy zmiennych, pojęcie tablicy, definiowanie typu tablicowego i deklaracja tablic, odwoływanie się do elementów tablicy, inicjowanie zmiennej tablicowej, tablice wielowymiarowe.

Typowe operacje na tablicach - wczytywanie z klawiatury, wyświetlanie na ekranie, wstawianie elementów o wartościach losowych, zamiana elementów, wprowadzanie i usuwanie elementów, znajdowanie lub zliczanie elementów tablicy o zadanych wartościach, znajdowanie wartości maksymalnej i minimalnej, sortowanie.

Tablica składa się z ustalonej liczby elementów tego samego typu, zwanego typem składowym (może być typem prostym, łańcuchowym lub strukturalnym). Za pomocą tablic reprezentowane są regularne układy danych np. wektory, macierze.

Dostęp do poszczególnych elementów tablicy uzyskuje się za pomocą indeksowania. Indeksem może być dowolne wyrażenie, którego wartość jest zgodna w sensie przypisania z typem indeksowym.

Definicja typu tablicowego

type identyfikator_typu = array [typy_indeksowe] of typ_składowy;

gdzie typ indeksowy to typ porządkowy z wyjątkiem LongInt.

Przykłady:

type wektor = array [0..50] of integer;

type macierz = array [1..20] of array [1..30] of real;

type macierz = array [1..20][1..30] of real;

type macierz = array [1..20, 1..30] of real;

type tablica = array [Boolean, 1..20] of char;

type zakres = 10..20;

tablica = array [zakres] of char;

Uwaga:

W poniższych przykładach przyjęto następującą definicję typu tablicowego:

const N = 20;

type tab = array[1 .. N] of integer;

Wprowadzanie elementów tablicy z klawiatury

procedure Czytaj( var A : tab);

var i : integer;

begin

for i := 1 to N do

begin

write( `Podaj `, i, ` element: `);

readln( A[i] );

end;

end;

Wypełnianie tablicy wartościami losowymi

procedure Losuj( var A : tab; k : integer);

var i : integer;

begin

randomize;

for i := 1 to N do

A[i] := random(k);

end;

Wypełnianie tablicy wyrazami szeregu

procedure Szereg( var A : tab);

var i : integer;

begin

for i := 1 to N do

A[i] := 2 * i; { liczby parzyste }

end;

Wyświetlanie tablicy po k elementów w wierszu

procedure Pisz( var A : tab; k : integer);

var i : integer;

begin

for i := 1 to N do

    begin

 write( A[i]:8 );

   if (i mod k)=0 then writeln;

end;

end;

Znajdowanie elementu minimalnego i maksymalnego

procedure Max_Min( var T : tab; var max, min : integer);

var i : integer;

begin

min := T[1];

max := T[1];

for i:=2 to N do

begin

if T[i]>max then max:=T[i];

if T[i]<min then min:=T[i];

end;

end;

Zliczanie elementów spełniających określone kryteria

function Ile ( var A : tab; klucz : integer ) : integer;

var i, k : integer;

begin

k := 0;

for i := 1 to N do

if A[i] = klucz then k := k+1;

Ile := k;

end;

Wyszukiwanie zadanego elementu w tablicy

function Gdzie ( var A : tab; klucz : integer ) : integer;

var i : integer;

begin

i := 0;

repeat

i := i+1;

until ( A[i]= klucz ) or ( i=N );

if A[i] = klucz then Gdzie := i

else Gdzie := 0;

end;

Sortowanie bąbelkowe tablicy

procedure Sort( var X : tab);

var i, k : integer;

t: : integer;

begin

for k := N-1 downto 1 do

for i:=1 to k do

if X[i]>X[i+1] then

begin

t:=X[i];

X[i]:=X[i+1];

X[i+1]:=t;

end;

end; {Sort}