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:16] – [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 76: Zeile 76:
 Dabei berechnet die Methode ''abs'' den aus der Mathematik bekannten Betrag. 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. +  * 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. 
-  * Implementieren Sie 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.1639639016.txt.gz
  • Zuletzt geändert: 16.12.2021 07:16
  • von sbel