Rekord adattípus
Sokszor fordul elő, hogy különböző típusú elemi adatok összetartoznak, a feladat szempontjából nagyobb egységnek tekinthető objektumot írnak le. Például egy iskolai nyilvántartásban egy diák adatait (név, lakcím, TAJ-szám, születési dátum, évfolyam,...) célszerű egységbe zárva kezelni. Az egységbe zárás "legősibb" eszköze a rekord.
Típus Tdiák = Rekord
név : karakterlánc
cím : karakterlánc
született : dátum
...
Rekord vége
A rekord típus mezőkből áll. A mezők adatok, nevük és típusuk van. Rekord adatszerkezet használatakor a mezők értékét a mezőszelektor segítségével érjük el.
p.x := 42
p.y := 137
távolság := sqrt(p.x*p.x+p.y*p.y)
A mezők típusa általában bármi lehet, ami az adott programozási nyelvben rendelkezésre áll, illetve a programban mi definiáltuk korábban.
Példa program pascal nyelven
program pontrend;
type Tpont = Record
x : integer;
y : integer;
end;
var T : array[1..10] of Tpont;
procedure beolvas;
var i : byte
begin
for i := 1 to 10 do readln(T[i].x, T[i].y);
end;
function d(pont : Tpont):longint;
begin
d := pont.x*pont.x+pont.y*pont.y;
end;
procedure rendez;
var i, j : byte;
tmp : Tpont;
begin
for i := 1 to 9 do
for j := i + 1 to 10 do
if d(T[i]) > d(T[j]) then
begin
tmp := T[i];
T[i] := T[j];
T[j] := tmp;
end;
end;
procedure kiir;
var i : byte
begin
for i := 1 to 10 do writeln(T[i].x, ' ', T[i].y);
end;
begin
beolvas;
rendez;
kiir;
readln;
end.