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

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:java:algorithmen:arrays:uebungen3:start [12.02.2020 11:36] – angelegt sbelfaecher:informatik:oberstufe:java:algorithmen:arrays:uebungen3:start [07.10.2021 07:32] (aktuell) – [2)] sbel
Zeile 1: Zeile 1:
-<code java App.java> +====== Array-Operationen ======
-/** +
- * Erzeugt eine Zufallsreihe und ermöglicht Abfragen darüber. +
- *  +
- * @author Rainer Helfrich  +
- * @author Frank Schiebel +
- * @version 1.0 +
- */ +
-class Zufallsreihe +
-+
-    private int[] daten; +
-    int anzahl; +
-     +
-    public Zufallsreihe(int anzahl) +
-    { +
-        this.anzahl anzahl; +
-        daten new int[anzahl]; +
-        for (int i 0; i < daten.length; i++) +
-        { +
-            // Für manche Aufgaben sollte man die 6 durch z.B. 1000 ersetzen +
-            daten[i] getZufallszahl(6); +
-        } +
-    } +
-     +
-    public int aufgabe01Summe() +
-    { +
-        return 0; +
-    } +
-     +
-    public int aufgabe02ZaehleNullen() +
-    { +
-        return 0; +
-    } +
-     +
-    public int aufgabe03FindeLetzteNull() +
-    { +
-        return 0; +
-    } +
-     +
-    public int aufgabe04FindeErsteNull() +
-    { +
-        return 0; +
-    } +
-     +
-    public boolean aufgabe05Enthaelt1() +
-    { +
-        return false; +
-    } +
-     +
-    public boolean aufgabe06Enthaelt2Und5() +
-    { +
-        return false; +
-    } +
-     +
-    public boolean aufgabe07EnthaeltFixpunkt() +
-    { +
-        return false; +
-    } +
-     +
-    public int aufgabe08ZaehleWiederholungen() +
-    { +
-        return 0; +
-    } +
-     +
-    public int aufgabe09ZaehleDreierWiederholungen() +
-    { +
-        return 0; +
-    } +
-     +
-    public int aufgabe10LaengsteSerie() +
-    { +
-        return 0; +
-    } +
-     +
-    public int aufgabe11Zweitgroesste() +
-    { +
-        return 0; +
-    } +
-     +
-    public void aufgabe12Plus1() +
-    { +
-         +
-    } +
-     +
-    public void aufgabe13NullZuHundert() +
-    { +
-         +
-    } +
-     +
-    public void aufgabe14Rotation() +
-    { +
-         +
-    } +
-     +
-    public void aufgabe15Umdrehen() +
-    { +
-         +
-    }+
  
-     
-     /** dient zum Anzeigen der Reihung am Bildschirm; 
-     * kann durch INSPECT ersetzt werden */ 
-    public void anzeigen() { 
-        for (int i=0; i< anzahl; i++) { 
-             System.out.println( i + " :  " + daten[i]);  
-        } 
-    }     
-     
-    /** 
-     * Gibt eine Zufallszahl zwischen 0 und grenze-1 zurück. 
-     */ 
-    private int getZufallszahl(int grenze) 
-    { 
-        return (int)(grenze*Math.random()+1); 
-    } 
-     
-} 
  
 +Das blueJ-Projekt enthält eine Klasse ''zufallsreihe'', die ein Array von int-Zahlen speichert und mit Zufallswerten füllt. Beim Anlegen von zufallsreihe-Objekten musst du angeben, wie viele Elemente die Zufallsreihe enthalten soll. Eventuell muss man für einzelne Aufgaben den Parameter der Methode getZufallszahl(...) anpassen oder den Quellcode geschickt ändern.
  
-/* App Klasse. Steuerklasse für unser Programm */ 
-public class App { 
-  
-    public static void main(String[] args) { 
-        Zufallsreihe reihe1 = new Zufallsreihe(100); 
-        reihe1.anzeigen();    
-    } 
-  
-} 
-  
  
-</code>+  * [[https://codeberg.org/qg-info-unterricht/arrays02_uebungen|BlueJ Projekt Arrays]] 
 + 
 +===== Aufgaben ===== 
 + 
 +==== 1) ==== 
 + 
 + 
 +Verschaffe dir einen Überblick über die gegebenen Methoden. 
 + 
 +  * Was bewirkt die Zeile ''this.anzahl = anzahl;'' im Konstruktor der Klasse Zahlenreihe? 
 +  * Wie funktioniert die Methode ''getZufallszahl(max)''.  
 +    * Welche Werte liefert ''getZufallszahl(100)'' zurück?  
 +    * Wie muss der Aufruf lauten, um Zufallszahlen zwischen 1 und 50 zu erhalten?  
 +    * Wie kann man Vorgehen, um auch den Wert 0 in der Zufallsreihe zu erhalten? 
 + 
 +==== 2) ==== 
 + 
 +Schreibe jeweils eine Methode, die...  Teste deine Methoden durch entsprechende Aufrufe in der main Methode. 
 + 
 +  - die Summe aller Werte im Array bestimmt und zurückgibt. 
 +  - die Anzahl der Nullen im Array bestimmt und zurückgibt. 
 +  - den Index bestimmt, an dem sich die letzte 0 des Arrays befindet und diesen zurückgibt. Falls keine 0 enthalten ist, soll -1 zurückgegeben werden. 
 +  - den Index bestimmt, an dem sich die erste 0 des Arrays befindet und diesen zurückgibt. Falls keine 0 enthalten ist, soll -1 zurückgegeben werden. 
 +  - prüft, ob das Array mindestens eine 1 enthält. 
 +  - prüft, ob das Array mindestens eine 2 und mindestens eine 5 enthält. 
 +  - prüft, ob das Array einen Fixpunkt enthält. Ein Fixpunkt ist ein Element, das gleich seinem Index ist, d.h. es muss ''daten[i] == i'' gelten. 
 +  - die Anzahl der Wiederholungen bestimmt und zurückgibt. Eine Wiederholung liegt vor, wenn zwei aufeinanderfolgende Elemente des Arrays den gleichen Wert haben. 
 +  - die Anzahl der Dreier-Wiederholungen bestimmt und zurückgibt. Hier müssen drei aufeinanderfolgende Elemente gleich groß sein. 
 +  - die Länge der längsten Serie des Arrays bestimmt und zurückgibt. Eine Serie sind mehrere direkt aufeinanderfolgende Elemente, die den gleichen Wert haben. 
 +  - die zweitgrößte Zahl des Arrays bestimmt und zurückgibt. 
 +  - Jedes Element des Arrays soll um 1 erhöht werden. 
 +  - Jede 0 im Array soll durch eine 100 ersetzt werden. 
 +  - Jedes Element des Arrays soll um eine Stelle nach vorne gerückt werden. Das erste Element soll an die letzte Stelle gesetzt werden. Diese Operation nennt man "Rotation"
 +  - Das Array soll umgedreht werden. 
 + 
 +---- 
 + 
 +[[.lsg:start|Lösungsvorschläge Übungen 3]] 
  • faecher/informatik/oberstufe/java/algorithmen/arrays/uebungen3/start.1581507410.txt.gz
  • Zuletzt geändert: 12.02.2020 11:36
  • von sbel