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:13] – 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 14: | Zeile 14: | ||
leeres Feld, andernfalls kann mit '' | leeres Feld, andernfalls kann mit '' | ||
+ | ===== Teil 1 ===== | ||
- | ---- | ||
{{: | {{: | ||
- | === (A1) === | + | === (T1A1) === |
Übertrage die UML-Klassendiagramme | Übertrage die UML-Klassendiagramme | ||
Zeile 26: | Zeile 26: | ||
---- | ---- | ||
{{: | {{: | ||
- | === (A2) === | + | === (T1A2) === |
Implementiere die Klasse '' | Implementiere die Klasse '' | ||
---- | ---- | ||
{{: | {{: | ||
- | === (A3) === | + | === (T1A3) === |
Implementieren Sie einen Konstruktor '' | Implementieren Sie einen Konstruktor '' | ||
Zeile 44: | Zeile 44: | ||
---- | ---- | ||
{{: | {{: | ||
- | === (A4) === | + | === (T1A4) === |
Zeile 59: | Zeile 59: | ||
---- | ---- | ||
{{: | {{: | ||
- | === (A5) === | + | === (T1A5) === |
Beschreibe wie die Methode '' | Beschreibe wie die Methode '' | ||
+ | |||
+ | ===== Teil 2 ===== | ||
+ | |||
+ | |||
+ | {{: | ||
+ | === (T2A1) === | ||
+ | |||
+ | |||
+ | Die Methode '' | ||
+ | in der Klasse Welt gibt das Ergebnis von '' | ||
+ | + abs(p1.getSpalte()-p2.getSpalte())'' | ||
+ | |||
+ | Dabei berechnet die Methode '' | ||
+ | |||
+ | * Begründe, dass die Methode '' | ||
+ | * Implementiere die Methode '' | ||
+ | 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, | ||
+ | |||
+ | |||
+ | |||
+ |