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:uebungen1:start [05.10.2021 17:40] – [Aufgaben:] sbel | faecher:informatik:oberstufe:java:algorithmen:arrays:uebungen1:start [10.10.2023 13:05] (aktuell) – [Aufgaben:] Frank Schiebel | ||
---|---|---|---|
Zeile 10: | Zeile 10: | ||
- | * **(1)** Erprobe die Methode '' | + | * **(1)** Erprobe die Methode '' |
* **(2)** Vervollständige 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. | + | * **(3)** Schreibe eine Methode zum Setzen eines neuen Wertes für ein Element dieses Arrays mit wählbarem Index. Überprüfe dabei, ob der übergebene Index sich im erlaubten Bereich befindet und gib zurück, ob die Operation erfolgreich war. |
* **(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? | * **(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. | * **(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 (unvollständig) | | + | ++++ Lösungsvorschläge |
+ | Aufgabe 1: Das ist ein klassischer " | ||
- | Hier ein paar Voscrhläge | + | Hier ein paar Vorschläge |
+ | die Lösungen machen keine Eingabeüberprüfung. | ||
<code java> | <code java> | ||
- | /** | + | |
- | | + | |
+ | * Gib zurück, ob die Operation erfolgreich war. | ||
| | ||
- | * @param | + | * |
- | * @param | + | * @param index Index des zu setzenden Elements |
+ | * @param | ||
+ | * @return boolean Erfolgreich oder nicht | ||
*/ | */ | ||
- | public | + | public |
- | | + | |
- | gewicht[index] = value; // das geht natürlich auch besser... | + | if(index < 0 || index > anzahl) return false; |
+ | | ||
+ | gewicht[index] = wert; | ||
+ | return true; | ||
} | } | ||
- | |||
/** | /** | ||
* Aufgabe 4 | * Aufgabe 4 | ||
Zeile 69: | Zeile 76: | ||
++++ | ++++ | ||
- | ++++ 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 | ||
- | | ||
- | | ||
- | */ | ||
- | </ | ||
- | |||
- | ++++ | ||