Gewöhnliche Records in Ada sind sehr ähnlich denen in Pascal oder Modula-2. Als Beispiel seien die folgenden Typen angegeben:
type Datum is
Beispiele für Record-Variablen sind:
Geburtstag: Datum;
a,b,c: komplex;
Ada bietet zusätzlich die Möglichkeit, Records mittels sogenannter Diskriminanten zu ,,parametrieren``. Ein wesentlicher Unterschied besteht in diesem Fall zu Pascal und Modula-2; in Ada ist nämlich die Diskriminante immer Teil des Records, in Pascal und Modula-2 muß das nicht so sein. Ein Beispiel ist:
type Quadrat(Seite: integer) is
record
Mat: Matrix(1..Seite, 1..Seite);
end record;
Man kann auch Anfangswerte für Diskriminanten definieren:
type Rechteck(Laenge: integer := 10; Breite: integer := 5) is
record
Mat: Matrix(1..Laenge, 1..Breite);
end record;
Interessant wird es, wenn man Variablen solchen Typs anlegt. So ist etwa
Q1: Quadrat;
Q2: Quadrat(5);
R1: Rechteck(11,2);
R2: Rechteck;
You behandle me as the last dreck:
as hampel-man of society,
as political hans-wurst,
as complet idiot,
as religious mama-kindl and
as social soup-kasper!
Always the Black
are the beshittened!
And the gelackmeiered!
aus Armin Eichholz,
,,Black and White - Nach moderner Negerlyrik``.
type Wochentag(T: Tag) is
record
Aufstehen: Uhrzeit;
case T is
when Samstag
Freizeit: integer range 0 .. 24;
when others =
Arbeit: integer range 8 .. 17;
end case;
end record;
Der Zugriff auf einzelne Record-Komponenten erfolgt in Ada durch einen sogenannten Punkt-Operator, z.B.:
Geburtstag.Jahr
a.re
Johann Blieberger