Felder

Alsou

Aktives Mitglied
Hallo, ich komme irgendwie mit den mehrdimensionalen Feldern nicht klar...:shock:

Könnte mir bitte jemand vielleicht die beiden Beispiele erklären.Vielen Dank im Voraus

Es macht einen Baum aus Einsen

Java:
int mitte=breite/2;
		for(int i=0; i<laenge; i++)
			for (int j=mitte-i; j<=mitte+i;j++)
				if(j>=0 & j<breite) a[i][j]=1;


umgekehrter Baum

int [] [] b=new int [laenge] [breite];
for (int i=0; i<laenge; i++)
for (int j=0;j<breite; j++)
b[laenge - i-1] [j]=a[i] [j];
 
Zuletzt bearbeitet:

XHelp

Top Contributor
Hm... deine Frage ist ziemlich unkonkret... was genau willst du denn erklärt haben?
die ersten 4 Zeilen:
Du fängst oben an in der Mitte 1 zu setzen... mit jeder Zeile erweiterst du den "1-Bereich" um je 1 Feld nach links und rechts, sprich:
____1____
___111___
__11111__ usw.

letzten 4 Zeilen:
Du spiegelst die Matrix horizontal... was in "a" auf der 1. Zeile stand steht bei b auf der letzten.

Ich weiß nicht wer diesen Code geschrieben hat, aber es wäre nicht verkehrt das Stichwort "geschweifte Klammer" in den Raum zu werfen.
 

Alsou

Aktives Mitglied
Ich würde gerne wissen, was in den Schleifen passiert... Damit ich es endlich nachvollziehen kann... wie kommt man auf breite/2 ?:oops:
 
Zuletzt bearbeitet:

Alsou

Aktives Mitglied
Nein, das sind nur Ausschnitte aus einem Programm und es funktioniert... nur kann ich die Funktionsweise nicht nachvollziehen...
 
Zuletzt bearbeitet:

XHelp

Top Contributor
Dennoch ist es einfacher den Quelltext zu lesen, wenn er sauber (/lesbar/nach Konvention) geschrieben ist.

Öhm... naja, da du von der Mitte aus anfangen musst, musst du auch die Mitte ermitteln... und die Mitte ist, öhm... in der Mitte... quasi die Hälfte von der Breite.
 

Alsou

Aktives Mitglied
Java:
public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int breite=IOTools.readInt("Breite: ");
		int laenge=IOTools.readInt("Länge:  ");
		int [][] a=new int [laenge] [breite];
		
		for (int i=0; i<laenge; i++)
			for (int j=0; j<breite;j++)
		
		         a[i][j]=0;
		
		int mitte=breite/2;
		for(int i=0; i<laenge; i++)
			for (int j=mitte-i; j<=mitte+i;j++)
				if(j>=0 & j<breite) a[i][j]=1;
		
		for(int []zeile : a){
			for(int wert:zeile)
				System.out.print(wert);
		System.out.println();
         }

	}

}

Das ganze programm
 
Zuletzt bearbeitet:

tuttle64

Bekanntes Mitglied
Nein, das sind nur Ausschnitte aus einem Programm und es funktioniert... nur kann ich die Funktionsweise nicht nachvollziehen...

mit der eingabe breite=7 und laenge=4 wird folgender output erzeugt (vorausgesetzt man verwendet im letzten block noch einige klammern)

0001000
0011100
0111110
1111111


die erste for-schleife initialisiert alle array-elemente mit 0. das ist obsolet, zumal uninitialisierte int-arrays immer mit ihrem default-wert 0 initialisiert werden, gehört aber zum guten programmierstil, die eigenen variablen stets zu initialisieren.

die funktionsweise der zweiten for-schleife hat XHelp bereits erwähnt und ist auch im obigen output sichtbar. wesentlich ist hier die bedingung (j >= 0 & j < breite), welche die 1 setzt.

das lässt sich gut in einer tabelle mit den spalten i, j und mitte nachvollziehen. für jeden durchlauf braucht man nur die werte zu berechnen und eingetragen. noch leichter geht das in einem debugger.
 

Alsou

