Wofür wird ein Array in der Informatik benutzt?

5 Antworten

Die anderen antworten waren ja schon gut, im Endeffekt dient ein Array zur Speicherung von Werten in einem definierten Bereich.

Bsp: ich habe 4 werte, A bis D. Diese kann ich in einem Array speichern und mit

arrayname[0] zB auf das erste Feld, Wert A, des Arrays zugreifen, da man immer mit dem Index 0, nicht 1, beginnt. In arrayname[1] steht dann der Wert B. In arrayname[2] dann C usw.

Man kann auch mehrdimensionale Arrays anlegen, aber das ist für dich noch etwas zu viel, denke ich.

Der Sinn von Arrays liegt meiner Meinung nach ganz klar in der gruppierten Datenspeicherung zur weiteren Verwendung im Code. Ein Array allein bringt noch nichts, aber für Schleifen oder einfach zum direkten ansprechen einzelner Felder durch numerische Variablen zB, sehr sinnvoll. Also arrayname[i] während i dann dynamisch aus einer Funktion ermittelt wird oder in einer Schleife durchgezählt wird. Da ist viel möglich.

Woher ich das weiß:eigene Erfahrung – Neben dem IT-Beruf erworbene Kenntnisse.

Stell mal vor, du hast folgende Situation:

Du sollst beispielsweise alle Monate speichern. Du kannst das nun folgendermaßen machen:

monat1 = 'Januar';
monat2 = 'Februar';
...
monat12 = 'Dezember';

Das ist ein bisschen mühselig. Du weißt nicht (klar, das weiß man, aber es ist technisch nur schwer herauszufinden), wie viele Monate es gibt und die Variablen stehen in keinem wirklichen Zusammenhang zueinander. So wäre es besser und kompakter:

monate = ['Januar','Februar','März','April','Mai','Juni', 'Juli','August','September','Oktober','November','Dezember'];

Jetzt kannst du damit verschiedene Sachen anstellen:

monate[0] //erster Monat: Januar
monate[monat.length-1] //letzter Monat: Dezember
monate.length //Anzahl der Monate: 12

und einiges mehr.

Oder stell' dir mal vor, du hast keine Datenbank, aber willst verschachtelte Daten abspeichern. Das mit Variablen zu tun, wäre wirklich unglaublich aufwendig. Das kannst du folgendermaßen (mit einer Mischung aus Array und Objekt) machen:

buecher = [{
    title: 'Harry Potter und der Stein der Weisen',
    author: 'Joanne K. Rowling',
    pages: 335   
},
{
    title: 'Der Herr der Ringe - Die Gefährten',
    author: 'J. R. R. Tolken',
    pages: 1279
}]

Der Abruf ist auch denkbar einfach und sieht aus wie bei einem (multidimensionalen) Array:

buecher[0].author //Joanne K. Rowling

oder:

buecher[0]['author']
Woher ich das weiß:Berufserfahrung – Seit 2014

Ein Array ist im deutschen ein Feld. In einem Array kann man Daten des gleichen Datentyps abspeichern.
Wenn man 100 int Werte abspeichern möchte, kann man ein Array erstellen und muss nicht 100 int-Variablen erstellen.

Der Index eines Arrays geht von Null bis zu deiner gewünschten Anzahl-1.
Java Beispiel:
int[] test = new int[100];
Hierbei können 100 int Werte von 0 bis 99 abgespeichert werden.

Es gibt auch noch Mehrdimensionale Arrays.
Man kann sich ein mehrdimensionales Array als ein Array in einem Array-Index vorstellen.
Java Beispiel:
int[][] test2 = new int[2][2];
Aufgezeichnet sieht das Array so aus:
Zahl1 Zahl2
Zahl3 Zahl4
Wichtig ist, dass die erste Zahl die Zeile und die zweite Zahl die Spalte angibt.

Hoffe ich konnte helfen.
MfG,
Mike

mepeisen  02.02.2016, 13:01

Wichtig ist, dass die erste Zahl die Zeile und die zweite Zahl die Spalte angibt.

Wichtig ist vor allem, dass man sich einig ist, was nun was ist. Wie der Computer es technisch abspeichert, ist wurscht. Als Entwickler muss man sich darüber klar sein, was die erste Dimension ausdrückt, was die zweite usw.

Wenn man beispielsweise eine Karte abbildet, kann man natürlich festlegen, dass die erste Dimension die Zeile (X-Koordinate) ist und die zweite die Spalte (Y-Koordinate). Aber genauso gut geht es auch umgekehrt :-)

0

Arrays sind gut, um nicht für jeden Wert den du hast extra eine Zeile code für dein Speicher zu schreiben. Statt int name = machst du int name [] = und kannst somit alle werte danach einfügen. Sa hast nicht für 100 werte 100 Zeilen, sondern nur noch eine Zeile. Spart Zeit. Fortgeschrittene mönnen damit soge 2 und 3 Dimensionale Räume erstellen. Es kann auch als leveleditor genutzt werden.

lcp1998 
Fragesteller
 02.02.2016, 08:22

Der erste Teil hilft mir sehr danke Der Rest ist allerdings zu schwer zu verstehen

0
mepeisen  02.02.2016, 08:25
@lcp1998

Die Gedankensprünge zu mehrdimensionalen Arrays und dann zu "Leveleditor" ist auch nicht nur gewaltig, er ist auch als Erklärung für Arrays denkbar ungünstig. Gib dir keine Mühe, so etwas zu verstehen.

1
UneGrandeArche  02.02.2016, 09:23

ich kann es euch gerne mal abend über Skype in c# zeigen ^^ die zwei sachen hab ich nur als Beispiel genommen.

1

Du meinst sicher in der Programmierung.

Kannst du hier am besten nachlesen

https://de.wikipedia.org/wiki/Feld_%28Datentyp%29

lcp1998 
Fragesteller
 02.02.2016, 08:10

Jaa meine ich Auf den Artikel bin ich auch schon gestoßen, hab ihn leider nicht ganz verstanden

0
chokdee  02.02.2016, 08:23
@lcp1998

Ok ich versuche es vereinfacht.

Möchtest du z.B. Koordinaten abspeichern, dann kannst du 2 Variablen benutzen.
int x;
int y;

Oder du benutzt ein Array. (hier in Java)

int coordinates[] = new int[2];

Dann greifst du immer so zu

x = coordinates[0];
y = coordinates[1];

Jetzt kannst du dir vorstellen du willst ganz viele x-Koordinaten speichern dann machst du:

int x_coordinates = new int[1000];

Und schon kannst du 1000 x Koordinate ablegen.

Hoffe das ist jetzt klarer

1
mepeisen  02.02.2016, 08:28
@lcp1998

Noch ein zweiter Erklärungsansatz. Stell dir eine einzelne Variable immer als ein Schubfach in einem riesigen Aktenschrank vor. In dieses Schubfach kannst du immer etwas reintun, solange es passt. Ist das Schubfach vom Typ int, kannst du entsprechend Ganzzahlen reintun (solange sie nicht zu groß/klein sind).

Ein Array ist nichts anderes, als X Schubfächer auf einmal. ein Array vom Typ int[10] bietet also 10 Plätze für 10 Zahlen auf einmal. Man könnte auch zehn einzelne Schubfächer definieren, aber da ist es nicht so "bequem" darauf zuzugreifen, denn dann musst du ja den Namen jedes einzelnen Schubkastens kennen.

Bei einem Array brauchst du nur den Namen des einen Schubfachs zu kennen, was den Platz bietet und ab da brauchst du nur noch zu wissen "Element an Position 0, 1, 2 usw."

0
lcp1998 
Fragesteller
 02.02.2016, 08:33
@lcp1998

und was ist der unterschied eindimensional und mehrdimensionales array

0
chokdee  02.02.2016, 08:41
@lcp1998

Kann man gut in den Koordinaten weiter ausdrücken.

Möchtest du nun die x & y Koordinaten zusammen speichern und als Reihe dann manchst du folgendes.

int coordinates[][] = new int[2][1000];

Damit hast du nun 1000x dir Möglichkeit x und y als Päärchen abzuspeichern.

Also z.B.

int x1 = coordinates[0][0];
int y1 = coordinates[1][0];

0
mepeisen  02.02.2016, 12:57
@lcp1998

Oder wieder mit dem Aktenschrank verglichen:

Zweidimensionales Array ist wie eine Tabelle. Oder so wie ein einzelnes Excel-Sheet, in dem du Zeilen und Spalten hast.

Ein dreidimensionales Array wäre ein Excel mit mehreren Sheets, also mehreren Arbeitsblättern.

Ein vierdimensionales Array könnten 10 Excel-Dateien sein (1. Dimension), die mehrere Sheets enthalten (2. Dimension), die wiederum Zeilen und Spalten haben (3. und 4. Dimension).

Damit kommst du auch schon zu einem gewissen Nachteil, was Arrays anbelangt. Arrays sind nur dann sinnvoll lesbar, wenn du weißt, was die jeweilige Dimension ist. Der Zugriff "a[3][4]" kann bedeuten: "Zeile 3 Spalte 4". Er kann aber auch bedeuten "Spalte 3 Zeile 4". Dem Computer ist es freilich wurscht, aber du als Programmierer siehst es dem Array nicht an. Deswegen sollte man bei mehrdimensionalen Arrays immer etwas vorsichtig sein und sie nicht unbedingt exzessiv verwenden, weil es immer auch gute Alternativen gibt in jeder Programmiersprache.

0