Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
faecher:informatik:oberstufe:algorithmen:sortieren:start [20.02.2020 16:01] – [Wozu sortieren wir?] sbel | faecher:informatik:oberstufe:algorithmen:sortieren:start [20.02.2020 16:23] – [Wann ist ein Array sortiert?] sbel | ||
---|---|---|---|
Zeile 51: | Zeile 51: | ||
Einträge sind in erster Linie nach der Ortschaft sortiert, innerhalb einer Ortschaft nach Name, bei gleichen Namen nach Vorname. | Einträge sind in erster Linie nach der Ortschaft sortiert, innerhalb einer Ortschaft nach Name, bei gleichen Namen nach Vorname. | ||
<box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe**> | <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe**> | ||
- | {{ | + | {{ |
In welcher Reihenfolge stehen folgende Namen im Telefonbuch? | In welcher Reihenfolge stehen folgende Namen im Telefonbuch? | ||
Zeile 77: | Zeile 77: | ||
<box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe**> | <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe**> | ||
- | {{ | + | {{ |
Welche Probleme ergeben sich, wenn man eine Schulklasse nach | Welche Probleme ergeben sich, wenn man eine Schulklasse nach | ||
Zeile 95: | Zeile 95: | ||
Im folgenden ist ein unsortiertes Array zu sehen. Die Reihenfolge der Elemente ist durch den Index (in eckigen Klammern) festgelegt, der Wert der jeweiligen Array-Variablen durch die Zuweisung: | Im folgenden ist ein unsortiertes Array zu sehen. Die Reihenfolge der Elemente ist durch den Index (in eckigen Klammern) festgelegt, der Wert der jeweiligen Array-Variablen durch die Zuweisung: | ||
- | + | | |
- | | + | |
- | | + | zahlen[0]=7 |
- | | + | zahlen[1]=3 |
- | | + | zahlen[2]=15 |
- | | + | zahlen[3]=5 |
+ | zahlen[4]=12 | ||
Nun die sortierte Variante: | Nun die sortierte Variante: | ||
- | | + | zahlen[0]=3 |
- | | + | zahlen[1]=5 |
- | | + | zahlen[2]=7 |
- | | + | zahlen[3]=12 |
- | | + | zahlen[4]=15 |
Die Werte sind nun aufsteigend sortiert, die Reihenfolge noch immer durch den Index gegeben. | Die Werte sind nun aufsteigend sortiert, die Reihenfolge noch immer durch den Index gegeben. | ||
Zeile 126: | Zeile 127: | ||
Es ist leicht einzusehen, dass auch die folgende Aussage richtig ist: **Ein Array ist sortiert, wenn es keine zwei benachbarten Elemente mit falscher Reihenfolge gibt.** | Es ist leicht einzusehen, dass auch die folgende Aussage richtig ist: **Ein Array ist sortiert, wenn es keine zwei benachbarten Elemente mit falscher Reihenfolge gibt.** | ||
+ | ++++ Klicken, um den Quellcode zu sehen | | ||
+ | <code java App.java> | ||
+ | /** | ||
+ | * 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; | ||
+ | { | ||
+ | // 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++) { | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | /** | ||
+ | * Gibt eine Zufallszahl zwischen 0 und grenze-1 zurück. | ||
+ | */ | ||
+ | private int getZufallszahl(int grenze) | ||
+ | { | ||
+ | return (int)(grenze*Math.random()+1); | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | |||
+ | |||
+ | /* App Klasse. Steuerklasse für unser Programm */ | ||
+ | public class App { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | Zufallsreihe reihe1 = new Zufallsreihe(100); | ||
+ | reihe1.anzeigen(); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | ++++ | ||
<box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe**> | <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe**> | ||
- | {{ | + | {{ |
Zeile 137: | Zeile 272: | ||
<box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe**> | <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe**> | ||
- | {{ | + | {{ |