Projekt:2020/Processing Arrays: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 22: | Zeile 22: | ||
[[Datei:UML Ballon.png|center]] | [[Datei:UML Ballon.png|center]] | ||
Die Klassen <code>Ballon</code> und <code>Spitze</code> sollen nach dem UML-Diagramm oben implementiert werden. <code>Spitze</code>n befinden sich am oberen Rand des Fensters und bekommen ihre x-Position im Konstruktor übergeben. Die Größe (<code>size</code>) wird [https://processing.org/reference/random_.html zufällig] bestimmt. Ein <code>Ballon</code> beginnt am [https://processing.org/reference/height.html unteren Rand des Fensters]. Alle anderen Attribute werden [https://processing.org/reference/random_.html zufällig] bestimmt (wähle sinnvolle Werte für die unteren und oberen Grenzen). | Die Klassen <code>Ballon</code> und <code>Spitze</code> sollen nach dem UML-Diagramm oben implementiert werden. <code>Spitze</code>n befinden sich am oberen Rand des Fensters und bekommen ihre x-Position im Konstruktor übergeben. Die Größe (<code>size</code>) wird [https://processing.org/reference/random_.html zufällig] bestimmt und legt die fest, wie lang die Spitze jeweils ist. Jede Spitze ist 10 Pixel breit. | ||
Ein <code>Ballon</code> beginnt am [https://processing.org/reference/height.html unteren Rand des Fensters]. Alle anderen Attribute werden [https://processing.org/reference/random_.html zufällig] bestimmt (wähle sinnvolle Werte für die unteren und oberen Grenzen). | |||
<code>draw()</code> zeichnet jeweils die <code>Spitze</code> bzw. den <code>Ballon</code> (benutze ein [https://processing.org/reference/triangle_.html Dreieck] bzw. eine [https://processing.org/reference/ellipse_.html Ellipse]). <code>update()</code> verändert abhängig von <code>speed</code> die y-Position des <code>Ballons</code>, so dass er langsam nach oben steigt. | <code>draw()</code> zeichnet jeweils die <code>Spitze</code> bzw. den <code>Ballon</code> (benutze ein [https://processing.org/reference/triangle_.html Dreieck] bzw. eine [https://processing.org/reference/ellipse_.html Ellipse]). <code>update()</code> verändert abhängig von <code>speed</code> die y-Position des <code>Ballons</code>, so dass er langsam nach oben steigt. | ||
Zeile 29: | Zeile 31: | ||
Erstelle zwei Ballons und einige Spitzen und teste dein Programm. | Erstelle zwei Ballons und einige Spitzen und teste dein Programm. | ||
{{Aufgabe:End}} | {{Aufgabe:End}} | ||
== Eine Reihe Spitzen == | |||
Um den gesamten oberen Bildschirmrand mit Spitzen zu füllen, brauchen wir <math>600/10 = 60</math> <code>Spitze</code>n. Für jede Spitze eine Variable zu erstellen wäre ganz schön aufwändig. Zum Glück gibt es genau dafür ''Arrays''. | |||
Ein Array ist eine Möglichkeit, mehrere Objekte oder Werte in einer einzigen Variable zu speichern. jedes Objekt kann dann in der Variablen mit einem ''Index'' angesprochen werden. | |||
=== Ein Beispiel === | |||
Um zehn Zahlen in einem Zahlen-Array zu speichern, müssen wir das Array zunächst ''deklarieren'' und dann dann mit Werten füllen (''initialisieren''): | |||
<syntaxhighlight lang="Java"> | |||
// Deklaration eines Zahlen-Arrays mit zehn Elementen | |||
int[] zahlen = new int[10]; | |||
zahlen[0] = 102; // Erstes Element, Index 0 | |||
zahlen[1] = 56; // Zweites Element, Index 1 | |||
zahlen[2] = 34; // Drittes Element, Index 2 | |||
zahlen[3] = 2; | |||
zahlen[4] = 202; | |||
zahlen[5] = 43; | |||
zahlen[6] = 1; | |||
zahlen[7] = 89; | |||
zahlen[8] = 0; | |||
zahlen[9] = 21; | |||
</syntaxhighlight> | |||
Um dann auf ein Elemente zuzugreifen, oder einen neuen Wert zuzuweisen, benutzt du die passenden Indizes: | |||
<syntaxhighlight lang="Java"> | |||
// Weise Index 0 die Summe von Index 2 und Index 6 zu | |||
zahlen[0] = zahlen[2] + zahlen[6]; | |||
</syntaxhighlight> | |||
{{Hinweis|Wie du siehst beginnen die Indizes eines Arrays bei <code>0</code> und nicht bei <code>1</code>!}} | |||
=== Objektarrays === | |||
In einem Array können aber auch komplexe Datentypen - Objekte - gespeichert werden. | |||
<syntaxhighlight lang="Java"> | |||
// Deklaration eines Spitzen-Arrays mit 60 Elementen | |||
Spitze[] spitzen = new Spitze[60]; | |||
spitzen[0] = new Spitze(); | |||
</syntaxhighlight> | |||
Nun kannst du mit den Indizes <code>0</code> bis <code>59</code> den einzelnen Elementen des Arrays neue <code>Spitzen</code> zuweisen. |