Der Epina Delphi-Kurs bietet Ihnen eine allgemeine Einführung in das Programmieren mit Delphi/Pascal. Mit vielen ausgearbeiteten Beispielen können Sie direkt in die Delphi-Programmierung einsteigen. Mehr dazu finden Sie hier....

Felder

Möchte man mehrere Variablen gleichen Typs anlegen und stehen diese Variablen ín einer Beziehung zu einander, so bieten sich dazu Felder an. Unter einem Feld (Delphi-Keyword "array") versteht man die regelmäßige Anordnung von Variablen des gleichen Typs, in einer Art und Weise, dass die einzelnen Variablen über einen Index angesprochen werden können. Felder können eine oder mehrere Dimensionen aufweisen. Die Deklaration eines Feldes geht nach folgendem Schema:

Name : array[Index1..Index2] of AType;

Wobei Index1 und Index2 ganzzahlige Konstanten sein müssen. Der Typ AType kann beliebig sein, er muss nur bereits deklariert sein. Die beiden Punkte in der Deklaration sind nicht willkürlich, sondern sind Teil der Syntax (lies: "bis"). Mehrdimensionale Felder werden deklariert, indem man die entsprechenden Indexbereiche durch Beistriche getrennt in die eckigen Klammern schreibt:

Name : array[von1..bis1, von2..bis2, von3..bis3] of AType;

Hinweis: Die Deklaration von mehrdimensionalen Feldern kann sehr viel Speicherplatz verbrauchen. So werden z.B. für ein vierdimensionales Feld von reellen Zahlen mit jeweils 100 Indizes (array[1..100, 1..100, 1..100, 1..100] of double) bereits 800 MB an Speicher benötigt (100*100*100*100*8 = 800 MB).

Um auf einzelne Werte eines Feldes zugreifen zu können, verwendet man den Variablenname gefolgt von eckigen Klammern, in denen die entsprechenden Indizes stehen. So adressiert zum Beispiel der Ausdruck MeinFeld[2,8] das Element des Feldes MeinFeld in der 2. Spalte und der 8. Zeile. Die Zahl der Indizes muss immer mit der Deklaration übereinstimmen.

Beispiel: Felder werden immer dann eingesetzt, wenn viele gleichartige Werte gespeichert werden müssen. So würde man zum Beispiel ein Spektrum als eindimensionales Feld abspeichern, wobei die Indizes des Feldes den Wellenlängen entsprechen, während die einzelnen Werte des Feldes die Intensitäten bei den jeweiligen Wellenlängen enthalten. Durch den Einsatz eines Feldes kann man also mit nur einer Variablen (dem Feld eben) auf jeden Spektralwert zugreifen. Angenommen, man möchte die Summe aller Spektralwerte bilden, so könnte man das einfach mit einem Feld und einer for-Schleife machen:

const
  SPEC_BEGIN = 200;
  SPEC_END = 400;

var
  UVSpec : array[SPEC_BEGIN..SPEC_END] of double;
  i      : integer;

begin
sum := 0;
for i:=SPEC_BEGIN to SPEC_END do
  sum := sum + UVSpec[i];
end;

Anmerkung: Diese Beispiel hat wohl keine praktische Bedeutung, zeigt aber die Syntax von und den Umgang mit Feldern auf einfache Weise.

Last Update: 2011-08-16