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:33] – sbel | faecher:informatik:oberstufe:java:algorithmen:arrays:start [02.11.2023 17:30] (aktuell) – Frank Schiebel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Arrays ====== | ====== Arrays ====== | ||
- | |||
- | ===== Definition ===== | ||
- | |||
- | |||
- | 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: | ||
- | |||
- | <code java> | ||
- | int[] zahlen = new int[5]; | ||
- | </ | ||
- | |||
- | 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 | ||
- | | ||
- | | ||
- | | ||
- | */ | ||
- | |||
- | 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<0 || i> | ||
- | return -8.888; | ||
- | } | ||
- | else { | ||
- | return gewicht[i]; | ||
- | } | ||
- | } | ||
- | | ||
- | /** setzt fuer zwei Elemente der Messreihe neue Werte fest. | ||
- | | ||
- | | ||
- | 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 | ||
- | | ||
- | | ||
- | */ | ||
- | </ | ||
+ | * [[.definition: | ||
+ | * [[.uebungen1: | ||
+ | Durchlaufen der Reihung)) | ||
+ | * [[.uebungen2: | ||
+ | Indexkontrolle)) | ||
+ | * [[.uebungen3: | ||
+ | * [[.eratosthenes: | ||
+ | * [[.mehrdimensional: | ||
+ | * [[.vermischte_aufgaben: | ||
+ | * [[.vermischte_aufgaben2: | ||
+ | * [[.uebungen_integral: | ||
+ | * [[.material: | ||