MINT üben

Objektkarten und -diagramme

Dreißig Übungen zu Objektkarten und Objektdiagrammen — Zustände lesen, fortschreiben und Aufrufe verfolgen, von AFB I bis AFB III.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Dreißig Übungen in gemischter Reihenfolge — du klickst, ziehst, ordnest, rechnest und knobelst. Jede Übung gibt dir sofort eine Rückmeldung, und zu jeder Aufgabe gibt es zwei gestufte Tipps: Der erste zeigt die Richtung, der zweite den entscheidenden Schritt. Die Chips zeigen das Anforderungsniveau: AFB I heißt wiedergeben und direkt anwenden, AFB II selbst entscheiden und verknüpfen, AFB III begründen, beurteilen oder eine Falle durchschauen. Aufgaben mit dem Chip Mix verbinden Wissen aus früheren Unterkapiteln, bei Trick steckt eine Falle drin. Fährst du über ein unterstrichenes Arbeitswort, siehst du, was es genau von dir verlangt.

A1
Ketten aus Behauptung und Beleg
AFB I

Stelle drei Zusammenhänge rund um Objektkarten als Begründungsketten dar: Setze zu jeder Behauptung den passenden Beleg und die passende Schlussfolgerung ein. Zwei Karten gehören zu keiner Kette.

Klicke eine Karte an und dann den passenden Platz (oder umgekehrt). Ein Klick auf eine abgelegte Karte legt sie zurück. Mit der Tastatur: Tab zur Karte, Enter wählt, Tab zum Platz, Enter legt ab. Nicht jede Karte wird gebraucht.
Kette 1: Methoden
BehauptungEine Objektkarte enthält keine Methoden.
Kette 2: Anfrage
BelegSie liest Werte, ändert aber kein Attribut.
Kette 3: Eigene Karten
SchlussfolgerungMan erkennt ein Objekt an seiner eigenen Karte, nicht an den Werten.
Methoden sind für alle Objekte gleich, deshalb stehen sie nur in der Klassenkarte. Eine Anfrage liest nur, also bleibt jede Karte gleich. Jedes Objekt hat seine eigene Karte, auch bei gleichen Werten. Eine Karte zeigt nur einen Zeitpunkt, und ein Auftrag ändert nur die Karte seines Objekts.
Lies in jeder Kette zuerst den vorgegebenen Teil und frage dich, ob er eine Behauptung, einen Beleg oder eine Schlussfolgerung ist.
Der Beleg nennt die Eigenschaft, aus der die Schlussfolgerung folgt. Die zwei übrigen Karten sind falsch, weil sie eine Karte mit mehreren Zeitpunkten oder einen Auftrag mit allen Karten verwechseln.
A2
Zwei Schulbusse im Objektdiagramm
AFB III

Zwei Schulbusse werden erzeugt: b1 mit kapazitaet = 50, b2 mit kapazitaet = 30; beide starten mit fahrgaeste = 0 und haltestelle = 1. einsteigen(n) lässt höchstens so viele einsteigen, bis der Bus voll ist — wer keinen Platz findet, bleibt stehen. aussteigen(n) verringert fahrgaeste um n, weiterfahren() erhöht haltestelle um 1.

Bus
  • - fahrgaeste: Ganzzahl
  • - kapazitaet: Ganzzahl
  • - haltestelle: Ganzzahl
  • c Bus(kapazitaet: Ganzzahl)
  • + einsteigen(n: Ganzzahl)
  • + aussteigen(n: Ganzzahl)
  • + weiterfahren()

Aufrufe: b1.einsteigen(32), b2.einsteigen(32), b1.weiterfahren(), b1.aussteigen(10), b1.einsteigen(35), b2.weiterfahren(), b2.aussteigen(12), b2.weiterfahren(). Zeige Schritt für Schritt, wie die Fahrgastzahlen entstehen, bis feststeht, wie viele Personen insgesamt stehen bleiben mussten.

Rechne die Kette Schritt für Schritt: Erst wenn ein Schritt stimmt, wird der nächste freigeschaltet. Enter prüft.
  1. Wert von fahrgaeste bei b2 direkt nach dem zweiten Aufruf Fahrgäste
  2. Wert von fahrgaeste bei b1 am Ende Fahrgäste
  3. Wie viele Fahrgäste sitzen am Ende in beiden Bussen zusammen? Fahrgäste
  4. Transfer: Wie viele Personen mussten insgesamt an Haltestellen stehen bleiben? Personen
b2 ist nach 30 Plätzen voll (2 bleiben stehen). b1: 32 → 22 → 22 + 35 = 57 wäre zu viel, also 50 (7 bleiben stehen). Am Ende 50 + 18 = 68 Fahrgäste und 2 + 7 = 9 Zurückgebliebene. Typischer Fehler: die Kapazität zu ignorieren (dann 57 und 32) oder Aufrufe eines Busses auf der Karte des anderen einzutragen.
Ansatz: Zeichne zwei Objektkarten b1 und b2 und aktualisiere nach jedem Aufruf nur die Karte des Busses vor dem Punkt.
Weiter: Bei jedem einsteigen: Passt die Summe noch unter die Kapazität? Wenn nicht, wird fahrgaeste gleich der Kapazität, der Rest bleibt stehen.
A3
Der Aufzug nach den Aufrufen
AFB III

Ein Aufzug fährt nur bei geschlossener Tür; einsteigen können Personen nur bei offener Tür. Wer die Bedingung nicht erfüllt, bewirkt nichts.

Aufzug
  • - etage: Ganzzahl
  • - personen: Ganzzahl
  • - tuerOffen: Wahrheitswert
  • c Aufzug()
  • + tuerOeffnen()
  • + tuerSchliessen()
  • + fahren(ziel: Ganzzahl)
  • + einsteigen(n: Ganzzahl)

Der Konstruktor setzt etage und personen auf 0 und tuerOffen auf false. Aufrufe an a1 nacheinander: fahren(2), tuerOeffnen(), einsteigen(4), fahren(5), tuerSchliessen(), fahren(1). Entwirf die Objektkarte von a1 nach dem letzten Aufruf: Lege die richtigen Werte auf die drei Plätze. Nicht jeder Wert wird gebraucht.

Ziehe jeden Stein auf seinen Platz in der Szene — oder klicke erst den Stein und dann den Platz. Tastatur: Stein mit Tab ansteuern, Enter wählt ihn, dann Ziffer des Platzes oder ←/→; 0 legt ihn in den Vorrat zurück. Nicht jeder Stein wird gebraucht.
a1: Aufzugetage =personen =tuerOffen = Vorrat 1 2 4 5 true false
fahren(2) klappt (Tür zu), etage ist 2. Dann geht die Tür auf, 4 Personen steigen ein. fahren(5) bei offener Tür bewirkt nichts, etage bleibt 2. Nach tuerSchliessen() setzt fahren(1) die etage auf 1. Am Ende gilt: etage = 1, personen = 4, tuerOffen = false.
Verfolge die Aufrufe einzeln und schreibe nach jedem Aufruf alle drei Werte auf. Prüfe vorher, ob die Tür die Bedingung der Methode erfüllt.
Bei offener Tür bewirkt fahren() nichts. Der Wert 5 taucht also auf der Karte nie auf, und der Wert 2 gilt nur zwischendurch.