faecher:informatik:oberstufe:modellierung:2018a: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:modellierung:2018a:start [16.12.2021 07:17] – [Teil 2] sbelfaecher: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 ''getAnzahlNaeherbei(a: Akteur, b: Akteur): int'' in der Klasse Welt,   * Implementiere die Methode ''getAnzahlNaeherbei(a: Akteur, b: Akteur): int'' in der Klasse Welt,
 die die Anzahl der Felder zurückgibt, die näher bezüglich der Manhattan-Distanz bei Akteur ''a'' als bei Akteur ''b'' liegen. die die Anzahl der Felder zurückgibt, die näher bezüglich der Manhattan-Distanz bei Akteur ''a'' als bei Akteur ''b'' liegen.
 +
 +===== Teil 3 =====
 +
 +
 +
 +{{ :faecher:informatik:oberstufe:modellierung:2018a:spieleruml.png?240|}}
 +Das Schatzsuchespiel soll um eine Highscore-Liste erweitert werden. Dazu wird eine Klasse ''Spieler''
 +eingeführt mit den Attributen ''name'' und ''punkte''. In der Klasse Spiel wird zusätzlich noch eine
 +''spielerListe'' in Form eines Arrays verwaltet.
 +
 +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, die dies gewährleisten, nennt man **stabil**.
 +
 +{{ :faecher:informatik:oberstufe:modellierung:2018a:hs.png?400 |}}
 +---- 
 +{{:aufgabe.png?nolink  |}}
 +=== (T3A1) ===
 +Für das Sortieren werden zwei Algorithmen vorgeschlagen
 +
 +**Algorithmus I**
 +<code>
 +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
 +</code>
 +
 +**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
 +</code>
 +
 +
 +  * Gib jeweils an, welches Sortierergebnis nach der Ausführung der Algorithmen I und II bei der Anwendung auf die Highscore-Liste "vorher" vorliegt.
 +  * Analysiere die beiden Algorithmen, und entscheide ob diese stabil sind.
 +
 +
 +
 +
  • faecher/informatik/oberstufe/modellierung/2018a/start.1639639054.txt.gz
  • Zuletzt geändert: 16.12.2021 07:17
  • von sbel