Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:java:algorithmen:arrays:uebungen1:start [05.10.2021 19:41] – sbel | faecher:informatik:oberstufe:java:algorithmen:arrays:uebungen1:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | |||
- | ==== Arrays: Übungen 1 ==== | ||
- | |||
- | Gegeben ist eine Klasse " | ||
- | |||
- | * [[https:// | ||
- | |||
- | |||
- | ==== Aufgaben: ==== | ||
- | |||
- | |||
- | * **(1)** Erprobe die Methode '' | ||
- | * **(2)** Vervollständige die Methode '' | ||
- | * **(3)** Schreibe eine Methode zum Setzen eines neuen Wertes für ein Element dieses Arrays mit wählbarem Index. | ||
- | * **(4)** Ermittle das Durchschnittsgewicht der gesamten Messreihe. Notiere zuerst deine Idee und setze sie dann in Quelltext um. Warum sollte dies eine eigenständige Funktion(Methode) werden? | ||
- | * **(5)** Schreibe eine Methode, die je eine Integer Zahl als Start- (s) und Endindex (e) erhält und damit den Durchschnitt aller Werte mit Indizes (i) zwischen s und e ermittelt. | ||
- | |||
- | |||
- | ++++ Lösungsvorschläge | ||
- | |||
- | Hier ein paar Vorschläge zur Lösung der Aufgaben. Die Methoden können meist noch verbessert werden, | ||
- | die Lösungen machen keine Eingabeüberprüfung. | ||
- | |||
- | <code java> | ||
- | /** | ||
- | * Aufgabe 3 | ||
- | | ||
- | * @param | ||
- | * @param | ||
- | */ | ||
- | public void insertAtIndex(int index, double value) | ||
- | { | ||
- | gewicht[index] = value; // das geht natürlich auch besser... | ||
- | } | ||
- | |||
- | /** | ||
- | * Aufgabe 4 | ||
- | | ||
- | * @return | ||
- | */ | ||
- | public double getAverage() | ||
- | { | ||
- | double sum = 0; | ||
- | |||
- | for (int i=0; i< | ||
- | sum = sum + gewicht[i]; | ||
- | } | ||
- | return sum/anzahl; | ||
- | } | ||
- | | ||
- | /** | ||
- | * Aufgabe 5 | ||
- | | ||
- | * @param | ||
- | * @param | ||
- | * @return | ||
- | */ | ||
- | public double getAverageFromTo(int start, int end) | ||
- | { | ||
- | // Hier gibt es zahlreiche Verbesserungsmöglichkeiten | ||
- | double sum = 0; | ||
- | |||
- | for (int i=start; i< | ||
- | sum = sum + gewicht[i]; | ||
- | } | ||
- | return sum/ | ||
- | | ||
- | } | ||
- | </ | ||
- | |||
- | ++++ | ||
- | ++++ Ohne BlueJ | | ||
- | <code java App.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+" | ||
- | } | ||
- | } | ||
- | |||
- | /* App Klasse: Steuert den Programmablauf */ | ||
- | public class App { | ||
- | |||
- | 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 | ||
- | | ||
- | | ||
- | */ | ||
- | </ | ||
- | |||
- | ++++ | ||