Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:adt:containerschiffe:start [27.10.2021 19:12] – sbel | faecher:informatik:oberstufe:adt:containerschiffe:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Containerschiffe ====== | ||
- | Ein Containerschiff ist ein speziell für den Transport von Containern gebautes Frachtschiff. Die | ||
- | Container sind genormte Behälter, die auf vorgesehenen Plätzen aufeinander gestapelt werden. | ||
- | Ein besonderer Schiffstyp, das sogenannte Feederschiff, | ||
- | zur Aufnahme von Containern und kann somit auch kleine Häfen anlaufen. | ||
- | |||
- | Eine Reederei besitzt mehrere Feederschiffe mit jeweils genau zwei Stapelplätzen. Die Plätze | ||
- | werden auf jedem Schiff mit **platzA** und **platzB** bezeichnet. Jeder Platz kann genau einen | ||
- | Containerstapel aufnehmen. Ein Container auf einem solchen Stapel darf nicht mehr als 28 t | ||
- | wiegen. | ||
- | |||
- | {{: | ||
- | === (A1) === | ||
- | |||
- | Das Schiff soll möglichst ausgeglichen beladen werden. Aus diesem Grund werden neue | ||
- | Container immer auf dem leichteren Stapel abgelegt, bei gleich schweren Stapeln auf platzA. | ||
- | |||
- | Die Reederei möchte die Frachten der Feederschiffe mit einem objektorientierten | ||
- | Computerprogramm verwalten. Das folgende Diagramm zeigt die beteiligten Klassen. | ||
- | Die Klasse Containerstapel stellt dabei eine Erweiterung des ADT Stapel dar: | ||
- | |||
- | {{ : | ||
- | |||
- | * Erläutere, welche Auswirkungen die Methoden '' | ||
- | * Die Klasse Containerstapel besitzt die Methode '' | ||
- | |||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A2) === | ||
- | |||
- | |||
- | Das Schiff soll möglichst ausgeglichen beladen werden. Aus diesem Grund werden neue | ||
- | Container immer auf dem leichteren Stapel abgelegt, bei gleich schweren Stapeln auf | ||
- | **platzA**. | ||
- | |||
- | Implementiere die Methode '' | ||
- | die den übergebenen Container jeweils auf dem bisher leichteren der beiden Stapel | ||
- | ablegt, bzw. auf **platzA**, wenn beide Stapel gleich schwer sind. | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A3) === | ||
- | |||
- | Eine experimentelle Lademethode '' | ||
- | folgenden Algorithmus, | ||
- | wenn auf beiden Plätzen mindestens ein Container liegt. Die Prüfung, ob beide Stapel | ||
- | Container enthalten, ist hier nicht vorgesehen. | ||
- | |||
- | < | ||
- | a = platzA.getGesamtgewicht(); | ||
- | b = platzB.getGesamtgewicht(); | ||
- | c = neu.getGewicht(); | ||
- | wenn (a < b) | ||
- | wenn (a + c > b + 20) | ||
- | platzA.push(platzB.pop()); | ||
- | platzB.push(neu); | ||
- | sonst | ||
- | platzA.push(neu); | ||
- | ende wenn | ||
- | sonst | ||
- | wenn (b + c > a + 20) | ||
- | platzB.push(platzA.pop()); | ||
- | platzA.push(neu); | ||
- | sonst | ||
- | platzB.push(neu); | ||
- | ende wenn | ||
- | ende wenn | ||
- | </ | ||
- | Bei einem Ladevorgang befinden sich zu Beginn auf **platzA** und **platzB** je ein Container | ||
- | mit 10 t. Es sollen nun drei Container mit den Gewichten in der Reihenfolge 21 t, 27 t und | ||
- | 20 t geladen werden. | ||
- | |||
- | * Stelle das Ergebnis des Ladevorgangs in einer Skizze dar. | ||
- | * Analysiere, welche Vorteile dieser Algorithmus gegenüber Ihrem Algorithmus aus (A2) bietet. | ||
- | * Beurteile, ob die experimentelle Lademethode in den Produktivbetrieb übernommen werden sollte. | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A4) === | ||
- | |||
- | Zur Vorbereitung des Ladevorgangs wird eine Ladeliste erstellt, in der die Container – | ||
- | bezogen auf die Zielhäfen – in umgekehrter Reihenfolge notiert werden, damit die | ||
- | Container, die zuerst ausgeladen werden müssen, ganz oben stehen. | ||
- | Neu hinzu kommende Container werden an der richtigen Stelle in die Liste eingefügt. | ||
- | Dafür bietet eine verbesserte Containerstapel-Klasse eine Methode | ||
- | '' | ||
- | |||
- | Beschreibe, wie innerhalb der Methode die Verkettung der Objekte verändert werden | ||
- | muss, um ein neues Objekt innerhalb einer verketteten Liste einzufügen. | ||
- | |||
- | Veranschauliche deine Beschreibung unter Verwendung einer aussagekräftigen Skizze. |