
Typ wyliczeniowy

Typ
wyliczeniowy
definiuje zbiór
identyfikatorów
oznaczających
poszczególne
wartości przez
ich wyliczenie.
Pierwszy
identyfikator ma
wartość 0, dla
kolejnego 1 itd.
Przykład:
TYPE
Tydzien=(Niedziela,
Poniedzialek,
Wtorek, Sroda,
Czwartek, Piatek,
Sobota);

Typ tablicowy

Typ
ten określa
tablicę składającą
się ze stałej
liczby elementów.
Wszystkie
elementy tablicy
muszą być również
określonego
typu. Do każdego
elementu odwołujemy
się poprzez
indeks podawany
w nawiasach
kwadratowych i
określający
pozycję danego
elementu. Każda
tablica może być
wielowymiarowa.
Przykładowa
deklaracja
tablicy 100 znaków
może wyglądać
następująco:
Nazwa_tablicy
: ARRAY[1..100]
of Char;
Słowo
kluczowe ARRAY,
służy właśnie
do definiowania
tablic. Na końcu
tej definicji,
typ Char
oznacza, że każdy
element tej
tablicy jest
typu Char, czyli
jest to znak. By
zmienić trzeci
element tablicy
możemy napisać
tak:
Nazwa_tablicy[3]:='K';
Każdą
tablicę można
przedstawić w
postaci tabeli.
By stworzy
tablicę, w której
zapamiętalibyśmy
tabliczkę mnożenia
do 10, moglibyśmy
napisać:
Mnozenie
:
Array[1..10,1..10]
of Word;
Powyższa
deklaracja
tworzy tablicę,
którą
graficznie można
przedstawić
jako tabelę o
10 wierszach i
10 kolumnach.

Typ rekordowy

Opisuje
złożoną
strukturę
danych. Taka
struktura składa
się z kilku pól.
Każde z nich
jest ściśle
określonego
typu. Definicję
rekordu
zamieszcza się
między słowami
kluczowymi
RECORD i END;.
Przykładowo
by zapamiętać
dane o
pracownikach w
jakiejś firmie,
używając samej
definicji
tablicy byłoby
to bardzo
trudne, lub
nawet niemożliwe.
Używając
tablicy typu X,
gdzie X jest
typem
rekordowym,
wykonanie powyższego
zadania jest
bardzo proste:
TYPE
Osoba = RECORD
Imie : String[10];
Nazwisko : String [20];
Wiek : Byte;
END;
VAR Ludzie : Array[1..1000] of Osoba;
Do
odczytania
informacji
zapisanych w
danym polu
rekordu używa
się kropki
(".").
np.:
Writeln(Ludzie[10].imie);
Ludzie[11].nazwisko:='Nowak';
Jeśli
chcemy np. podać
wszystkie dane
osoby nr. 2 można
napisać:
WIDTH Ludzie[2] DO
BEGIN
Imie:='Jan';
Nazwisko:='Nowak';
Wiek:=20;
END;
Można
również
deklarować
rekordy z
wariantami o
zmiennej
strukturze.
Rekord taki
zawiera
specjalne pole,
którego wartość
decyduje o
wyborze wariantu
układu pól w
zmiennej części
rekordu. Pole to
nazywa się wyróżnikowym.
Rekord
wariantowy
zajmuje obszar
pamięci
potrzebny do
zapamiętania
rekordu o najdłuższej
części
wariantowej.
Jednak odmiennie
interpretuje
dane różnych
wariantów.
Przykładowy
rekord z
wariantem:
TYPE Osoba = RECORD
Imie : String[10];
Nazwisko : String[20];
Case Stan_cywilny OF
samotny : ();
zonaty : (Data_slubu : String[10]);
rozwiedziony : (Data_slubu : String[10];
Data_rozw : String[10]);
Pole
wariantowe musi
być ostatnim
polem rekordu.

Typ zbiorowy

Typ
ten określa zbiór
potęgowy, którego
elementy są
typu porządkowego.
Przez zbiór potęgowy
należy rozumieć
zbiór
wszystkich możliwych
podzbiorów
wartości typu
porządkowego, włączając
w to zbiór
pusty. Definicja
tego typu jest
następująca:
Typ_zbiorowy
= SET OF Typ;
np.:
TYPE
Litery = SET OF 'a'..'z';
Cyfry=SET OF '0'..'9';
Teraz
zmienne typu
Cyfry mogą
przyjmować
tylko wartości
od '0' do '9'.
Na
zbiorach można
wykonywać następujące
operacje:
- +
-
dodawanie
- -
-
odejmowanie
- *
-
mnożenie
(iloczyn
zbiorów)
- IN
-
sprawdzanie
przynależności
- =
-
sprawdzanie
równości
- <=,>=
-
sprawdzanie
relacji
inkluzji
zbiorów