# 2D Array mit Füllung



## MatzeKo (23. Nov 2014)

Hallo, 
Ich wollte mal fragen ob mir jemand helfen könnte.
Ich bin nicht sehr gut in Java, jedoch soll ich ein 
2D Array erstellen mit der mindest größe 10x10.
Er soll jedes Array Feld mit = ausgeben und dazu
soll aus M´s ein großes M enstehen in diesem Array.
Desweiteren soll ich es so schreiben das es für jede Größe ab
10x10 passt. Jedoch weiß ich noch nicht einmal richtig wie ich anfangen soll.

Erbitte um Hilfe. 
MFG: Matze


----------



## Saheeda (23. Nov 2014)

Fang hier an:

Tutorial / Java Grundlagen / Arrays


----------



## MatzeKo (25. Nov 2014)

Hier habe ich mal ein 2D Array Erstellt, jedoch blicke ich nicht durch die Schleife.

```
public class ArrayBonus {

    public static void main(String[] args) {

	char[][] array = new char[10][20];

	for(int i=0;i<array.length; i++)
		for(int j=0;j<array.length; j++)
			array[i][j] = 
    }
}
```


----------



## Saheeda (25. Nov 2014)

Momentan iterierst du zweimal über die erste Dimension des Arrays.
Auf die zweite greifst du so zu:


```
for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array[i].length; j++) {
				System.out.println(array[i][j]);
			}
		}
```

ABER:
momentan ist dein Array noch leer. Du hast zwar die Größe definiert, aber keine Werte hinein getan.


----------



## MatzeKo (25. Nov 2014)

Ok mein Code sieht jetzt so aus wenn ich deine Schleife einbinde.

```
public class ArrayBonus {

    public static void main(String[] args) {

	char[][] array = new char[10][20];

for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array[i].length; j++) {
				System.out.println(array[i][j]);
			}
		}
    }
}
```


Jedoch weiß ich jetzt nicht wie ich angeben kann, was er für jedes Feld Standart mäßig eingeben soll.


----------



## Saheeda (25. Nov 2014)

WAS möchtest du denn ins Array schreiben? Du brauchst nur den entsprechenden Wert zuzuweisen:

```
array[i][j] = ??????
```


----------



## MatzeKo (25. Nov 2014)

Also habe jetzt nochmal nachgeguckt und habe schon mal das Gerüst fertig.
Danke dir Saheeda.


```
public class ArrayBonus {

    public static void main(String[] args) {

	char[][] array = new char[10][10];

for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array[i].length; j++) {
				array[i][j] = '=';
				System.out.print(array[i][j] +"\t");
			}
			System.out.println("");
		}
    }
}
```

Jetzt kommt halt das schwere meiner Meinung nach. Ich muss mit Schleifen, ein M bilden, das immer mittig steht. Und mit schleifen geht gar nichts bei mir.   Jedoch soll das M für jede Größe des Arrays passen, also immer Zentral, egal welche Größe des Array und soll er so ausfüllen. Soll noch aus M´s bestehen.


----------



## Saheeda (25. Nov 2014)

Mals dir mal mit verschiedenen Größen auf, eigentlich solltest du dann ein Muster erkennen können.


----------



## MatzeKo (25. Nov 2014)

Ok, ich probiere es dann mal. Ich melde mich wenn ich es erkenne oder nicht. 
Aber schon mal danke im Vorraus Saheeda.


----------



## MatzeKo (27. Nov 2014)

Huhu, bin fast fertig mit der Aufgabe. 
Also es sieht schon mal so aus:
=    =    M    =    =    =    =    M    =    =    
=    =    M    M    =    =    =    M    =    =    
=    =    M    =    M    =    =    M    =    =    
=    =    M    =    =    =    =    M    =    =    
=    =    M    =    =    =    =    M    =    =    
=    =    M    =    =    =    =    M    =    =    
=    =    M    =    =    =    =    M    =    =    
=    =    M    =    =    =    =    M    =    =    
=    =    M    =    =    =    =    M    =    =    
=    =    M    =    =    =    =    M    =    =

Das habe ich mit

```
public class ArrayBonus {


    public static void main(String[] args) {


	char[][] array = new char[10][10];


for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array[i].length; j++){
				array[i][j] = '=';
				}
			}
		for(int i = 0; i <array.length; i++){
			    array[i][2] = 'M';
			}
		for(int i = 0; i <array.length; i++){
			array[i][array[0].length-3]= 'M';
		}
		int x = 2;
		for(int i = 0; i < array[0].length/2-2;i++){
			array[i][x]= 'M';
			x++;
		}
				for(int i = 0; i < array.length; i++){
					for(int j = 0; j < array[i].length; j++){
						System.out.print(array[i][j]+ "\t");
						}
						System.out.println("");
					}
			}
		}
```
realisiert, doch leider habe ich Probleme damit denn zweiten Schrägstrich aus M´s in mein M zu bekommen.


----------



## Joose (27. Nov 2014)

[ot]
MatzeKo bitte verwende für den Java Code die 
	
	
	
	





```
-Tags, dann bleibt eine gewissen Formatierung erhalten und es kommt ein Syntaxhighlighting dazu :)
Das Ganze ist einfacher zu lesen.
[/ot]
```


----------



## Saheeda (27. Nov 2014)

@Matzeko

Ich würde es etwas anders lösen. Ich würde mir nur ein halbes M auf einer Array-Hälfte malen und den Inhalt dann auf die andere Seite spiegeln.


----------



## MatzeKo (27. Nov 2014)

@Saheeda

Das Problem ist das ich nicht gut gerade bin in Java. Und spiegeln kann ich nicht, es muss aber auf jedenfall mit for Schleifen gelöst werden.


----------



## Saheeda (27. Nov 2014)

Du darfst nicht spiegeln oder du weißt nicht, wie du spiegeln sollst?

Wenn du nicht weißt wie:
Mal dir dein M im Array auf und zeichne die Spiegelachse ein. Wie verändern sich die Koordinaten?


----------



## MatzeKo (27. Nov 2014)

Also, ich habe nochmal nachgeguckt. Ich darf nur Schleifen benutzten. Spiegeln ist nicht erlaubt.


----------



## Saheeda (27. Nov 2014)

Du kannst mit Schleifen spiegeln...


----------



## MatzeKo (27. Nov 2014)

Ja, aber es steht drine das wir nur das anwenden sollen was wir gelernt haben. 
Da wir leider das Spiegeln nicht gelernt haben, dürfen wir dieses nicht verwenden.


----------

