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:modellierung:2018a:start [16.12.2021 07:17] – [Teil 2] sbel | faecher:informatik:oberstufe:modellierung:2018a:start [16.12.2021 07:31] (aktuell) – [Teil 3] sbel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Schatzssuche ====== | ====== Schatzssuche ====== | ||
+ | ((Abituraufgabe 2018 in BW, Teil A)) | ||
Im Folgenden sollen Teile eines Spiels implementiert werden, in dem zwei Schatzsucher auf | Im Folgenden sollen Teile eines Spiels implementiert werden, in dem zwei Schatzsucher auf | ||
Zeile 79: | Zeile 79: | ||
* Implementiere die Methode '' | * Implementiere die Methode '' | ||
die die Anzahl der Felder zurückgibt, | die die Anzahl der Felder zurückgibt, | ||
+ | |||
+ | ===== Teil 3 ===== | ||
+ | |||
+ | |||
+ | |||
+ | {{ : | ||
+ | Das Schatzsuchespiel soll um eine Highscore-Liste erweitert werden. Dazu wird eine Klasse '' | ||
+ | eingeführt mit den Attributen '' | ||
+ | '' | ||
+ | |||
+ | Nach dem Abschluss eines Spiels wird der neue Spieler an das Ende der bereits absteigend sortierten Highscore-Liste angehängt. Dann wird die Liste neu sortiert. | ||
+ | |||
+ | Bei Punktegleichstand soll derjenige Spieler weiter vorne in der Liste stehen, der diesen Punktstand zuerst erreicht hat. Sortierverfahren, | ||
+ | |||
+ | {{ : | ||
+ | ---- | ||
+ | {{: | ||
+ | === (T3A1) === | ||
+ | Für das Sortieren werden zwei Algorithmen vorgeschlagen | ||
+ | |||
+ | **Algorithmus I** | ||
+ | < | ||
+ | for i = 0 ... spielerAnzahl-1 | ||
+ | for j = 1 ... spielerAnzahl-1 | ||
+ | if (spielerListe[j-1].getPunkte() < spielerListe[j].getPunkte()) then | ||
+ | tausche Spieler j mit Spieler (j-1) in spielerListe | ||
+ | endif | ||
+ | endfor | ||
+ | endfor | ||
+ | </ | ||
+ | |||
+ | **Algorithmus II** | ||
+ | |||
+ | <code pseudocode> | ||
+ | for i = 0 ... spielerAnzahl-1 | ||
+ | bester = i | ||
+ | for j = i+1 ... spielerAnzahl-1 | ||
+ | if (spielerListe[bester].getPunkte() < spielerListe[j].getPunkte()) then | ||
+ | bester = j | ||
+ | endif | ||
+ | endfor | ||
+ | tausche Spieler i mit Spieler bester in spielerListe | ||
+ | endfor | ||
+ | </ | ||
+ | |||
+ | |||
+ | * Gib jeweils an, welches Sortierergebnis nach der Ausführung der Algorithmen I und II bei der Anwendung auf die Highscore-Liste " | ||
+ | * Analysiere die beiden Algorithmen, | ||
+ | |||
+ | |||
+ | |||
+ |