zweidimensionales Array einselen und ausgeben

Status
Nicht offen für weitere Antworten.
Hallo,

ich hänge an einer vermutlich ganz einfachen Aufgabe (keine Hausaufgabe!!), sondern eine Aufgabe aus dem Modul meines Online-Studiengangs. Ich ganz simpel eine Matrix deklarieren und ausgeben, bekomme aber nur Nullen.
Wo liegt der Fehler??

[HIGHLIGHT="Java"]/**
* MatrixAusgabeTest.java
matrixgerechter Ausgabe am Bildschirm
* @author Goerlitz / Fabio Bacigalupo
* @version 1.0, 1/2002
*/
public class MatrixAusgabeTest{


public static int[][] matrix = new int[3][4];


/**
* einlesen: Liest Zahlen in die
* Matrix ein
*/
public static void einlesen() {


// Deklaration
matrix = new int[3][4];

//Initialisierung
int[][] matrix = {
{17, 16, 14, 15},
{10, 10, 10, 10},
{28, 29, 28, 29}
};


}
/**
* ausgeben: Gibt die Reihung matrixgerecht am Bildschirm aus
**/
public static void ausgeben() {
for (int k = 0; k < matrix.length; ++k) {

for (int l = 0; l < matrix.length; ++l) {
System.out.print(matrix[k][l] + "\t");
}
System.out.println("");

}
}
}


[/HIGHLIGHT]

[HIGHLIGHT="Java"]/**
* MatrixAusgabeStart.java
* Programm, das ein Objekt der Klasse MatrixAusgabe.java erzeugt
* um die Methoden aufzurufen
* @author Goerlitz / Fabio Bacigalupo
* @version 1.0, 1/2002
*/
public class MatrixAusgabeStartTest {

public static void main(String[] Args) {

MatrixAusgabeTest matrix = new MatrixAusgabeTest();

System.out.print("\nDas Programm erzeugt eine Matrix, ");

System.out.println("deren Komponenten ganzzahlige Zahlen sind. ");

matrix.einlesen();
matrix.ausgeben();

}
}[/HIGHLIGHT]


Vielen Dank im Voraus
Hier mal das Original-Programm aus dem Modul. Statt der Zufallszahlen wollte ich einfach mit festen Werten initialisieren.

[HIGHLIGHT="Java"]/**
* MatrixAusgabe.java
* Programm zum Fuellen einer zweidimesionalen Reihung mit
* Zufallszahlen und matrixgerechter Ausgabe am Bildschirm
* @author Goerlitz / Fabio Bacigalupo
* @version 1.0, 1/2002
*/
public class MatrixAusgabe {

protected static final int anzZeilen = 3;
protected static final int anzSpalten = 4;
private static int[][] matrix = new int[anzZeilen][anzSpalten];
private static java.util.Random generator;

/**
* einlesen: Liest Zufallszahlen zwischen 0 und 9 in die
* Matrix ein
*/
public static void einlesen() {

generator = new java.util.Random();
for (int i = 0; i < anzZeilen; ++i) {
for (int j = 0; j < anzSpalten; ++j) {
matrix[j] = generator.nextInt(6);
}
}
}

/**
* ausgeben: Gibt die Reihung matrixgerecht am Bildschirm aus
**/
public static void ausgeben() {
for (int k = 0; k < anzZeilen; ++k) {
for (int l = 0; l < anzSpalten; ++l) {
System.out.print(matrix[k][l] + "\t");
}
System.out.println("");
}
}
}
[/HIGHLIGHT]

[HIGHLIGHT="Java"]/**
* MatrixAusgabeStart.java
* Programm, das ein Objekt der Klasse MatrixAusgabe.java erzeugt
* um die Methoden aufzurufen
* @author Goerlitz / Fabio Bacigalupo
* @version 1.0, 1/2002
*/
public class MatrixAusgabeStart {

public static void main(String[] Args) {

MatrixAusgabe matrix = new MatrixAusgabe();

System.out.print("\nDas Programm erzeugt eine Matrix vom Typ ");
System.out.println(matrix.anzZeilen + "," + matrix.anzSpalten + " ");
System.out.println("deren Komponenten ganzzahlige Zufallszahlen ");
System.out.println("aus dem Intervall [0..9] sind.\n");

matrix.einlesen();
matrix.ausgeben();

}
}[/HIGHLIGHT]
 
