Moin',
ich lese mir gerade das Kapitel Arrays im Buch "Java als erste Programmiersprache" durch. Ein Programmcode aus diesem Kapitel bereitet mir etwas Kopfschmerzen. Es wäre super, wenn jemand auf meine Fragen eingehen könnte:
1.) Ich habe noch immer nicht verstanden, was ein mehrdimensionales Array eigentlich ist. Ein eindimensionales Array wird auf dem Bildschirm ja in einer Zeile dargestellt, z.B.
1 1 1 1 1 1 1 1 1 1 1 1 1 1
Wie muss man sich aber ein zweidimensionales Array vorstellen, das durch den Code "int [][] binom = new int [EBENE][];" realisiert wird?
Meint das wie in der Matematik eine Matrix aus n Zeilen x m Spalten, falls ja, was ist dann bei einem dreimensionalen Array?
2.) Im unteren Code wird ja durch "int [][] binom = new int [EBENE][];" ein Array-Objekt angelegt.
Gleich nach der ersten for-Schleife steht "binom = new int [i+1];". Genau das verstehe ich nicht... Es müsste doch heißen "int [] binom = new int [i+1];" oder ist damit das zweidimensionale Array gemeint? :bahnhof:
Denke wenn ich die zwei Punkte begreife, sollte der Rest kein Problem mehr darstellen. Vielen Dank für Eure Mühe.
Gruß
Wang
ich lese mir gerade das Kapitel Arrays im Buch "Java als erste Programmiersprache" durch. Ein Programmcode aus diesem Kapitel bereitet mir etwas Kopfschmerzen. Es wäre super, wenn jemand auf meine Fragen eingehen könnte:
1.) Ich habe noch immer nicht verstanden, was ein mehrdimensionales Array eigentlich ist. Ein eindimensionales Array wird auf dem Bildschirm ja in einer Zeile dargestellt, z.B.
1 1 1 1 1 1 1 1 1 1 1 1 1 1
Wie muss man sich aber ein zweidimensionales Array vorstellen, das durch den Code "int [][] binom = new int [EBENE][];" realisiert wird?
Meint das wie in der Matematik eine Matrix aus n Zeilen x m Spalten, falls ja, was ist dann bei einem dreimensionalen Array?
2.) Im unteren Code wird ja durch "int [][] binom = new int [EBENE][];" ein Array-Objekt angelegt.
Gleich nach der ersten for-Schleife steht "binom = new int [i+1];". Genau das verstehe ich nicht... Es müsste doch heißen "int [] binom = new int [i+1];" oder ist damit das zweidimensionale Array gemeint? :bahnhof:
Denke wenn ich die zwei Punkte begreife, sollte der Rest kein Problem mehr darstellen. Vielen Dank für Eure Mühe.
Gruß
Wang
Java:
// Datei: PascalDreieck.java
public class PascalDreieck
{
public static void main (String[] args)
{
final int EBENE = 10;
int i;
int j;
int [][] binom = new int [EBENE][];
for (i = 0; i < binom.length; i++)
{
// Anlegen eines Arrays mit der Größe der entsprechenden
// Ebene.
binom [i] = new int [i+1];
// Erstes Element einer Ebene mit 1 belegen.
binom [i][0] = 1;
// Letztes Element einer Ebene mit 1 belegen.
binom [i][binom [i].length-1] = 1;
System.out.printf ("%1d ", binom [i][0]);
for (j = 1; j < binom [i].length-1; j++)
{
binom [i][j] = binom [i-1][j-1] + binom [i-1][j];
System.out.printf ("%3d ", binom [i][j]);
}
if (i > 0)
{
// Für alle Ebenen ausser der ersten wird zum Schluss
// noch eine 1 ausgegeben.
System.out.printf ("%3d", binom [i][binom [i].length-1]);
}
// Ausgabe eines Zeilenumbruchs nach jeder Ebene.
System.out.println();
}
}
}
Zuletzt bearbeitet von einem Moderator: