next up previous contents
Nächste Seite: Vektoren und Funktionen Aufwärts: Vektoren Vorherige Seite: Elementenzugriff, Indizierung   Inhalt

Mehrdimensionale Vektoren

Eine wichtige Eigenschaft der zusammengesetzten Datentypen ist ihre beliebige Kombinierbarkeit. Daraus folgt, daß es möglich sein muß, nicht nur Vektoren von einfachen Typen wie int oder double zu bilden, sondern auch Vektoren von zusammengesetzten Typen, also auch Vektoren von Vektoren (von Vektoren von...).

Die Deklaration dabei ist einfach: der eckigen Klammer der normalen Vektordeklaration (Anzahl der Spalten) geht eine weitere Klammer voraus, die quasi die Andzahl der Zeilen eines zweidimensionalen Vektors angibt. Dieser kann dann, ebenfalls in eckigen Klammern die Anzahl der zweidimensionalen Vektoren in der dritten Dimension vorausgehen usw.

So deklariert


int array[3][12];

eine Variable namens array, die aus 3 Vektoren von je 12 ints besteht.

Die folgende Funktion errechnet aus der Angabe von Tag, Monat und Jahr, dem wievielten Tag des Jahres unter Berücksichtigung von Schaltjahren das angegebene Datum entspricht:


static int tagestabelle[2][12] = {
  {31,28,31,30,31,30,31,31,30,31,30,31},
  {31,29,31,30,31,30,31,31,30,31,30,31}
};

int tag_des_jahres (int tag, int monat, int jahr)
{
  int i, schaltjahr;

  schaltjahr = jahr % 4 == 0 && jahr % 100 != 0 || jahr % 400 == 0;
  
  for (i = 0 ; i < monat -1; ++i)
    tag += tagestabelle[schaltjahr][i];
  return tag;
}



Thomas Neuhaus
2001-01-14