Informatik 2018 A
Informatik 2018 A
INFORMATIK
I.
BE
5 1. a) Nennen und beschreiben Sie kurz die typischen Phasen zur Realisierung
eines Softwareprojekts.
Abi18Net stellt jedem Mitglied des Netzwerks eine Pinnwand zur Verfügung,
auf der auch andere Mitglieder Nachrichten hinterlassen können. Die Nach-
richten einer Pinnwand werden in einer einfach verketteten Liste gespeichert,
die auf dem Softwaremuster Kompositum basiert und die Trennung von Struk-
tur und Daten berücksichtigt.
5 b) Zeichnen Sie nach diesen Vorgaben ein Klassendiagramm, das unter an-
derem die Klassen PINNWAND und NACHRICHT enthält und auf dessen
Grundlage die Pinnwand implementiert werden kann. Auf die Angabe von
Attributen und Methoden kann verzichtet werden.
4 d) Erstellen Sie ein Objektdiagramm für eine Pinnwand mit drei Nachrichten
gemäß dem Klassendiagramm aus Teilaufgabe 1b. Auf die Angabe von At-
tributen kann bei Objekten der Klasse NACHRICHT verzichtet werden. Ge-
ben Sie jeweils an, zu welcher Klasse die Objekte gehören.
4 f) Die Daten der Mitglieder werden in Objekten der Klasse MITGLIED ver-
waltet. Diese soll nun zusätzlich im Klassendiagramm aus Teilaufgabe
1b berücksichtigt werden. Geben Sie an, wie man in diesem Diagramm
die bisher bekannten und die folgenden Anforderungen modellieren kann:
• Jede Pinnwand gehört genau einem Mitglied;
• jedes Mitglied hat Zugriff auf mehrere Pinnwände;
• jede Nachricht wurde von genau einem Mitglied verfasst.
3 d) Geben Sie die Bearbeitungsreihenfolge der Knoten an, wenn der Baum aus
Teilaufgabe 2c nach der Postorder-Strategie traversiert wird.
3 e) Abi18Net rechnet mit 250000 Mitgliedern. Berechnen Sie, wie viele Ebenen
ein Binärbaum mindestens haben muss, um darin die Daten von 250000
Mitgliedern verwalten zu können.
12 f) Der Binärbaum wird unter Verwendung der Klassen BAUM und MITGLIED
sowie des Softwaremusters Kompositum mit Berücksichtigung der Trennung
von Struktur und Daten umgesetzt.
Die Klasse MITGLIED wird durch nachstehendes Diagramm beschrieben:
MITGLIED
mitgliedsnummer
nachname
vorname
alleDatenAusgeben()
istNachnameGleich(suchnachname)
istVornameGleich(suchvorname)
4 a) Stellen Sie die beschriebene Situation in einem Graphen dar und begrün-
den Sie, warum ein ungerichteter Graph dafür ungeeignet ist. Verwenden
Sie als Bezeichner für die Knoten die Anfangsbuchstaben der genannten
Vornamen.
80
II.
BE
1. Die Bayerische Verwaltung der staatlichen Schlösser, Gärten und Seen (kurz:
Bayerische Schlösserverwaltung) ist unter anderem für den Betrieb der auf
dem Königssee, Ammersee, Starnberger See und Tegernsee eingesetzten
Passagierschiffsflotte zuständig. Jedes Schiff der Flotte ist dabei einem dieser
Seen zugeteilt und hat neben seinem Namen eine Reihe von bauartbedingten
Eigenschaften.
Die Zentralverwaltung in München beabsichtigt, auf ein neues Softwaresystem
umzustellen, das alle für die Organisation relevanten Aspekte berücksichtigt.
5 a) Modellieren Sie für den Neuentwurf des Systems die oben beschriebene Si-
tuation als Klassendiagramm unter Verwendung der Klassen SCHIFF, SEE
und ANLEGESTELLE. Ergänzen Sie für jede Klasse mindestens zwei sinn-
volle Attribute.
5 b) Aufgrund von Unterschieden in Betrieb und Wartung lässt sich der Flotten-
bestand in Elektroboote, Dieselmotorschiffe und mit Dieselmotoren ausge-
stattete Schaufelraddampfer gliedern.
Passen Sie den betreffenden Teil Ihres Klassendiagramms so an, dass die
unterschiedlichen Eigenschaften und Funktionalitäten der Schiffstypen be-
rücksichtigt werden können. Nutzen Sie dabei das Prinzip von Spezialisie-
rung und Generalisierung soweit wie möglich.
Ergänzen Sie zudem passend die Methode restbetriebsstundenBerech-
nen(), die für Elektroboote und Schiffe mit Dieselmotoren auf unterschiedli-
che Art die restlichen Betriebsstunden ermittelt.
Die Schiffe werden in einer sortierten, einfach verketteten Liste verwaltet. Als
Sortierkriterium wird dabei aus betrieblichen Überlegungen der Termin der
nächsten Wartung gewählt. Für die Implementierung soll das Softwaremuster
Kompositum eingesetzt und zudem das Konzept der Trennung von Daten und
Struktur berücksichtigt werden.
3 d) Erläutern Sie, was man unter einem Softwaremuster versteht und inwiefern
dessen Einsatz die Softwareentwicklung vereinfacht.
2. In der zentralen Personalverwaltung sind die Daten aller Mitarbeiter der Baye-
rischen Schlösserverwaltung in einer relationalen Datenbank abgelegt, wobei
als Primärschlüssel eine Personalnummer dient. Exemplarisch ist hier ein Aus-
schnitt aus der Tabelle mitarbeiter gezeigt:
persNr name vorname dienstort sonstige Spalten
152 Forstinger Ludwig Tegernsee ···
190 Wörgl Johanna Königssee ···
177 Hackl Josefine Königssee ···
109 Leitner Karl Tegernsee ···
188 Unterhuber Florian Ammersee ···
110 Obermair Franziska Ammersee ···
335 Ferstl Hubert Tegernsee ···
6 b) Zeichnen Sie den entstehenden geordneten Binärbaum für den Fall, dass
die Daten der Mitarbeiter aus obigem Tabellenausschnitt in der angegebe-
nen Reihenfolge in den Baum eingefügt werden. Beschränken Sie sich zur
Knotenbeschriftung auf die Personalnummern.
Geben Sie außerdem an, in welcher Reihenfolge die Knoten des entstande-
nen Baums bei Postorder-Traversierung bearbeitet werden.
3. Die Chiemseeschifffahrt ist lokal organisiert und damit von der Zentralverwal-
tung unabhängig. Auch hier ist zur Unterstützung bei Verwaltungsaufgaben ein
Softwaresystem im Einsatz.
Im Sommerfahrbetrieb ist der unten abgebildete Linienplan gültig, der die be-
fahrenen Strecken mit ihren regulären Fahrzeiten zeigt.
4 b) Die große Chiemseetour soll bis auf den Nordsteg alle acht übrigen Anle-
gestellen mindestens einmal erreichen, nicht auf einer Insel beginnen, zum
Schluss wieder zum Ausgangshafen zurückkehren und an jedem Landungs-
punkt zehn Minuten Aufenthalt vorsehen. Ermitteln Sie, wie lange eine große
Chiemseetour mindestens dauert, und geben Sie auch die Stationen einer
solchen kürzesten Tour an.
80
III.
BE
Zahl
Variable
Punktoperand:
( Rechenausdruck )
Ziffer:
0
Variable:
x 1
y ···
Zahl:
Ziffer z 9
Geben Sie die Syntax der dadurch festgelegten Sprache in formaler Textnota-
tion (z. B. in erweiterter Backus-Naur-Form) an.
z0 1 z1 0, 1 z3 0, 1 z4 0 z5
1 1
0 0, 1
z2 0 z6
0, 1
Hinweis: In diesem Diagramm wird ein Bit durch das Zeichen 0 oder 1 reprä-
sentiert.
cmp x vergleicht den Wert im Akkumulator mit dem Wert in der Spei-
cherzelle x. Dafür wird vom Wert im Akkumulator der Wert in der
Speicherzelle x subtrahiert. Dabei werden die Flags angepasst;
der Wert im Akkumulator bleibt unverändert.
cmpi n vergleicht den Wert im Akkumulator mit der Zahl n. Dafür wird
vom Wert im Akkumulator die Zahl n subtrahiert. Dabei werden
die Flags angepasst; der Wert im Akkumulator bleibt unverän-
dert.
jmp x springt zum Befehl in Speicherzelle x
jmpz x springt zum Befehl in Speicherzelle x, falls das Z-Flag gesetzt
ist
jmpnz x springt zum Befehl in Speicherzelle x, falls das Z-Flag nicht ge-
setzt ist
jmpp x springt zum Befehl in Speicherzelle x, falls weder das N- noch
das Z-Flag gesetzt ist
jmpnp x springt zum Befehl in Speicherzelle x, falls das N- oder Z-Flag
gesetzt ist
jmpn x springt zum Befehl in Speicherzelle x, falls das N-Flag gesetzt
ist
jmpnn x springt zum Befehl in Speicherzelle x, falls das N-Flag nicht ge-
setzt ist
hold beendet die Abarbeitung des Programms
Gegeben ist folgendes Struktogramm für die Methode c(n) für natürliche Zahlen
n ≥ 3.
wiederhole solange n ≥ 3
.......... ........
........... .......................
........... ........................
......................
...........
...........
...........
...........
..........
n durch 4 teilbar .......................
................. ....
..............
............................
.......................
........... ......................
.......... ........................
........... ......................
.......... ......................
...........
........... .
...... .
. .....
.........................
wahr ...........
..........
...........
...........
............................................
........................
.......................
.......................
.................
falsch ...
.............. .............
.............. .............
............. ..............
..............
.............
..............
..............
.............
n durch 2 teilbar ..............
...........
....
.. .
...............
..............
............. .............
.............. ..............
............. ..............
.............. ..............
n = n /4 wahr .............
..............
..............
.............. ..........................
.....
....................................
falsch
n = n /2 + 1 n = (n + 1)/2
6 d) Übertragen Sie diesen Algorithmus der Methode c in ein Programm für die
gegebene Registermaschine. Machen Sie auch die Speicherzelle deutlich,
in der der Wert der Variablen n zu Beginn und am Ende des Programms
steht.
40
IV.
BE
1. Die Software einer Arztpraxis ermöglicht unter anderem die Erstellung von
Rechnungen für die Patienten.
Dabei muss eine Rechnungskennzahl angegeben werden, die wie folgt aufge-
baut ist:
• zwei Buchstaben für die Initialen des Patienten (erster Buchstabe des
Nachnamens gefolgt vom ersten Buchstaben des Vornamens)
• Bindestrich
• Patientennummer beliebiger Länge, die aus den Ziffern 0 bis 9 besteht,
aber nicht mit 0 beginnt
• Versicherungsart: P bei Privatpatienten, G bei gesetzlich Versicherten
• nur bei gesetzlich Versicherten: zweistellige Versicherungskennzahl (Num-
mern im Bereich von 01 bis 12)
• Bindestrich
• fortlaufende Rechnungsnummer, die aus beliebig vielen Ziffern von 0 bis 9
besteht, aber nicht mit 0 beginnt
Beispiele:
Privatpatient Ingo Matik mit der Patientennummer 32 erhält seine 9. Rechnung.
Die zugehörige Rechnungskennzahl ist: MI−32P−9.
Seine Frau Martha Matik mit der Patientennummer 1234, die gesetzlich bei
einer Versicherung mit der Kennzahl 07 versichert ist, erhält ihre 12. Rechnung.
Die zugehörige Rechnungskennzahl ist: MM−1234G07−12.
2 c) Weisen Sie mithilfe Ihrer Lösung aus Teilaufgabe 1a oder 1b nach, dass die
Zeichenkette WA−27P−92 eine syntaktisch korrekte Rechnungskennzahl
ist.
4 a) Erklären Sie allgemein, was man in der Informatik unter einer Verklemmung
versteht.
Beschreiben Sie zudem eine Verkehrssituation, die bei einer solchen Kreu-
zung zu einer Verklemmung führen kann.
40