Zuletzt bearbeitet:

ARadauer

Top Contributor
mhn ja ist für einen anfänger vielleicht nicht ganz einfach zu verstehen... aber

Code:
  // Deklaration
           matrix = new int[3][4];

            //Initialisierung
		 	int[][] matrix = {
		 	{17, 16, 14, 15},
		 	{10, 10, 10, 10},
		 	{28, 29, 28, 29}
	        };
matrix = new int[3][4]; das wäre jetzt die variable aus der klasse,
int[][] matrix = {.. hiermit initialisierst du eine neue lokale variable

so müsste es funktionieren

Code:
  // Deklaration
           matrix = new int[3][4];

            //Initialisierung
		 	matrix = {
		 	{17, 16, 14, 15},
		 	{10, 10, 10, 10},
		 	{28, 29, 28, 29}
	        };
 
Danke. Dein Erklärung leuchtet schon ein. Jetzt meckert der Compiler: Illegal start of expression. Auch mit einer for-Schleife zum Einlesen funktioniert es nicht.
 
Zuletzt bearbeitet:

hdi

Top Contributor
du kannst nicht einfach

matrix = ...

schreiben. Du musst immer angeben worum es sich handelt:

[HIGHLIGHT="Java"]// Deklaration:
int[][] matrix = new int[3][4][/HIGHLIGHT]

Man kann Arrays aber glaub ich nur direkt bei der Deklaration initialisieren,
danach muss man sie einzeln befüllen.

Entweder

[HIGHLIGHT="Java"]int[][] matrix = new int[][]{
{17, 16, 14, 15},
{10, 10, 10, 10},
{28, 29, 28, 29}
};[/HIGHLIGHT]

oder

[HIGHLIGHT="Java"]int[][] matrix = new int[3][4];
// jetzt einzeln befüllen[/HIGHLIGHT]

Der von Ardauer gepostete Code funktionert, soweit ich weiss, nicht.
 

hdi

Top Contributor
Ja sie besteht aus Nullen wenn du es nicht befüllt hast.

Nach

[HIGHLIGHT="Java"]int[][] matrix = new int[3][4][/HIGHLIGHT]

musst du die einzelnen stelle befüllen:

[HIGHLIGHT="Java"]matrix[0][0] = 17;
matrix[0][1] = 16;
// usw.[/HIGHLIGHT]
 

Schandro

Top Contributor
matrix ist ne Membervariable, gelle? d.h. das

int[][] matrix = new int[3][4]:

Darf nicht innerhalb einer Methode gemacht werden, weil sonst ne neue Variable erstellt wird, die auch matrix heist. In der Methode muss wenn überhaupt stehen

matrix = new int[3][4];
 

hdi

Top Contributor
Ah ja klar, wenn das ne Member-Variable ist darfst du natürlich nicht
eine neue Variable mit dem gleichen Namen in der Methode erstellen.

Stichwort "Überschatten"
 

downtimes

Neues Mitglied
Code:
for (int k = 0; k < matrix.length; ++k) {
     for (int l = 0; l < matrix.length; ++l) {
        System.out.print(matrix[k][l] + "\t");
}

ganz schlecht.. du solltest nicht zweimal matrix length verwenden sondern wenn dann in der inneren schlaufe matrix[k].length sonst kanns zu Exceptions kommen.

also machs so

Code:
for (int k = 0; k < matrix.length; ++k) {
     for (int l = 0; l < matrix[k].length; ++l) {
        System.out.print(matrix[k][l] + "\t");
}
 
Ok danke..
Leider habe ich mein Problem noch nicht gelöst. Es ist mein erster Kontakt mit zweidimensionalen Arrays. Am WE werde ich noch experimentieren, es kann ja eigentlich so ganz schwierig nicht sein..

Danke für die Hilfe!!!
 

Quaxli

Top Contributor
Ich würde die Schleife so ausgeben

[highlight=Java]
for (int k = 0; k < matrix.length; k++) {

for (int l = 0; l < matrix[k].length; l++) {

System.out.print(matrix[k][l] + "\t");

}

System.out.println("");
}
}[/highlight]

<edit>
Hab' gerade gesehen, daß downtimes das ja so erklärt hat... :(
</edit>
 

0x7F800000

Top Contributor
und dieses println("") hast du da aus welchem grund hingeschrieben?
println() gibt (wahrscheinlich) einfach sofort einen Zeilenumbruch aus.
print('\n') gibt auch direkt einen Zeilenumbruch aus.
println("") dagegen nimmt die leere zeile und fängt erstmal damit an, die in den Ausgabestrom zu schreiben... Voll der Performancekill, die arme nanosekunde^^ ;)
 

hdi

Top Contributor
@ Thread-Erstellerin

Ein 2d-Array ist ein Array von Arrays. Wenn du weisst, was ein 1d-Array ist,
solltest du keine Probleme haben.

Mit der ersten Dimension greifst du auf eines der Unter-Arrays zu, das ist noch
kein Element.
Erst in Kombination mit der zweiten Dimension kriegst du ein Element.

[HIGHLIGHT="Java"]int zahl = array[x][y];[/HIGHLIGHT]

macht also einfach nur folgendes:

[HIGHLIGHT="Java"]int zahl;
int[] unterArray = array[x];
zahl = unterArray[y];[/HIGHLIGHT]

Deswegen kannst du auch bei Schleifen nicht immer nur array.length verwenden,
weil das nur gut geht falls die enthaltene Matrix quadratisch ist, also falls die Anzahl
der einzelnen Elemente in jedem Unter-Array gleich der Anzahl der Unterarrays ist.

array.length = Anzahl von Arrays im Array
array[x].length = Anzahl von Elementen im Unter-Array x
 
Danke,

die Schleife habe ich bereits geändert. Es werden trotzdem nur Nullen ausgegeben. Die println("")-Methode sorgt für den Zeilenumbruch und somit für eine matrixgerechte Ausgabe. Es ist wie gesagt eine Aufgabe aus einem Lehrmodul. Es geht sicherlich alles geschickter und kürzer, aber ich bin noch ganz am Anfang.

Sorry, wenn ich mich hier so dusselig anstelle..

Melde mich, wenn ich es hinbekommen habe. DANKE!!!
 

hdi

Top Contributor
Wenn nur Nullen rauskommen befüllst du das falsche Array, bzw. lässt dir das
falsche ausdrucken.
Irgendwo hast du 2 Arrays am Start... reduzier das mal auf eins.
konkret heisst das im Code darf nur ein mal

[HIGHLIGHT="Java"] = new[...][...][/HIGHLIGHT]

oder

[HIGHLIGHT="Java"] = {{...,...,...},{...},...}
[/HIGHLIGHT]
vorkommen.
 

0x7F800000

Top Contributor
jetzt fängt das Raten an: OP hat den quellcode schon längst dreimal abgeändert, und berichtet stets von irgendwelchen Problemen, aber nach so vielen Änderungen kann man nur noch sehr grob raten, wo der Fehler liegt. Warten wir einfach mal, bis der neue code gepostet wird.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
P Zweidimensionales Array als Tabelle mit befüllten Zahlen Java Basics - Anfänger-Themen 10
Yasemin bahar zweidimensionales Array Java Basics - Anfänger-Themen 5
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
J zweidimensionales Array Java Basics - Anfänger-Themen 1
S Zweidimensionales Array in ein eindimensionales Array speichern Java Basics - Anfänger-Themen 6
J Zweidimensionales array kopieren und in eindimensionales überführen Java Basics - Anfänger-Themen 304
X Java zweidimensionales Array Java Basics - Anfänger-Themen 5
J Zweidimensionales Array in CSV File exportieren Java Basics - Anfänger-Themen 3
U Methoden Zweidimensionales Array mit Arrays.sort sortieren? Java Basics - Anfänger-Themen 22
F Erste Schritte zweidimensionales array Java Basics - Anfänger-Themen 2
J Erste Schritte zweidimensionales Array Muster befüllen. Java Basics - Anfänger-Themen 4
K drei eindimensionale Arrays in ein zweidimensionales Array Java Basics - Anfänger-Themen 10
K Zweidimensionales Array erstellen und zufällig mit 0 und 1 füllen Java Basics - Anfänger-Themen 11
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
W Erste Schritte Zweidimensionales Array - Gerade Zahlen anzeigen lassen Java Basics - Anfänger-Themen 3
L zweidimensionales char array reihenfolge ändern ? Java Basics - Anfänger-Themen 2
C ZweiDimensionales Array erstellen und Spiegeln Java Basics - Anfänger-Themen 1
H zweidimensionales array füllen Java Basics - Anfänger-Themen 6
D Zweidimensionales Array ( Java Basics - Anfänger-Themen 2
D Zweidimensionales Array (Länge) Java Basics - Anfänger-Themen 2
M Zweidimensionales Array aus Textdatei gewinnen Java Basics - Anfänger-Themen 6
M Zweidimensionales Array um 1 addieren Java Basics - Anfänger-Themen 3
B Zweidimensionales Array Elemente jeder Spalte zählen Java Basics - Anfänger-Themen 9
C Methoden Diagonalen am best. Punkt im zweidimensionales array finden Java Basics - Anfänger-Themen 3
S Zweidimensionales Array mit Diagonalen Java Basics - Anfänger-Themen 9
M Zugriffsproblem auf (zweidimensionales) Array in einer ArrayList Java Basics - Anfänger-Themen 15
C Datentypen Zweidimensionales Array mit String und int Java Basics - Anfänger-Themen 3
W Datentypen Zweidimensionales Boolean Array Java Basics - Anfänger-Themen 13
A Zweidimensionales Array Java Basics - Anfänger-Themen 3
M Zweidimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
C zweidimensionales Array sortieren Java Basics - Anfänger-Themen 6
B Zweidimensionales Array durchsuchen und ändern Java Basics - Anfänger-Themen 8
J Zweidimensionales Array durch ToString ausgeben lassen Java Basics - Anfänger-Themen 21
B Zweidimensionales Array mit boolean Werten Java Basics - Anfänger-Themen 3
M Zweidimensionales Array befüllen Java Basics - Anfänger-Themen 4
C Zweidimensionales String Array initialisieren Java Basics - Anfänger-Themen 2
S Zweidimensionales Array mit Schleife summieren Java Basics - Anfänger-Themen 2
N zweidimensionales array größe bestimmen Java Basics - Anfänger-Themen 1
F Datentypen Zweidimensionales Array füllen Java Basics - Anfänger-Themen 6
S zweidimensionales ARRAY Java Basics - Anfänger-Themen 2
S zweidimensionales Array Java Basics - Anfänger-Themen 6
berti99 Zweidimensionales Array befüllen Java Basics - Anfänger-Themen 5
U Zweidimensionales Array mit Eindimensionalem Array Java Basics - Anfänger-Themen 7
G Zweidimensionales Array - dynamisch Java Basics - Anfänger-Themen 4
M Zweidimensionales Array Java Basics - Anfänger-Themen 3
G zweidimensionales Array vergrößern Java Basics - Anfänger-Themen 3
M Zweidimensionales dynamisches Array füllen Java Basics - Anfänger-Themen 2
J zweidimensionales Array Java Basics - Anfänger-Themen 3
M Zweidimensionales String-Array initialisieren Java Basics - Anfänger-Themen 6
P zweidimensionales Array erstellen Java Basics - Anfänger-Themen 9
D erste spalte eines zweidimensionales Array sortieren ??!! Java Basics - Anfänger-Themen 2
N zweidimensionales 10x10 Feld erstellen Java Basics - Anfänger-Themen 3
D aus 2 arrays ein zweidimensionales formen Java Basics - Anfänger-Themen 9
R dynamisches zweidimensionales Feld erzeugen Java Basics - Anfänger-Themen 8
V Zweidimensionales Ganzzahlfeld Java Basics - Anfänger-Themen 7
A Zeichenkette teilen mit Substring oder Char Array Java Basics - Anfänger-Themen 14
A 6. Element aus einem Array zurückgeben Java Basics - Anfänger-Themen 1
A Was bedeutet bei einem Array "int a [MAX][MAX];", Java Basics - Anfänger-Themen 7
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen


Oben