Aktives Mitglied
Wie funktioniert das mit einem Debugger?? Kann mir jemand sagen, wie man debugger verwendet?? Das wäre echt super:)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
A Felder: arithmetisches und geometrisches Mittel Java Basics - Anfänger-Themen 3
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7
Elyt Bei Monopoly werden Felder übersprungen Java Basics - Anfänger-Themen 2
L Listen und Felder Java Basics - Anfänger-Themen 2
neerual Int-Felder erzeugen Java Basics - Anfänger-Themen 16
P Felder König array Java Basics - Anfänger-Themen 6
T Art 4 Felder Matrix Memory Java Basics - Anfänger-Themen 2
P Zugriff auf Felder in ArrayList Objekten Java Basics - Anfänger-Themen 2
D Felder Java Basics - Anfänger-Themen 2
D Übung Felder java Error kompilieren Java Basics - Anfänger-Themen 4
M Felder leer - überprüfen? Java Basics - Anfänger-Themen 2
S reflection und felder Java Basics - Anfänger-Themen 12
X Verknüpfte Excel Felder mitändern Java Basics - Anfänger-Themen 6
Z Erste Schritte 9x9 Felder Erzeugen+Aufrufen Java Basics - Anfänger-Themen 1
S Wie instanziert man Felder? Java Basics - Anfänger-Themen 11
V Zwei Felder Adderen Java Basics - Anfänger-Themen 2
W Methoden Falsche Felder von Methode belgegt Java Basics - Anfänger-Themen 14
M Spielfeld mit 10x10 Felder Java Basics - Anfänger-Themen 13
E Felder bei falscher Eingabe leeren Java Basics - Anfänger-Themen 8
S Felder mit Variablen/Tabellen verknüpfen! Java Basics - Anfänger-Themen 3
M Felder mit Methode verändern Java Basics - Anfänger-Themen 11
W Datentypen Felder mit Potenzen Java Basics - Anfänger-Themen 31
C Erste Schritte felder, die public final sind Java Basics - Anfänger-Themen 6
B Frage zur Effizienz - alle Array-Felder initialisieren oder jedes Feld auf null prüfen? Java Basics - Anfänger-Themen 4
C Felder(Größte Zahl, Index) Java Basics - Anfänger-Themen 6
K Felder Java Basics - Anfänger-Themen 5
M 3 Felder, Barcode, reinschreiben in die DB Java Basics - Anfänger-Themen 30
D Datentypen Felder: Deklaration und Initialisierung Java Basics - Anfänger-Themen 5
C Java Felder bearbeiten Hilfe Java Basics - Anfänger-Themen 4
H Felder mit unterschiedl. Typen sortieren Java Basics - Anfänger-Themen 5
B n-dimensionale Felder in m-dimensionale Felder konvertiert Java Basics - Anfänger-Themen 30
H felder vergleichen Java Basics - Anfänger-Themen 6
F Felder von aufrufender Klasse ändern Java Basics - Anfänger-Themen 16
A Mehrdimensionale Felder Java Basics - Anfänger-Themen 18
C Felder im Dialog zurücksetzen Java Basics - Anfänger-Themen 3
E Wechselnde Felder erzeugen Java Basics - Anfänger-Themen 15
maddin86 Eine Methode für ein- und zweidimensionale double Felder als Parameter? Java Basics - Anfänger-Themen 5
A Felder- Minimum/Maximum Java Basics - Anfänger-Themen 2
D Felder Java Basics - Anfänger-Themen 7
D Felder Java Basics - Anfänger-Themen 2
T Border Layout alle mittleren felder gleich groß Java Basics - Anfänger-Themen 3
C Speicherverwaltung für Felder Java Basics - Anfänger-Themen 8
S EINDIMENSIONALE FELDER? Java Basics - Anfänger-Themen 23
G 3. Aufgaben und komme nicht weiter (Felder, Methoden) Java Basics - Anfänger-Themen 3
M Felder (Wo liegt der Fehler?) Java Basics - Anfänger-Themen 2
D Wie werden Felder grau? Java Basics - Anfänger-Themen 26
S generische Felder Java Basics - Anfänger-Themen 2
A Felder Java Basics - Anfänger-Themen 3
D String mit split teilen und leere Felder behalten Java Basics - Anfänger-Themen 4
R Felder unterschiedlichen Typs Java Basics - Anfänger-Themen 9
J 2 Felder aus DB selektieren u. in JList - eines verstecken? Java Basics - Anfänger-Themen 7
T Suche über mehrere Felder value = key = value Java Basics - Anfänger-Themen 3
B Array doppelt Felder löschen Java Basics - Anfänger-Themen 27
B clone(), Clonable und Felder von Interfacetypen Java Basics - Anfänger-Themen 3
G Felder kopieren Java Basics - Anfänger-Themen 8
G Felder-Länge Java Basics - Anfänger-Themen 2
G Felder zurückgeben? Java Basics - Anfänger-Themen 3
C Früheste Datum aus 3 Felder Java Basics - Anfänger-Themen 20
M Felder innerhalb eines Arrays vergleichen Java Basics - Anfänger-Themen 2
D Felder vergleichen Java Basics - Anfänger-Themen 14
D Verbindung von Methoden und Felder Java Basics - Anfänger-Themen 3
A Aus dem menü heraus andere Felder bearbeiten Java Basics - Anfänger-Themen 2
S Statische Felder - statische Methoden Java Basics - Anfänger-Themen 2
G variable felder in java? geht das? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben