faecher:informatik:oberstufe:java:algorithmen:arrays:uebungen1:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:java:algorithmen:arrays:uebungen1:start [15.03.2021 16:40] sbelfaecher:informatik:oberstufe:java:algorithmen:arrays:uebungen1:start [10.10.2023 13:05] (aktuell) – [Aufgaben:] Frank Schiebel
Zeile 2: Zeile 2:
 ==== Arrays: Übungen 1 ==== ==== Arrays: Übungen 1 ====
  
-Gegeben ist eine Klasse "**messreihe**" mit einigen Methoden. Bei der Erzeugung einer Instanz des Typs Messreihe wird ein Array mit zufällig generierten "Messwerten" vom Typ ''double'' erzeugt. bearbeite die folgenden Aufgaben.((Diese Übungen stehen unter einer CC-BY-SA Lizenz, sie wurden erstellt in enger Anlehnung an das Material der ZPG BW/Heußer))+Gegeben ist eine Klasse "**messreihe1**" mit einigen Methoden. Bei der Erzeugung einer Instanz des Typs Messreihe wird ein Array mit zufällig generierten "Messwerten" vom Typ ''double'' erzeugt. bearbeite die folgenden Aufgaben.((Diese Übungen stehen unter einer CC-BY-SA Lizenz, sie wurden erstellt in enger Anlehnung an das Material der ZPG BW/Heußer))
  
