Huelsse/Profil Nawi/Java/Java-Turtle - Felder

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

= Strukturierte Datentypen - Arrays, Felder =
Als Wetterbeobachter sollen Sie stündlich die Temperatur ablesen und speichern! Es ergibt sich eine Messreihe pro Tag mit bereits 24 Einzelzellen für die Stunden. Für eine Woche benötigt man 7 weitere Zeilen, dann hat man bereits die Messwerttabelle mit 24 Spalten und 7 Zeilen. 4 solche Tabellen könnten nun wiederum übereinander liegend die Menge aller
Messwerte eines Monats darstellen (4 Wochen/Monat). Damit ist bereits ein Gebilde der 3. Dimension entstanden (Speicherquader). 4 solche Tabellen könnten nun wiederum übereinander liegend die Menge aller Messwerte eines Monats darstellen (4 Wochen/Monat). Damit ist bereits ein Gebilde der 3. Dimension entstanden (Speicherquader).<BR>
Im obigen Beispiel würden somit 24 Stunden x 7 Tagen x 4 Wochen  x 12 Monate = '''8064''' einzelen Variablen notwendig.<BR>
Wir benötigen komplexe Datenstrukturen, in der eine große Anzahl von Werten des gleichen Typs gespeichert werden:
'''Lösung:'''<BR>
Feld - Array: Zusammenfassung Daten gleichen Typs - z.B. Temperatur/Stunde/Tag -> 24 Werte <BR>
'''Eindimensionales Array mit 10 Elementen''':<BR>
Variablen anlegen: int[] zahlen = new int[10];<BR>
Ein Array kann man sich wie einen Zug mit Waggons vorstellen - möchte man einen Wert in den Wagon 3 ablegen: zahlen[3] = 12;<BR>
Effektiv kann man mit Zufallszahlen und Zählschleifen arbeiten: for( int i = 1; i < zahlen.length + 1; i++){ zahlen[i] = Math.round(Math.random()*100);<BR>
Inhal des Array effektiv mit einer Schleife ausgeben:  for( int i = 1; i < zahlen.length + 1; i++){ System.out.println(zahlen[i]);  <BR>


Variante 1 - Variablen sofort in das Array schreiben: int[] zahlen = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};<BR>


<code id="4cd6a85e0844d">
int[] zahlen = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

//oder

int[] zahlen = new int[10];
//Anweisungen zum Füllen des Arrays, in diesem Fall alles mit 1en
for( int i = 0; i < zahlen.length; i++){
 zahlen[i] = 1;
}
</code>

Eindimensionale Arrays, kann man sich als Reihe vorstellen. In unserem Beispiel:

'''[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]'''

'''Bsp.:''' '''Zweidimensionales Array''', welches Platz für 36 Werte vom Typ boolean bietet. Diese Art von Array nennt man Matrix. Sie ist in diesem Fall quadratisch, 6x6.
[[Bild:SteinbachNico_Matrix.png]]

== Übung ==
In diesen Übungen geht es darum, das bereits erworbene Wissen zu kombinieren und anhand dessen, Arrays zu verstehen.

=== Array manuell mit Werten füllen ===
Lege ein Array vom Typ '''int''' an. Es soll gleich bei der Deklaration angegeben werden, welche Werte darin stehen. Die Werte sind '''1, 2 und 3'''. Nenne das Array '''zahlen'''.

<code id="4cd6a85e084ce">
// Lege hier das Array an
</code>

<check>
return zahlen[0] == 1 && zahlen[1] == 2 && zahlen[2] == 3;
</check>

=== Array fester Größe manuell befüllen ===

Lege nun ein Array mit einer festen Größe an. Die Größe soll 2 sein. Dann weise jeder Stelle ihren Wert zu. Stelle Eins soll 0 sein und Stelle 2 soll 1 sein. Nenne das Array '''bin'''.

<code id="4cd6a85e08580">
// Hier kommt dein Array hin
</code>

<check>
return bin[0] == 0 && bin[1] == 1;
</check>


=== Array automatisch füllen ===
Lege ein Array für int Werte an. Es soll '''werte''' heißen. Es sollen 16 Werte darin gespeichert werden. Du musst also wiederholt eine Zahl an jede Stelle des Arrays schreiben. Fällt Dir beim Wort "Wiederholung" ein, welches Sprachmittel in Java dafür zur Verfügung steht? '''Die Zahlen müssen zwischen 0 und 15 liegen.'''


<code id="4cd6a9ba689ee">
// Hier kommt dein Quellcode hin
</code>

<check>
 return werte[0] == 0 && werte[5] == 5;
</check>




==== Matrix ====
=== Einfaches Befüllen ===
Lege hier ein zweidimensionales Array vom Typ '''boolean''' an. Es soll den Namen '''matrix''' tragen.
Fülle das Array automatisch mit Werten.  

'''Hinweis:''' 

               Zeilenlänge : '''matrix.length'''
               Spaltenlänge: '''matrix[0].length'''
               

               Um zufällig einen Wert vom Typ boolean zu erzeugen, nutze diesen Aufruf. 
               ''' new Random().nextBoolean() '''.

<run id="4ce2339fd2e32">
// Hier kommt dein Quellcode hin
</run>

=== Addieren aller Elemente ===

Lege hier ein zweidimensionales Array vom Typ '''int''' an. Es soll den Namen '''matrix2''' tragen.
Fülle das Array automatisch mit Werten deiner Wahl. Wenn du die Matrix gefüllt hast sollst du mit 2 for-Schleifen durch die Matrix gehen und alle werte aufaddieren. Lege dir hierzu eine Hilfsvariable an, auf die die aktuelle Variable draufaddiert wird.

'''Hinweis:''' 

               Zeilenlänge  : '''matrix2.length'''
               Spaltenlänge : '''matrix2[0].length'''
               

               Um zufällig einen Wert vom Typ int zu erzeugen, nutze diesen Aufruf. 
               ''' new Random().nextInt() '''.



<run>
// Hier kommt dein Quellcode hin
</run>