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:15] – [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 64: Zeile 64:
  
 ===== Teil 2 ===== ===== Teil 2 =====
 +
 +
 +{{:aufgabe.png?nolink  |}}
 +=== (T2A1) ===
 +
 +
 +Die Methode ''getManhattanDistanz(p1: Position, p2: Position): int''
 +in der Klasse Welt gibt das Ergebnis von ''abs(p1.getZeile()-p2.getZeile())
 ++ abs(p1.getSpalte()-p2.getSpalte())'' zurück.
 +
 +Dabei berechnet die Methode ''abs'' den aus der Mathematik bekannten Betrag.
 +
 +  * Begründe, dass die Methode ''getManhattanDistanz'' die Anzahl der Schritte angibt, die mindestens nötig sind, um von Position ''p1'' zu Position ''p2'' zu gelangen, wenn nur waagerechte und senkrechte Bewegungen erlaubt sind.
 +  * 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.
 +
 +===== 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.
 +
  
  
  
-Die Methode getManhattanDistanz(p1: Position, p2: Position): int 
-in der Klasse Welt gibt das Ergebnis von abs(p1.getZeile()-p2.getZeile()) 
-+ abs(p1.getSpalte()-p2.getSpalte()) zurück. 
-Dabei berechnet die Methode abs den aus der Mathematik bekannten Betrag. 
-• Begründen Sie, dass die Methode getManhattanDistanz die Anzahl der Schritte 
-angibt, die mindestens nötig sind, um von Position p1 zu Position p2 zu gelangen, 
-wenn nur waagerechte und senkrechte Bewegungen erlaubt sind. 
-• Implementieren Sie 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. 
  • faecher/informatik/oberstufe/modellierung/2018a/start.1639638927.txt.gz
  • Zuletzt geändert: 16.12.2021 07:15
  • von sbel