-++++ Ohne BlueJ |  +  * [[https://codeberg.org/qg-info-unterricht/arrays02_uebungen|BlueJ Projekt Arrays]] 
-<code java App.java> + 
-/** Fachklasse: Messreihe  (=eine Reihe von nummerierten Messdaten) +
- *  @author: thh +
-  @author: fs +
-  @version: 20200115 +
- */+
  
-public class Messreihe { +==== Aufgaben: ====
-    // Objektvariablen deklarieren +
-    int anzahl 45; +
-    double[] gewicht new double[anzahl];+
  
-    /** Konstruktor fuer Objekte der Klasse Messreihe 
-      Jede Messreihe enthaelt eine Reihe von positiven Messdaten (Gewichten); 
-     */ 
-    public Messreihe() { 
-        for (int i=0; i<anzahl; i++) {    // Alle Gewichte  
-            gewicht[i] = erzeugeZZahl();  // der Reihe nach festlegen 
-        } 
-    } 
  
-    /** das Element der Reihung mit dem Index i zurueckgeben +  * **(1)** Erprobe die Methode ''gibGewicht()''. Wie muss sie aufgerufen werden? \\ Klappt der Aufruf immer? \\ Was wird in der Abfrage in Zeile 31 geprüft? Was versucht man hier abzufangen? \\ Erläutere diese Prüfabfrage im Detail.  
-      Der gewuenschte Index i muss eingegeben werden +  * **(2)** Vervollständige die Methode ''setzeAn5und9'' zum Setzen eines neuen Wertes für die Elemente ''gewicht[5]'' und ''gewicht[9]'' diesem Array
-      Bei Eingabe eines nicht vorhandenen Index wird  +  **(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. 
-      -8.888 als Fehlersignal zurueckgemeldet   */ +  **(4)** Ermittle das  Durchschnittsgewicht der gesamten Messreihe. Notiere zuerst deine Idee und setze sie dann in Quelltext umWarum sollte dies eine eigenständige Funktion(Methodewerden?     
-    public double gibGewicht(int i  { +  * **(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.  
-        if (i<0 || i>anzahl) {              //<-- 2+ 
-            return -8.888;       // als Fehlersignal!   +
-        } +
-        else { +
-            return gewicht[i];  +
-        } +
-    }  +
-     +
-    /** setzt fuer zwei Elemente der Messreihe neue Werte fest. +
-      Das Element mit dem Index in Reihung gewicht[ ] wird auf 555.55 gesetzt +
-      Das Element mit Index  auf den Wert 99.99    *+
-    public void setzeAn5und9()   +
-        // deine Aufgabe            //<-- 3.ab) +
-    }     +
-  +
  
-    /*# <-- 4Aufgabe */ +++++ Lösungsvorschläge 
-     +Aufgabe 1: Das ist ein klassischer "Getter": ''gibGewicht(index)'' gibt das Gewicht des am Index ''index'' stehenden Arrayelements zurück. Die Überprüfungen sollen sicherstellen, dass man nicht den zulässige Wertebereich für den Index verlässt, als "Fehlermeldung" wird -8.888 zurückgegeben
-     + 
-    // ----------- Hilfsfunktionen +Hier ein paar Vorschläge zur Lösung der Aufgaben. Die Methoden können meist noch verbessert werden,  
-    /** dient zum Anzeigen der Reihung am Bildschirm; +die Lösungen machen keine Eingabeüberprüfung. 
-      kann durch GUI oder INSPECT ersetzt werden */ + 
-    public void anzeigen() { +<code java> 
-       System.out.println("\n   Aktuelle Messreihe:");  +    /**  
-        for (int i=0; i< anzahl; i++) { +     * Setze ein Element des Arrays auf einen gegebenen Wert. 
-            schreibe(igewicht[i]);  +     * Gib zurück, ob die Operation erfolgreich war. 
-       } +     *  
-    }    +     *  
 +     * @param index Index des zu setzenden Elements 
 +     * @param wert Wert, der an diesem Index gesetzt werden soll 
 +     @return boolean Erfolgreich oder nicht 
 +     */ 
 +    public boolean setzeAnIndex(int indexdouble wert{
                  
-    //------ interne Hilfsfunktionen +        if(index < || index > anzahlreturn false; 
-    /** interne Methode, um eine Zufallszahl im Bereich 200.0 - 799.999 +         
-      mit 3 Nachkommastellen zu erzeugen;  +        gewicht[index] wert
-      Math.random() liefert eine Zahl von (inkl.bis 1 (exkl.)  */ +        return true
-    private double erzeugeZZahl()   { +
-        double zufZahl 200 + 600*Math.random()+
-        return Math.round((zufZahl*1000))/1000.0;+
     }     }
-     +    /** 
-    /** interne Hilfsfunktion zur Anzeige;  +     Aufgabe 4  
-      setzt ein- bis zweistelligen Zahlen stellenrichtig ein. */ +     *  
-    private void schreibe(int i, double wert) { +     * @return   Durchschnittsgewicht 
-        String erg "Index"+     */ 
-        if (i<10) {  +    public double getAverage() 
-            erg "Index + i;   // Zwei Leerzeichen drin !!+    
 +        double sum 0; 
 + 
 +        for (int i=0; i<anzahl;i++) { 
 +            sum sum gewicht[i];
         }         }
-        else  {  +        return sum/anzahl;
-            erg = "Index " + i;    // hier nur eines !! +
-        } +
-        System.out.println(erg+" :  "+wert)+
     }     }
-} 
- 
-/* 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/bearbeite die Aufgaben unten/im Wiki 
-                double g=reihe1.gibGewicht(20); 
-                System.out.println("Gewicht " + g); 
- } 
          
-}+    /** 
 +     * Aufgabe 5  
 +     *  
 +     * @param    start  Startindex (inklusiv dieses Elements) 
 +     * @param    end    Endindex (inklusiv dieses Elements) 
 +     * @return         Durchschnittsgewicht 
 +     */ 
 +    public double getAverageFromTo(int start, int end) 
 +    { 
 +        // Hier gibt es zahlreiche Verbesserungsmöglichkeiten 
 +        double sum = 0;
  
-/** Aufgaben: +        for (int i=start; i<=end;i++{ 
-     +            sum = sum + gewicht[i]; 
- * 1. Erprobe die Methode gibGewicht(). Wie muss sie aufgerufen werden. +        } 
- *    Klappt der Aufruf immer? +        return sum/(end-start+1); 
-    Was wird in der Abfrage Z.28 geprueft? Was versucht man hier abzufangen?  +         
-    Erlaeutere diese Pruefabfrage im Detail.  +    }
-    +
- * 2.a) Vervollstaendige diese Methode zum Setzen eines neuen Wertes fuer +
-    die Elemente gewicht[5und gewicht[9] dieser Reihung. +
- *   b) Schreibe eine Methode zum Setzen eines neuen Wertes fuer ein  +
- *    Element dieser Reihung mit waehlbarem Index. +
-   c) Teste deine Methoden mit entsprechenden Anweisungen in main() +
- *     +
- *  +
- * 3. Ermittle das  Durchschnittsgewicht der gesamten Messreihe.  +
-    Notiere zuerst deine Idee und setze sie in Quelltext um.  +
-    Warum sollte dies eine eigenständige Funktion(Methode) werden?     +
- *  +
- * 4. Schreibe eine Methode, die je eine Interger Zahl als Start- (s) und Endindex  (e) erhält  +
-    und damit den Durchschnitt aller Werte mit Indizes (i) zwischen s und e ermittelt.  +
-        +
- */+
 </code> </code>
  
 ++++ ++++
 +
  
  • faecher/informatik/oberstufe/java/algorithmen/arrays/uebungen1/start.1615826440.txt.gz
  • Zuletzt geändert: 15.03.2021 16:40
  • von sbel