Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:java:algorithmen:arrays:definition:start [09.03.2021 16:35] – [Arrays: Definition] sbel | faecher:informatik:oberstufe:java:algorithmen:arrays:definition:start [09.10.2024 18:41] (aktuell) – [Vogelbeobachtung] Frank Schiebel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Arrays: Definition | + | ====== Arrays ====== |
- | + | In Java werden Datenstrukturen, | |
- | Unter einem Array versteht man ein Feld oder Container, das mehrere Objekte vom gleichen Typ aufzunehmen und zu verwalten kann. Die folgende Deklaration definiert ein Array, das 5 Integer-Werte aufnehmen kann: | ||
+ | <callout type=" | ||
+ | Hier ist die vollständige Syntax zur Initialisierung eines Arrays mit dem Namen '' | ||
<code java> | <code java> | ||
- | int[] zahlen | + | type[] arrayName |
</ | </ | ||
- | mit der folgenden Deklaration würde das Array auch direkt | + | '' |
+ | |||
+ | '' | ||
+ | </ | ||
+ | |||
+ | === Beispiele: === | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | |||
+ | Arrays können auch mithilfe einer **Kurznotation** definiert | ||
<code java> | <code java> | ||
- | int[] zahlen | + | // Die beiden folgenden Zeilen machen dasselbe: |
+ | // Sie deklarieren ein Array, das ganze Zahlen speichern kann | ||
+ | // und initialisieren die Element direkt als 4, 9 und 7 | ||
+ | int[] dreiZahlenV1 | ||
+ | int[] dreiZahlenV2 = { 4, 9, 7 }; | ||
</ | </ | ||
+ | Die Länge des Arrays wird durch die Initialisierung mit drei Elementen auf '' | ||
- | Ein Array kann man als Instanzen einer spezielle Klasse verstehen. | + | <code java> |
+ | int[] zahlenarray = {11, | ||
+ | </ | ||
+ | |||
+ | |||
+ | Ein Array kann man als Instanzen einer spezielle Klasse verstehen. | ||
<code java> | <code java> | ||
Zeile 23: | Zeile 47: | ||
((Java verfügt auch über Klassen, mit denen man Objektlisten und Arrays effizienter verwalten kann, fürs Erste begnügen wir uns mal mit dem Weg "zu Fuß" | ((Java verfügt auch über Klassen, mit denen man Objektlisten und Arrays effizienter verwalten kann, fürs Erste begnügen wir uns mal mit dem Weg "zu Fuß" | ||
- | ==== Aufgabe 1 ==== | ||
- | |||
- | Schreibe ein Java-Programm, | ||
- | |||
- | Wenn du BlueJ verwendest, kannst du als Basis das folgende Projekt verwenden: {{ : | ||
- | |||
===== Zugriff auf Array-Elemente ===== | ===== Zugriff auf Array-Elemente ===== | ||
Zeile 43: | Zeile 61: | ||
</ | </ | ||
- | ==== Aufgabe | + | Mit einer entsprechenden Wertzuweisung kann auf diese Art auch der Wert eines Arrayelements gesetzt werden: |
+ | |||
+ | <code java> | ||
+ | zahlen[1] | ||
+ | zahlen[4] | ||
+ | </ | ||
+ | |||
+ | Der Zugriff auf einen Index, der außerhalb der gültigen Indizes des Arrays liegt, führt zu einer '' | ||
+ | |||
+ | ==== Alle Array-Elemente sequentiell verarbeiten ==== | ||
+ | |||
+ | Häufig möchte man alle Elemente eines Array der Reihe nach anschauen und möglichweise etwas mit den gespeichert Werten machen, man spricht davon, dass man "über das Array iteriert" | ||
+ | |||
+ | Hier bieten sich zunächst **zwei Möglichkeiten** an: | ||
+ | |||
+ | Wenn man die volle Kontrolle haben möchte über welche Elemente des Arrays man iteriert, verwendet man am besten eine Zählschleife (for-Schleife). Bei dieser Art, die Array Elemente auszulesen, hat mal stets auch den Wert des entsprechenden Index vorliegen: | ||
+ | |||
+ | <code java> | ||
+ | char[] vowels = { ' | ||
+ | |||
+ | for (int i = 0; i < 3; i++) { | ||
+ | // Output the vowel | ||
+ | System.out.print(i + "::" | ||
+ | } | ||
+ | |||
+ | // 0::a 1::e 2::i | ||
+ | </ | ||
+ | |||
+ | Um ein Array auf diese Weise vollständig zu durchlaufen, | ||
+ | |||
+ | <code java> | ||
+ | for (int i = 0; i < meinArray.length; | ||
+ | ... | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Der Umstand, dass ein Array auch eine Java-" | ||
+ | |||
+ | <code java> | ||
+ | char[] vowels | ||
+ | |||
+ | for(char vowel: vowels) { | ||
+ | // Output the vowel | ||
+ | System.out.print(vowel); | ||
+ | } | ||
+ | |||
+ | // => aeiou | ||
+ | </ | ||
+ | |||
+ | ===== Vogelbeobachtung ===== | ||
+ | ((Die Übungen zur Vogelbeobachtung sind stark an die Vorlage " | ||
+ | https:// | ||
+ | {{ : | ||
+ | Du bist ein begeisterter Vogelbeobachter und führst Buch darüber, wie viele Vögel in den letzten sieben Tagen deinen Garten besucht haben. | ||
+ | |||
+ | Die Zahl der beobachteten Vögel speicherst du in einem Array, ein befreundeter Programmierer hat dir bereits eine Codevorlage zur Verfügung gestellt, du findest sie hier: https:// | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A1) === | ||
+ | |||
+ | Passe die Methode '' | ||
+ | |||
+ | ^ Vor 6 Tagen (Sa) ^ Vor 5 Tagen (So) ^ Vor 4 Tagen (Mo) ^ Vor 3 Tagen (Di) ^ Vorgestern (Mi) ^ Gestern (Do) ^ Heute (Fr) ^ | ||
+ | | 12 | 7 | ||
+ | |||
+ | Mache dir klar, dass die Methode als Rückgabetyp tatsächlich ein Array aus Zahlen festlegt. | ||
+ | |||
+ | :!: Für die weiteren Aufgaben gilt, dass das Array '' | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A2) === | ||
+ | |||
+ | Implementiere die Methode '' | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A3) === | ||
+ | Implementiere die Methode '' | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A4) === | ||
+ | |||
+ | Implementiere die Methode '' | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A5) === | ||
+ | |||
+ | An manchen Tagen ist mehr los als an anderen. Ein " | ||
+ | |||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A6) === | ||
+ | Erweitere das die Klasse um eine Methode '' | ||
+ | < | ||
+ | Am Tag mit dem Index 0 wurden 12 Vögel beobachtet. | ||
+ | Am Tag mit dem Index 1 wurden 7 Vögel beobachtet. | ||
+ | Am Tag mit dem Index 2 wurden 0 Vögel beobachtet. | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Verwende dazu einmal eine [[..: | ||
- | Erweitere das Programm aus Aufgabe 1, so für alle Elemente des Arrays eine Zeile wie die folgende ausgegeben wird: | + | ===== Dateien ===== |
- | Das Array-Element mit dem Index 0 hat den Wert 11 | ||
- | Das Array-Element mit dem Index 1 ... | ||
- | Das Array-Element mit dem Index 2 ... | ||
- | Verwende dazu eine [[..: | ||
+ | {{simplefilelist> |