Home > Informatik > Stufe Q1 > ADTs > ADTs im Abitur

14.82 Aufgaben mit Schlangen

Abitur 2007, Grundkurs

Hier geht es um eine Agentur, die Statisten für Film- und Fernsehproduktionen vermittelt. Für jeden noch nicht vermittelten Statisten existiert eine Karteikarte mit den notwendigen Daten. Die Karteikarten befinden sich in einem Karteikasten, wobei die Neuzugänge hinten in den Kasten gestellt werden.

Wenn jetzt ein Statist für eine neue Produktion gesucht wird, wird dieser Karteikasten von vorne nach hinten durchsucht, bis ein geeignter Kandidat gefunden wird. Die Karteikarte wird dann entnommen.

Die Argentur möchte jetzt mit der Zeit gehen und auf Computer umstellen. Dazu muss ein Programm geschrieben werden, das die beschriebene Arbeitsweise nachbildet.

Kurze Zwischenüberlegung (nicht im Abiturmaterial enthalten!)

Neue Statisten werden in der Kartei hinten eingefügt, das entspricht der enqueue()-Operation des ADT Schlange. Das Suchen nach geeigneten Kandidaten passt allerdings nicht zum ADT Schlange. Hier kann nur jeweils in den vordersten Kandidaten Einsicht genommen werden. Soll der nächste Kandidat begutachtet werden, muss der vorderste zunächst entfernt werden.

Konkrete Aufgabenstellung (laut Abiturmaterial)

Die konkrete Aufgabenstellung besteht aus drei Teilaufgaben.

Teilaufgabe a

In der ersten Teilaufgabe sollen die Abiturkandidaten begründen, warum die Vorgehensweise der Agentur, neue Statisten hinten einzufügen, sinnvoll sein kann und wieso dieses Vorgehen der Datenstruktur Queue entspricht. Dann kommt der "dicke" Teil der ersten Teilaufgabe: Die Kandidaten sollen kurz beschreiben, wie man die Klasse Queue implementieren kann. Dann kommt es noch "dicker": Die Abiturienten sollen die Methoden enqueue und dequeue tatsächlich implementieren.

Teilaufgabe b

Diese Teilaufgabe ist nicht ganz einfach: Die Schüler sollen eine Methode concat implementieren, die eine zweite Schlange an die erste Schlange anhängt. Dazu dürfen nur die öffentlichen Methoden der Klasse Queue verwendet werden, also enqueue, dequeue, front und empty.

Teilaufgabe c

Jetzt wird es langsam richtig kompliziert. Wenn Sie die Zwischenüberlegungen oben gelesen und verstanden haben, werden Sie festgestellt haben, dass das Suchen nach einem geeigneten Kandidaten, wie es im Material beschrieben ist, keineswegs der Arbeitsweise einer Schlange entspricht. Die konkrete Aufgabe lautet nun, unter Verwendung von zwei Schlangen trotzdem ein solches Vorgehen zu realisieren. In der einen Schlange mit den Originaldaten wird mit Hilfe der Schlangen-Operationen front und dequeue nach einem geeigneten Kandidaten gesucht. Dabei wird die Schlange aber von vorne nach hinten abgebaut. Um sie später wieder rekonstruieren zu können, müssen die nicht geeigneten Kandidaten in einer Hilfsschlange gespeichert werden. Nachdem der geeignete Kandidat gefunden wurde, wird die ursprüngliche Schlange wieder rekonstruiert, indem die Hilfsschlange Karte für Karte abgebaut und in die Originalschlange eingefügt wird.

In der Abituraufgabe wird das so ähnlich beschrieben, allerdings ohne die dezenten Hinweise, die ich hier eingestreut habe. Zunächst soll ein "umgangssprachlich formulierter Algorithmus zur Realisierung dieser Aufgabe unter Berücksichtigung der zur Verfügung stehenden Schlangenmethoden" entwickelt werden. Die für die Implementierung benötigten Klassen und Methoden müssen dabei nur angegeben werden. Dann allerdings: "Implementieren Sie den Algorithmus". Also doch eine nicht ganz einfache Aufgabe.

Abitur 2015, Grundkurs

Schauen wir uns nun zum Vergleich eine Aufgabe aus dem Jahre 2015 an.

Mein erster Eindruck: Diese Aufgabe ist derart "verquast" formuliert, dass ich selbst Mühe habe, sie zu verstehen. Allein für die Formulierung der Aufgabe "IF GK HT 1 Java" brauchen die Leute vom Ministerium für Schule und Weiterbildung sage und schreibe sechs Seiten!

In der Aufgabe geht es um die Arbeit in der Telefonzentrale der Polizei, in der eingehende Notrufe angenommen und in einer Schlange gespeichert werden, allerdings nicht nur nach Uhrzeit des Eingangs, sondern auch nach Priorität. Zu einem Verkehrsunfall mit Personenschaden soll ein Einsatzwagen eher geschickt werden also zu einer Ruhestörung, selbst wenn die Meldung der Ruhestörung etwas eher eingetroffen ist als der Verkehrsunfall. Es geht also um den ADT Prioritätsschlange bzw. priority queue, auf den ich auf meiner Homepage bisher noch nicht eingegangen bin, was aber schnellstens nachgeholt wird.

Außerdem wird von den Schülern erwartet, dass sie in der Lage sind, ein Implementationsdiagramm zu verstehen, sowie den Quelltext einer neuen Methode zu verstehen und zu erläutern.