Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:adt:containerschiffe:start [27.10.2021 17:02] – angelegt sbel | faecher:informatik:oberstufe:adt:containerschiffe:start [28.10.2021 07:33] (aktuell) – sbel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Containerschiffe ====== | ====== Containerschiffe ====== | ||
+ | |||
+ | {{ : | ||
Ein Containerschiff ist ein speziell für den Transport von Containern gebautes Frachtschiff. Die | Ein Containerschiff ist ein speziell für den Transport von Containern gebautes Frachtschiff. Die | ||
Zeile 7: | Zeile 9: | ||
Eine Reederei besitzt mehrere Feederschiffe mit jeweils genau zwei Stapelplätzen. Die Plätze | 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 | + | 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 | Containerstapel aufnehmen. Ein Container auf einem solchen Stapel darf nicht mehr als 28 t | ||
wiegen. | wiegen. | ||
Zeile 13: | Zeile 15: | ||
{{: | {{: | ||
=== (A1) === | === (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 | Die Reederei möchte die Frachten der Feederschiffe mit einem objektorientierten | ||
Zeile 19: | Zeile 24: | ||
{{ : | {{ : | ||
+ | |||
+ | * 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. | ||
+ | * Vergleiche die beiden Ladealgorithmen für die gegebene Containerreihenfolge schrittweise hinsichtlich der Ungleichheit der Stapelgewichte. Welche Schlussfolgerungen kannst du ziehen? | ||
+ | * Diskutiere Vor- und Nachteile der experimentellen Lademethode. | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (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. |