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:start [15.01.2020 13:36] – [Arrays] sbel | faecher:informatik:oberstufe:java:algorithmen:arrays:start [02.11.2023 17:30] (aktuell) – Frank Schiebel | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
* [[.uebungen1: | * [[.uebungen1: | ||
Durchlaufen der Reihung)) | Durchlaufen der Reihung)) | ||
- | ===== Definition ===== | + | * [[.uebungen2:start|Übungen 2]] ((Zugriff auf einzelne |
- | + | Indexkontrolle)) | |
- | + | * [[.uebungen3:start|Übungen 3]] ((Allerlei Arrayoperationen)) | |
- | 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: | + | |
- | + | * [[.mehrdimensional:start|Mehrdimensionale Arrays: Schiffe versenken]] | |
- | <code java> | + | * [[.vermischte_aufgaben: |
- | int[] zahlen = new int[5]; | + | * [[.vermischte_aufgaben2: |
- | </ | + | * [[.uebungen_integral:start|Übungen: |
- | + | * [[.material:start|Material]] | |
- | mit der folgenden Deklaration würde das Array auch direkt initialisiert werden: | + | |
- | + | ||
- | <code java> | + | |
- | int[] zahlen = {11, | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | Ein Array kann man als Instanzen einer spezielle Klasse verstehen. Arrays, Felder werden also als Objekte behandelt und müssen durch den Operator new instanziiert werden. Die Array-Klasse bringt spezielle Methoden und Operationen mit, auf die man beim Umgang mit Arrays zurückgreifen kann, z.B liefert die Methode '' | + | |
- | + | ||
- | <code java> | + | |
- | zahlen.length // in unserem Fall: 5 | + | |
- | </ | + | |
- | + | ||
- | ==== Aufgabe 1 ==== | + | |
- | + | ||
- | Schreibe ein Java-Programm, | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Zugriff auf Array-Elemente | + | |
- | + | ||
- | Jedes Element eines Array hat einen Wert und einen Index. **Die Zählung des Index beginnt immer bei Null**. Für unser Beispiel-Array sieht das also folgendermaßen aus: | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | Über den Index eines Elements, kann man auf dessen Wert zugreifen: | + | |
- | + | ||
- | <code java> | + | |
- | zahlen[1] // hier: 32 | + | |
- | zahlen[4] // hier: 4 | + | |
- | </ | + | |
- | + | ||
- | ==== Aufgabe 2 ==== | + | |
- | + | ||
- | Erweitere das Programm aus Aufgabe 1, so für alle Elemente des Arrays eine Zeile wie die folgende ausgegeben wird: | + | |
- | + | ||
- | 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 [[..: | + | |
- | + | ||
- | + | ||
- | ==== Aufgabe 3 ==== | + | |
- | + | ||
- | Gegeben ist eine Klasse " | + | |
- | + | ||
- | + | ||
- | <code java Messreihe.java> | + | |
- | /** Fachklasse: Messreihe | + | |
- | * | + | |
- | | + | |
- | * @version: 20200115 | + | |
- | */ | + | |
- | + | ||
- | public class Messreihe { | + | |
- | // Objektvariablen deklarieren | + | |
- | int anzahl = 45; | + | |
- | double[] gewicht = new double[anzahl]; | + | |
- | + | ||
- | /** Konstruktor fuer Objekte der Klasse Messreihe | + | |
- | | + | |
- | */ | + | |
- | public Messreihe() { | + | |
- | for (int i=0; i< | + | |
- | gewicht[i] = erzeugeZZahl(); | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | /** das Element der Reihung mit dem Index i zurueckgeben | + | |
- | | + | |
- | | + | |
- | | + | |
- | public double gibGewicht(int i) { | + | |
- | if (i< | + | |
- | return -8.888; | + | |
- | } | + | |
- | else { | + | |
- | return gewicht[i]; | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | /** setzt fuer zwei Elemente der Messreihe neue Werte fest. | + | |
- | | + | |
- | * Das Element mit Index 9 auf den Wert 99.99 | + | |
- | public void setzeAn5und9() { | + | |
- | // deine Aufgabe | + | |
- | } | + | |
- | + | ||
- | + | ||
- | /*# <-- 4. Aufgabe */ | + | |
- | + | ||
- | + | ||
- | // ----------- Hilfsfunktionen | + | |
- | /** dient zum Anzeigen der Reihung am Bildschirm; | + | |
- | | + | |
- | public void anzeigen() { | + | |
- | | + | |
- | for (int i=0; i< anzahl; i++) { | + | |
- | schreibe(i, gewicht[i]); | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | //------ interne Hilfsfunktionen | + | |
- | /** interne Methode, um eine Zufallszahl im Bereich 200.0 - 799.999 | + | |
- | | + | |
- | * | + | |
- | private double erzeugeZZahl() | + | |
- | double zufZahl = 200 + 600*Math.random(); | + | |
- | return Math.round((zufZahl*1000))/ | + | |
- | } | + | |
- | + | ||
- | /** interne Hilfsfunktion zur Anzeige; | + | |
- | | + | |
- | private void schreibe(int i, double wert) { | + | |
- | String erg = " | + | |
- | if (i<10) { | + | |
- | erg = " | + | |
- | } | + | |
- | else { | + | |
- | erg = "Index " + i; // hier nur eines !! | + | |
- | } | + | |
- | System.out.println(erg+" | + | |
- | } | + | |
- | + | ||
- | /** | + | |
- | main Methode um den Programmablauf zu steuern | + | |
- | **/ | + | |
- | public static void main(String[] args) | + | |
- | { | + | |
- | Messreihe reihe1 = new Messreihe(); | + | |
- | reihe1.anzeigen(); | + | |
- | // Erzeuge eine zweite Messreihe reihe2 und gebe sie aus | + | |
- | + | ||
- | // Teste weitere Methoden/ | + | |
- | double g=reihe1.gibGewicht(20); | + | |
- | System.out.println(" | + | |
- | } | + | |
- | + | ||
- | } | + | |
- | + | ||
- | /** Aufgaben: | + | |
- | | + | |
- | * 1. Erprobe die Methode gibGewicht(). Wie muss sie aufgerufen werden. | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | * 2.a) Vervollstaendige diese Methode zum Setzen eines neuen Wertes fuer | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | * | + | |
- | * 3. Ermittle das Durchschnittsgewicht der gesamten Messreihe. | + | |
- | | + | |
- | | + | |
- | * | + | |
- | * 4. Schreibe eine Methode, die je eine Interger Zahl als Start- (s) und Endindex | + | |
- | | + | |
- | | + | |
- | */ | + | |
- | </ | + | |
- | + | ||