Abitur NRW Informatik 2022 · LK · Nachtermin
Abiturprüfung Informatik in Nordrhein-Westfalen 2022, LK · Nachtermin: 11 Aufgaben mit Lösungen. Mit automatischer Korrektur.
Themen der Prüfung: Objektorientierte Modellierung mit Implementationsdiagrammen · Algorithmen auf Feldern und linearen Listen · Binärbäume und binäre Suchbäume · Datenbankmodellierung und Normalisierung · SQL-Abfragen · Endliche Automaten · Grammatiken, Kellerautomaten und Grenzen endlicher Automaten · Datenschutz und Datensicherheit
Aufgabe 1 - Modellierung · Objektorientierte Modellierung mit Implementationsdiagrammen
Aufgabenstellung:
Auf einem Biobauernhof werden die geernteten Kartoffeln in einer hofeigenen Verpackungsstation abgepackt. Ein Förderband transportiert die Kartoffeln zu einer Sortieranlage, die jede Kartoffel danach über eine Rutsche in eine passende Packung leitet. Sobald eine Packung gefüllt ist, wird sie verladen und durch eine neue, leere Packung ersetzt. Abbildung 1 stellt die Verpackungsstation schematisch dar.
Schwierig ist vor allem, für die jeweils nächste Kartoffel auf dem Förderband die passende Packung zu bestimmen. Weil Kartoffeln Naturprodukte sind, unterscheiden sie sich stark in ihrer Größe, sodass nicht alle Packungen exakt dasselbe Gewicht erreichen können.
Einerseits muss eine Packung ein festgelegtes Minimalgewicht erreichen, um als voll zu gelten. Andererseits soll dieses Minimalgewicht möglichst knapp überschritten werden, weil dem Bauernhof sonst unnötig Verluste entstehen.
Nachfolgend wird ein Programm betrachtet, das diese Verpackungsstation simuliert. Es setzt die in Abbildung 2 dargestellte Teilmodellierung um.
a)
Erläutern Sie, in welchen Beziehungen die Klassen der Modellierung in Abbildung 2 zueinander stehen. [4 Punkte]
Begründen Sie, weshalb es zweckmäßig ist, dass Objekte vom Typ Packung die Objekte vom Typ Kartoffel in einer Liste verwalten. [3 Punkte]
d)
Da die Verpackungsstation sich bewährt hat, sollen neben Verbesserungen der Algorithmen auch neue Funktionen hinzukommen. Dazu muss die Modellierung in Abbildung 2 angepasst werden.
Folgende Anforderungen sollen ergänzt werden:
i. Für jede Packung soll der Zeitpunkt gespeichert werden, wann sie fertig gepackt wurde. Dieser Zeitpunkt soll natürlich auch abrufbar sein.
ii. Neben normalen Packungen soll es nun auch noch sogenannte Premiumpackungen geben. Neben den normalen Funktionalitäten soll bei Premiumpackungen das Minimalgewicht individuell gesetzt werden können. Darüber hinaus soll das Durchschnittsgewicht der Kartoffeln abgefragt werden können.
iii. Bisher ist das Versandlager nur eine Liste von Packungen. Das soll sich ändern. In Zukunft soll das Versandlager nicht nur Packungen aufnehmen und zurückliefern, sondern auch Gesamtgewicht und Anzahl aller Packungen melden können. Außerdem soll abfragbar sein, ob es leer ist.
Modellieren Sie die oben aufgeführten Anforderungen als Erweiterung der Modellierung aus Abbildung 2. Stellen Sie dabei ausschließlich die Änderungen und Ergänzungen als Implementationsdiagramm dar. [6 Punkte]
Erläutern Sie, auf welche Weise jede der genannten Anforderungen in Ihrem Implementationsdiagramm umgesetzt wurde. [6 Punkte]
e)
Während der Erweiterung des Programms kommt einem Programmierer eine Idee. Die Anzahl der Kartoffeln auf dem Förderband ist zwar nicht konstant, aber auf Grund der Größe des realen Förderbandes zumindest nach oben begrenzt. Es gibt also eine maximale Anzahl an Kartoffeln, die auf dem Förderband liegen können. In so einem Fall, so meint er sich zu erinnern, wählt man eigentlich eine statische Datenstruktur, z. B. ein Feld (Array).
Beurteilen Sie den Vorschlag des Programmierers, das Förderband statt mit einer Schlange mit einem Feld (Array) umzusetzen, und erläutern Sie dabei gegebenenfalls Vor- und Nachteile beider Varianten. [6 Punkte]
Aufgabe 1 - Algorithmen · Algorithmen auf Feldern und linearen Listen
Aufgabenstellung:
Auf einem Biobauernhof werden die geernteten Kartoffeln in einer hofeigenen Verpackungsstation abgepackt. Ein Förderband transportiert die Kartoffeln zu einer Sortieranlage, die jede Kartoffel danach über eine Rutsche in eine passende Packung leitet. Sobald eine Packung gefüllt ist, wird sie verladen und durch eine neue, leere Packung ersetzt. Abbildung 1 stellt die Verpackungsstation schematisch dar.
Schwierig ist vor allem, für die jeweils nächste Kartoffel auf dem Förderband die passende Packung zu bestimmen. Weil Kartoffeln Naturprodukte sind, unterscheiden sie sich stark in ihrer Größe, sodass nicht alle Packungen exakt dasselbe Gewicht erreichen können.
Einerseits muss eine Packung ein festgelegtes Minimalgewicht erreichen, um als voll zu gelten. Andererseits soll dieses Minimalgewicht möglichst knapp überschritten werden, weil dem Bauernhof sonst unnötig Verluste entstehen.
Nachfolgend wird ein Programm betrachtet, das diese Verpackungsstation simuliert. Es setzt die in Abbildung 2 dargestellte Teilmodellierung um.
b)
In der Klasse Verpackungsstation gibt es die Methode verpackeKartoffel. Ihr Quellcode liegt zunächst in folgender ersten Fassung vor:
1 public void verpackeKartoffel() {
2 Kartoffel neu = foerderband.front();
3 foerderband.dequeue();
4
5 int ueber = -1;
6 int unter = -1;
7 for (int i = 0; i < packungen.length; i++) {
8 int iGew = packungen[i].ermittleGewicht()
9 + neu.gibGewicht();
10 if (iGew >= packungen[i].gibMinimalgewicht()) {
11 if (ueber == -1
12 || packungen[i].ermittleGewicht()
13 < packungen[ueber].ermittleGewicht()) {
14 ueber = i;
15 }
16 } else {
17 if (unter == -1
18 || packungen[i].ermittleGewicht()
19 < packungen[unter].ermittleGewicht()) {
20 unter = i;
21 }
22 }
23 }
24
25 if (ueber != -1) {
26 packungen[ueber].verpacke(neu);
27 versandlager.append(packungen[ueber]);
28 packungen[ueber] = new Packung();
29 } else {
30 packungen[unter].verpacke(neu);
31 }
32 }
c)
Vor der Auslieferung der Kartoffeln an den Großhändler soll bestimmt werden, wie viele Kartoffeln eine Packung im Durchschnitt enthält.
Künftig soll die Methode ermittleDurchschnittsanzahl der Klasse Verpackungsstation dies leisten. Sie berechnet die durchschnittliche Kartoffelanzahl der Packungen in der Liste versandlager. Ihr Methodenkopf lautet:
public double ermittleDurchschnittsanzahl()
Aufgabe 2 - Suchbäume · Binärbäume und binäre Suchbäume
Aufgabenstellung:
Im Nationalpark Wildlife teilen sich unterschiedliche Tierarten ein weitläufiges Freigelände. Die Parkleitung will das Zusammenspiel der Tiere näher untersuchen und stattet sie deshalb mit Halsbändern aus, die Begegnungen mit anderen Tieren erfassen und verwalten können.
Jedes Halsband sendet in regelmäßigen Zeitabständen ein Signal mit einem eindeutigen individuellen Schlüssel aus fünf Zeichen. Empfängt ein Halsband das Signal eines anderen Halsbands, kommt eine sogenannte Begegnung zustande. Bei dieser werden der mit dem Signal übertragene Schlüssel, die Stärke des Signals (z. B. zur Ermittlung des Abstands der beiden Tiere) und der Zeitpunkt der Begegnung lokal auf dem empfangenden Halsband gespeichert.
Wird ein bestimmter Schlüssel von einem Halsband erstmals empfangen, legt dieses dafür zusätzlich einen sogenannten Kontakt an. Ein Kontakt verwaltet sämtliche Begegnungen mit demselben Schlüssel. Ist zu einem Schlüssel ein Kontakt vorhanden, gab es also schon mindestens eine Begegnung mit dem Halsband, das diesen Schlüssel sendet. Daher ist bei jeder neuen Begegnung zu prüfen, ob schon ein passender Kontakt vorliegt.
Innerhalb eines Kontakts sind die Begegnungen aufsteigend nach dem Zeitpunkt geordnet. Die Kontakte selbst liegen in einem Suchbaum, der alphabetisch nach dem Schlüssel geordnet ist.
Zur Überprüfung der Funktionsweise werden die Halsbänder zunächst einen Tag lang in einem kleineren Gehege an einigen Erdmännchen des Parks getestet. Zum Zeitpunkt der Aktivierung sind auf den Halsbändern zunächst weder Kontakte noch Begegnungen gespeichert. Das Halsband eines Erdmännchens erfasst während des Tests Begegnungen in der in Abbildung 1 angegebenen Reihenfolge. Abbildung 2 zeigt den Suchbaum mit allen Kontakten (dargestellt über ihren Schlüssel und die Anzahl der zugehörigen Begegnungen), der sich bei der Verarbeitung der Begegnungen aus Abbildung 1 ergibt.
Nr. · Schlüssel · Signalstärke · Zeitpunkt
1 · ncgde · 132 · 2022-03-19 15:54
2 · grsmt · 154 · 2022-03-19 16:21
3 · grsmt · 46 · 2022-03-19 16:23
4 · bdsuw · 113 · 2022-03-19 16:27
5 · pwagb · 21 · 2022-03-19 16:33
6 · mkwda · 78 · 2022-03-19 16:34
7 · ncgde · 103 · 2022-03-19 16:35
8 · mkwda · 142 · 2022-03-19 16:39
9 · wrlyr · 69 · 2022-03-19 17:02
Abbildung 1: Begegnungen des Halsbands eines Erdmännchens
Abbildung 4 zeigt einen Ausschnitt aus dem Implementationsdiagramm des Softwaresystems der Halsbänder.
a)
In Abbildung 3 sind die Begegnungen aufgeführt, die das Halsband eines weiteren Erdmännchens am Testtag aufgezeichnet hat.
Stellen Sie den sich ergebenden Suchbaum mit sämtlichen darin verwalteten Kontakten (jeweils mit Schlüssel und Anzahl der zugehörigen Begegnungen) dar, der entsteht, nachdem alle Begegnungen aus Abbildung 3 verarbeitet wurden.
Begründen Sie, weshalb ein Suchbaum zur Verwaltung der Kontakte besser geeignet ist als eine lineare Liste.
b)
Gegeben ist die nachstehende Implementierung der Methode liefereEtwas der Klasse Halsband:
1 public Kontakt liefereEtwas() {
2
Kontakt ergebnis = null;
3
if (!kontakte.isEmpty()) {
4
Queue<BinarySearchTree<Kontakt>> q
5
= new Queue<BinarySearchTree<Kontakt>>();
6
int max = 0;
7
q.enqueue(kontakte);
8
do {
9
BinarySearchTree<Kontakt> hilf = q.front();
10
q.dequeue();
11
Kontakt aktuell = hilf.getContent();
12
if (aktuell.liefereMaximaleSignalstaerke() > max) {
13
max = aktuell.liefereMaximaleSignalstaerke();
14
ergebnis = aktuell;
15
}
16
if (!hilf.getLeftTree().isEmpty()) {
17
q.enqueue(hilf.getLeftTree());
18
}
19
if (!hilf.getRightTree().isEmpty()) {
20
q.enqueue(hilf.getRightTree());
21
}
22
} while (!q.isEmpty())
23
}
24
return ergebnis;
25 } Die Methode soll auf die Beispieldaten des Testtages aus den Abbildungen 1 und 2 angewandt werden; dabei wird der Suchbaum aus Abbildung 2 im Attribut kontakte verwaltet.
Erläutern Sie die Arbeitsweise der Methode liefereEtwas.
Erläutern Sie im Sachzusammenhang, welches Ergebnis die Methode liefereEtwas liefert.
c)
Die Methode liefereBegegnungen der Klasse Halsband bestimmt eine Liste aller Begegnungen, bei denen mindestens die Signalstärke pMin empfangen wurde. Ihr Methodenkopf lautet:
public List<Begegnung> liefereBegegnungen(int pMin) Entwickeln und erläutern Sie eine algorithmische Vorgehensweise für die Methode liefereBegegnungen.
Implementieren Sie die Methode liefereBegegnungen entsprechend Ihrer Strategie und der Dokumentation im Anhang:
Aufgabe 2 - Modellierung · Objektorientierte Modellierung mit Implementationsdiagrammen
Aufgabenstellung:
Im Nationalpark Wildlife teilen sich unterschiedliche Tierarten ein weitläufiges Freigelände. Die Parkleitung will das Zusammenspiel der Tiere näher untersuchen und stattet sie deshalb mit Halsbändern aus, die Begegnungen mit anderen Tieren erfassen und verwalten können.
Jedes Halsband sendet in regelmäßigen Zeitabständen ein Signal mit einem eindeutigen individuellen Schlüssel aus fünf Zeichen. Empfängt ein Halsband das Signal eines anderen Halsbands, kommt eine sogenannte Begegnung zustande. Bei dieser werden der mit dem Signal übertragene Schlüssel, die Stärke des Signals (z. B. zur Ermittlung des Abstands der beiden Tiere) und der Zeitpunkt der Begegnung lokal auf dem empfangenden Halsband gespeichert.
Wird ein bestimmter Schlüssel von einem Halsband erstmals empfangen, legt dieses dafür zusätzlich einen sogenannten Kontakt an. Ein Kontakt verwaltet sämtliche Begegnungen mit demselben Schlüssel. Ist zu einem Schlüssel ein Kontakt vorhanden, gab es also schon mindestens eine Begegnung mit dem Halsband, das diesen Schlüssel sendet. Daher ist bei jeder neuen Begegnung zu prüfen, ob schon ein passender Kontakt vorliegt.
Innerhalb eines Kontakts sind die Begegnungen aufsteigend nach dem Zeitpunkt geordnet. Die Kontakte selbst liegen in einem Suchbaum, der alphabetisch nach dem Schlüssel geordnet ist.
Zur Überprüfung der Funktionsweise werden die Halsbänder zunächst einen Tag lang in einem kleineren Gehege an einigen Erdmännchen des Parks getestet. Zum Zeitpunkt der Aktivierung sind auf den Halsbändern zunächst weder Kontakte noch Begegnungen gespeichert. Das Halsband eines Erdmännchens erfasst während des Tests Begegnungen in der in Abbildung 1 angegebenen Reihenfolge. Abbildung 2 zeigt den Suchbaum mit allen Kontakten (dargestellt über ihren Schlüssel und die Anzahl der zugehörigen Begegnungen), der sich bei der Verarbeitung der Begegnungen aus Abbildung 1 ergibt.
Nr. · Schlüssel · Signalstärke · Zeitpunkt
1 · ncgde · 132 · 2022-03-19 15:54
2 · grsmt · 154 · 2022-03-19 16:21
3 · grsmt · 46 · 2022-03-19 16:23
4 · bdsuw · 113 · 2022-03-19 16:27
5 · pwagb · 21 · 2022-03-19 16:33
6 · mkwda · 78 · 2022-03-19 16:34
7 · ncgde · 103 · 2022-03-19 16:35
8 · mkwda · 142 · 2022-03-19 16:39
9 · wrlyr · 69 · 2022-03-19 17:02
Abbildung 1: Begegnungen des Halsbands eines Erdmännchens
Abbildung 4 zeigt einen Ausschnitt aus dem Implementationsdiagramm des Softwaresystems der Halsbänder.
Das Nachfolgemodell der im Park bisher eingesetzten Halsbänder ist zusätzlich mit einer GPS-Einheit ausgestattet. Damit lässt sich jederzeit der genaue Standort ermitteln. Die aktuelle Position wird dabei mithilfe zweier Koordinaten bestimmt. Der Eingang des Parks befindet sich zum Beispiel ungefähr bei den Koordinaten 52.7478 und 9.6156.
Das Forschungsteam des Parks möchte das Verhalten der Tiere und die Bewegungen einzelner Tiere genauer untersuchen. In einer Übergangsphase kommen weiterhin beide Modelle der Halsbänder parallel zum Einsatz. Dazu soll die bisherige Software um folgende Aspekte erweitert werden:
Ein Halsband speichert zusätzlich zu seinem eigenen Schlüssel eine Modellbezeichnung, aus der hervorgeht, ob es zum älteren oder zum neueren Modell gehört. Diese Angabe soll von außen abrufbar sein.
Die Software soll Standorte verwalten können, die einer mit der beschriebenen GPS-Einheit bestimmten Position entsprechen. Jede Information eines solchen Standorts soll einzeln abrufbar sein.
Halsbänder des neueren Modells erfassen beim Zustandekommen einer Begegnung zusätzlich ihren Standort und ordnen diesen der Begegnung zu. Auf Anfrage soll dieser zurückgeliefert werden.
d)
Modellieren Sie die oben genannten Anforderungen als Erweiterung der Modellierung aus Abbildung 4 und stellen Sie dabei nur die Veränderungen und Erweiterungen in Form eines Implementationsdiagramms dar.
Erläutern Sie, auf welche Weise Ihr Modell die einzelnen Anforderungen umsetzt.
Aufgabe 2 - Datenschutz · Datenschutz und Datensicherheit
Aufgabenstellung:
Im Nationalpark Wildlife teilen sich unterschiedliche Tierarten ein weitläufiges Freigelände. Die Parkleitung will das Zusammenspiel der Tiere näher untersuchen und stattet sie deshalb mit Halsbändern aus, die Begegnungen mit anderen Tieren erfassen und verwalten können.
Jedes Halsband sendet in regelmäßigen Zeitabständen ein Signal mit einem eindeutigen individuellen Schlüssel aus fünf Zeichen. Empfängt ein Halsband das Signal eines anderen Halsbands, kommt eine sogenannte Begegnung zustande. Bei dieser werden der mit dem Signal übertragene Schlüssel, die Stärke des Signals (z. B. zur Ermittlung des Abstands der beiden Tiere) und der Zeitpunkt der Begegnung lokal auf dem empfangenden Halsband gespeichert.
Wird ein bestimmter Schlüssel von einem Halsband erstmals empfangen, legt dieses dafür zusätzlich einen sogenannten Kontakt an. Ein Kontakt verwaltet sämtliche Begegnungen mit demselben Schlüssel. Ist zu einem Schlüssel ein Kontakt vorhanden, gab es also schon mindestens eine Begegnung mit dem Halsband, das diesen Schlüssel sendet. Daher ist bei jeder neuen Begegnung zu prüfen, ob schon ein passender Kontakt vorliegt.
Innerhalb eines Kontakts sind die Begegnungen aufsteigend nach dem Zeitpunkt geordnet. Die Kontakte selbst liegen in einem Suchbaum, der alphabetisch nach dem Schlüssel geordnet ist.
Zur Überprüfung der Funktionsweise werden die Halsbänder zunächst einen Tag lang in einem kleineren Gehege an einigen Erdmännchen des Parks getestet. Zum Zeitpunkt der Aktivierung sind auf den Halsbändern zunächst weder Kontakte noch Begegnungen gespeichert. Das Halsband eines Erdmännchens erfasst während des Tests Begegnungen in der in Abbildung 1 angegebenen Reihenfolge. Abbildung 2 zeigt den Suchbaum mit allen Kontakten (dargestellt über ihren Schlüssel und die Anzahl der zugehörigen Begegnungen), der sich bei der Verarbeitung der Begegnungen aus Abbildung 1 ergibt.
Nr. · Schlüssel · Signalstärke · Zeitpunkt
1 · ncgde · 132 · 2022-03-19 15:54
2 · grsmt · 154 · 2022-03-19 16:21
3 · grsmt · 46 · 2022-03-19 16:23
4 · bdsuw · 113 · 2022-03-19 16:27
5 · pwagb · 21 · 2022-03-19 16:33
6 · mkwda · 78 · 2022-03-19 16:34
7 · ncgde · 103 · 2022-03-19 16:35
8 · mkwda · 142 · 2022-03-19 16:39
9 · wrlyr · 69 · 2022-03-19 17:02
Abbildung 1: Begegnungen des Halsbands eines Erdmännchens
Abbildung 4 zeigt einen Ausschnitt aus dem Implementationsdiagramm des Softwaresystems der Halsbänder.
e)
Jede Mitarbeiterin und jeder Mitarbeiter des Parks hat ein Diensthandy, das von der Parkleitung zentral betreut und mit Updates versorgt wird. So sind die Beschäftigten bei der Arbeit auf dem großen Gelände stets erreichbar und können bei Bedarf Unterstützung rufen. Außerdem benachrichtigt die Parkleitung das Personal über das Smartphone, falls es in Rufbereitschaft kurzfristig von zu Hause aus zum Dienst erscheinen und (z. B. wegen unerwarteter Krankmeldungen von Kolleginnen oder Kollegen) einspringen muss.
Zur Verbesserung der Sicherheit des Personals spielt die Parkleitung mit einem Update automatisch eine neue App auf die Smartphones auf. Sie bietet dieselben Funktionen wie das neuere Halsbandmodell im Park, einschließlich der oben genannten drei Erweiterungen. Zusätzlich bestimmt und speichert die App in regelmäßigen Abständen den aktuellen Standort, auch wenn gar keine Begegnung stattfindet. Die Parkleitung weiß dabei, welcher Schlüssel welcher Mitarbeiterin bzw. welchem Mitarbeiter zugeordnet ist.
Die App wird beim Hochfahren des Smartphones automatisch gestartet und läuft ständig im Hintergrund. Außerdem werden sämtliche erfassten Daten jeden Tag ausgelesen und auf den zentralen Parkserver übertragen.
Beurteilen Sie unter Bezug auf ein Grundprinzip des Datenschutzes das Handeln der Parkleitung.
(6 Punkte)
Aufgabe 3 - Datenbankmodellierung · Datenbankmodellierung und Normalisierung
Aufgabenstellung:
Die Schach-AG einer Schule plant, gemeinsam mit den Schach-AGs weiterer Schulen eine Schach-Liga zu gründen, in der dauerhaft Wettkämpfe stattfinden. Dabei sollen die Schulen wiederholt einzelne Partien oder ganze Turniere gegeneinander austragen. Hierfür sollen die Schülerinnen und Schüler eines Informatikkurses eine Datenbank erstellen. Diese soll die folgenden Daten verwalten:
Für die teilnehmenden Schulen sollen der Name, eine eindeutige Nummer (die sogenannte Schulnummer) und die Adresse verwaltet werden. Damit die Lehrenden der verschiedenen Schulen untereinander Kontakt aufnehmen können, sollen außerdem folgende Daten von der Lehrerin oder dem Lehrer der Schach-AG gespeichert werden: der Name, das Geburtsdatum, die Telefonnummer und die E-Mail-Adresse.
Von den Spielerinnen und Spielern werden der Name und die zugehörige Schule verwaltet. Um feststellen zu können, welche Spielerinnen und Spieler im gleichen Jahr geboren sind, wird außerdem das Geburtsdatum gespeichert. Dadurch können die Spielerinnen und Spieler in Altersgruppen eingeteilt werden.
Bei einer Partie spielen zwei Spielerinnen bzw. Spieler gegeneinander. Beide können aus der gleichen Schule oder von verschiedenen Schulen stammen. Dabei werden der Zeitpunkt des Beginns der Partie und das Ergebnis gespeichert. Außerdem wird gespeichert, wer die Farbe Weiß und wer die Farbe Schwarz hat.
Als Entwurf für die Datenbank hat der Informatikkurs zunächst das folgende Entity-Relationship-Diagramm erstellt:
Aus dem Entity-Relationship-Diagramm wurde anschließend das folgende Datenbankschema abgeleitet (siehe Abbildung 2).
Die Ergebnisse der Partien werden wie folgt gespeichert: Hat Weiß gewonnen, so wird der Wert 1 gespeichert. Hat Schwarz gewonnen, so wird der Wert -1 gespeichert. Geht die Partie unentschieden aus (ein sogenanntes Patt), so wird der Wert 0 gespeichert.
Anlage:
Lehrer EMailAdresse · Name · Geburtsdatum · Telefonnummer
allen@info.nrw · Frances E. Allen · 1971-08-04 · 0123-4567
blanch@info.nrw · Gertrude Blanch · 1972-02-02 · 01233-5678
lovelace@info.nrw · Ada Lovelace · 1973-12-10 · 01232-68104
chen@info.nrw · Peter Chen · 1977-01-03 · 01131-5316161
bayer@info.nrw · Rudolf Bayer · 1977-03-03 · 01121-6695314
dahl@info.nrw · Ole-Johann Dahl · 1977-10-12 · 01911-718212
Schule Schulnummer · Name · Adresse · LehrerEMailAdresse
123 · Gamma-Gesamtschule · Baumallee 13, 10007 Krähwinkel · bayer@info.nrw
170 · Huffman-Hauptschule · Holzweg 5, 10006 Jammertal · blanch@info.nrw
552 · Gödel-Gymnasium · An de Dyk 13, 1005 Nergenshuizen · dahl@info.nrw
662 · Knuth-Kolleg · Hintergasse 3, 10001 Vordertupfingen · chen@info.nrw
732 · Shannon-Schule · Heimweg 3, 10004 Posemuckel · allen@info.nrw
840 · Knuth-Kolleg · Vorderer Weg 1, 10000 Hintertupfingen · lovelace@info.nrw
Spieler ID · Name · Geburtsdatum
1 · Armin Gips · 2010-03-14
2 · Lee Coeur · 2011-02-26
3 · Heinz Ellmann · 2009-08-05
4 · Karl Ender · 2006-06-30
5 · Kai Mauer · 2008-05-23
6 · Klaus Uhr · 2011-04-27
7 · Nico Laus · 2009-12-15
8 · Lisa Bonn · 2009-11-13
9 · Johannes Brodt · 2007-02-01
gehoertZu SpielerID · Schulnummer
1 · 123
2 · 123
3 · 552
4 · 840
5 · 732
6 · 840
7 · 123
8 · 662
9 · 170
Partie Startzeitpunkt · spieltWeissID · spieltSchwarzID · Ergebnis
2022-04-07 12:00 · 1 · 2 · -1
2022-04-07 12:45 · 2 · 1 · -1
2022-04-07 13:30 · 1 · 2 · -1
2022-04-07 12:00 · 3 · 5 · 0
2022-04-08 08:10 · 3 · 7 · 1
2022-04-26 09:55 · 7 · 3 · 1
2022-04-27 11:40 · 9 · 6 · 1
2022-04-28 13:50 · 7 · 6 · -1
2022-04-29 08:10 · 3 · 2 · 1
Hinweis: Ist das Ergebnis 1, so hat Weiß gewonnen. Ist das Ergebnis -1, so hat Schwarz gewonnen. Ist das Ergebnis 0, so gab es ein Patt (ein Unentschieden).
a)
Erläutern Sie, auf welche Weise das entwickelte Entity-Relationship-Diagramm die beschriebenen Anforderungen realisiert.
Ermitteln Sie, welche anderen Primärschlüssel sich für die Entitätstypen Spieler, Schule und Lehrer aus den vorhandenen Attributen auswählen ließen.
Stellen Sie für die Entitätstypen Spieler und Schule die Vor- und Nachteile der eingesetzten Primärschlüssel sowie der von Ihnen genannten alternativen Primärschlüssel dar. (6 + 3 + 3 Punkte)
d)
Die Datenbank soll zusätzlich zu den bisherigen Partien auch Turniere und die zugehörigen Partien abbilden.
• An einem Turnier nehmen mehrere Schulen teil, von denen eine Schule als Sieger des Turniers ermittelt wird. Ein Turnier findet an einem bestimmten Termin statt und hat einen Namen.
• Eine Schule, die an einem Turnier teilnimmt, meldet mindestens eine Mannschaft an. Eine Mannschaft besteht aus mehreren Spielerinnen bzw. Spielern. Jede Spielerin bzw. jeder Spieler gehört zu genau einer Mannschaft.
• Eine Partie wird entweder auf einem Turnier gespielt, oder sie gehört zu keinem Turnier. Für Partien eines Turniers gelten dieselben Anforderungen wie in der alten Modellierung. Zur Vereinfachung dürfen auch weiterhin Spielerinnen und Spieler der gleichen Schule oder sogar der gleichen Mannschaft gegeneinander spielen.
Modellieren Sie eine Erweiterung des Entity-Relationship-Diagramms aus Abbildung 1, sodass der neue Datenbankentwurf auch die beschriebenen Aspekte abdeckt.
Erläutern Sie, auf welche Weise Ihr Modell die Anforderungen erfüllt, und begründen Sie die von Ihnen gewählten Kardinalitäten. (7 + 5 Punkte)
Hinweis: Entitäts- und Beziehungstypen sowie Attribute ohne Bedeutung für die Erweiterung brauchen nicht eingezeichnet zu werden.
Aufgabe 3 - SQL-Abfragen · SQL-Abfragen
Aufgabenstellung:
Die Schach-AG einer Schule plant, gemeinsam mit den Schach-AGs weiterer Schulen eine Schach-Liga zu gründen, in der dauerhaft Wettkämpfe stattfinden. Dabei sollen die Schulen wiederholt einzelne Partien oder ganze Turniere gegeneinander austragen. Hierfür sollen die Schülerinnen und Schüler eines Informatikkurses eine Datenbank erstellen. Diese soll die folgenden Daten verwalten:
Für die teilnehmenden Schulen sollen der Name, eine eindeutige Nummer (die sogenannte Schulnummer) und die Adresse verwaltet werden. Damit die Lehrenden der verschiedenen Schulen untereinander Kontakt aufnehmen können, sollen außerdem folgende Daten von der Lehrerin oder dem Lehrer der Schach-AG gespeichert werden: der Name, das Geburtsdatum, die Telefonnummer und die E-Mail-Adresse.
Von den Spielerinnen und Spielern werden der Name und die zugehörige Schule verwaltet. Um feststellen zu können, welche Spielerinnen und Spieler im gleichen Jahr geboren sind, wird außerdem das Geburtsdatum gespeichert. Dadurch können die Spielerinnen und Spieler in Altersgruppen eingeteilt werden.
Bei einer Partie spielen zwei Spielerinnen bzw. Spieler gegeneinander. Beide können aus der gleichen Schule oder von verschiedenen Schulen stammen. Dabei werden der Zeitpunkt des Beginns der Partie und das Ergebnis gespeichert. Außerdem wird gespeichert, wer die Farbe Weiß und wer die Farbe Schwarz hat.
Als Entwurf für die Datenbank hat der Informatikkurs zunächst das folgende Entity-Relationship-Diagramm erstellt:
Aus dem Entity-Relationship-Diagramm wurde anschließend das folgende Datenbankschema abgeleitet (siehe Abbildung 2).
Die Ergebnisse der Partien werden wie folgt gespeichert: Hat Weiß gewonnen, so wird der Wert 1 gespeichert. Hat Schwarz gewonnen, so wird der Wert -1 gespeichert. Geht die Partie unentschieden aus (ein sogenanntes Patt), so wird der Wert 0 gespeichert.
Anlage:
Lehrer EMailAdresse · Name · Geburtsdatum · Telefonnummer
allen@info.nrw · Frances E. Allen · 1971-08-04 · 0123-4567
blanch@info.nrw · Gertrude Blanch · 1972-02-02 · 01233-5678
lovelace@info.nrw · Ada Lovelace · 1973-12-10 · 01232-68104
chen@info.nrw · Peter Chen · 1977-01-03 · 01131-5316161
bayer@info.nrw · Rudolf Bayer · 1977-03-03 · 01121-6695314
dahl@info.nrw · Ole-Johann Dahl · 1977-10-12 · 01911-718212
Schule Schulnummer · Name · Adresse · LehrerEMailAdresse
123 · Gamma-Gesamtschule · Baumallee 13, 10007 Krähwinkel · bayer@info.nrw
170 · Huffman-Hauptschule · Holzweg 5, 10006 Jammertal · blanch@info.nrw
552 · Gödel-Gymnasium · An de Dyk 13, 1005 Nergenshuizen · dahl@info.nrw
662 · Knuth-Kolleg · Hintergasse 3, 10001 Vordertupfingen · chen@info.nrw
732 · Shannon-Schule · Heimweg 3, 10004 Posemuckel · allen@info.nrw
840 · Knuth-Kolleg · Vorderer Weg 1, 10000 Hintertupfingen · lovelace@info.nrw
Spieler ID · Name · Geburtsdatum
1 · Armin Gips · 2010-03-14
2 · Lee Coeur · 2011-02-26
3 · Heinz Ellmann · 2009-08-05
4 · Karl Ender · 2006-06-30
5 · Kai Mauer · 2008-05-23
6 · Klaus Uhr · 2011-04-27
7 · Nico Laus · 2009-12-15
8 · Lisa Bonn · 2009-11-13
9 · Johannes Brodt · 2007-02-01
gehoertZu SpielerID · Schulnummer
1 · 123
2 · 123
3 · 552
4 · 840
5 · 732
6 · 840
7 · 123
8 · 662
9 · 170
Partie Startzeitpunkt · spieltWeissID · spieltSchwarzID · Ergebnis
2022-04-07 12:00 · 1 · 2 · -1
2022-04-07 12:45 · 2 · 1 · -1
2022-04-07 13:30 · 1 · 2 · -1
2022-04-07 12:00 · 3 · 5 · 0
2022-04-08 08:10 · 3 · 7 · 1
2022-04-26 09:55 · 7 · 3 · 1
2022-04-27 11:40 · 9 · 6 · 1
2022-04-28 13:50 · 7 · 6 · -1
2022-04-29 08:10 · 3 · 2 · 1
Hinweis: Ist das Ergebnis 1, so hat Weiß gewonnen. Ist das Ergebnis -1, so hat Schwarz gewonnen. Ist das Ergebnis 0, so gab es ein Patt (ein Unentschieden).
Teilaufgabe b)
Mithilfe der Datenbank sollen die folgenden Informationen abgefragt werden:
(i)
Ermittelt werden sollen alle Personen, die eine Partie mit den weißen Figuren verloren haben. Auszugeben sind der Name der Person sowie der Name ihrer Schule.
(ii)
Ermittelt werden sollen die Schulnummer und der Name jeder Schule sowie die Anzahl der Spielerinnen und Spieler, die für die jeweilige Schule antreten. Die Ausgabe soll nach dieser Anzahl absteigend sortiert sein.
Teilaufgabe c)
Gesucht werden alle Spielerinnen und Spieler, die bisher noch an keiner Partie beteiligt waren. Zusätzlich sollen zu jeder Person die zugehörige Schule samt deren Kontaktdaten bestimmt werden. Dazu wird die folgende Anfrage an das Datenbanksystem gerichtet:
1 SELECT Spieler.Name, Schule.Name
2 FROM Spieler
3 INNER JOIN gehoertZu
4 ON Spieler.ID = gehoertZu.SpielerID
5 INNER JOIN Schule
6 ON gehoertZu.Schulnummer = Schule.Schulnummer
7 WHERE Spieler.ID NOT IN (
8 SELECT Partie.spieltWeissID
9 FROM Partie
10)
11 ORDER BY Schule.Name ASC, Spieler.Name ASC
1.
Analysieren Sie die Anfrage, indem Sie diese auf die Beispieldaten in der Anlage anwenden, das entstehende Ergebnis darstellen und die Wirkungsweise der Anfrage erläutern.
2.
Begründen Sie, weshalb die SQL-Anweisung die Anforderungen nicht erfüllt.
3.
Erläutern Sie, auf welche Weise die Anfrage ergänzt werden kann, damit die gewünschte Information geliefert wird.
Aufgabe 3 - Datenschutz · Datenschutz und Datensicherheit
Aufgabenstellung:
Die Schach-AG einer Schule plant, gemeinsam mit den Schach-AGs weiterer Schulen eine Schach-Liga zu gründen, in der dauerhaft Wettkämpfe stattfinden. Dabei sollen die Schulen wiederholt einzelne Partien oder ganze Turniere gegeneinander austragen. Hierfür sollen die Schülerinnen und Schüler eines Informatikkurses eine Datenbank erstellen. Diese soll die folgenden Daten verwalten:
Für die teilnehmenden Schulen sollen der Name, eine eindeutige Nummer (die sogenannte Schulnummer) und die Adresse verwaltet werden. Damit die Lehrenden der verschiedenen Schulen untereinander Kontakt aufnehmen können, sollen außerdem folgende Daten von der Lehrerin oder dem Lehrer der Schach-AG gespeichert werden: der Name, das Geburtsdatum, die Telefonnummer und die E-Mail-Adresse.
Von den Spielerinnen und Spielern werden der Name und die zugehörige Schule verwaltet. Um feststellen zu können, welche Spielerinnen und Spieler im gleichen Jahr geboren sind, wird außerdem das Geburtsdatum gespeichert. Dadurch können die Spielerinnen und Spieler in Altersgruppen eingeteilt werden.
Bei einer Partie spielen zwei Spielerinnen bzw. Spieler gegeneinander. Beide können aus der gleichen Schule oder von verschiedenen Schulen stammen. Dabei werden der Zeitpunkt des Beginns der Partie und das Ergebnis gespeichert. Außerdem wird gespeichert, wer die Farbe Weiß und wer die Farbe Schwarz hat.
Als Entwurf für die Datenbank hat der Informatikkurs zunächst das folgende Entity-Relationship-Diagramm erstellt:
Aus dem Entity-Relationship-Diagramm wurde anschließend das folgende Datenbankschema abgeleitet (siehe Abbildung 2).
Die Ergebnisse der Partien werden wie folgt gespeichert: Hat Weiß gewonnen, so wird der Wert 1 gespeichert. Hat Schwarz gewonnen, so wird der Wert -1 gespeichert. Geht die Partie unentschieden aus (ein sogenanntes Patt), so wird der Wert 0 gespeichert.
Anlage:
Lehrer EMailAdresse · Name · Geburtsdatum · Telefonnummer
allen@info.nrw · Frances E. Allen · 1971-08-04 · 0123-4567
blanch@info.nrw · Gertrude Blanch · 1972-02-02 · 01233-5678
lovelace@info.nrw · Ada Lovelace · 1973-12-10 · 01232-68104
chen@info.nrw · Peter Chen · 1977-01-03 · 01131-5316161
bayer@info.nrw · Rudolf Bayer · 1977-03-03 · 01121-6695314
dahl@info.nrw · Ole-Johann Dahl · 1977-10-12 · 01911-718212
Schule Schulnummer · Name · Adresse · LehrerEMailAdresse
123 · Gamma-Gesamtschule · Baumallee 13, 10007 Krähwinkel · bayer@info.nrw
170 · Huffman-Hauptschule · Holzweg 5, 10006 Jammertal · blanch@info.nrw
552 · Gödel-Gymnasium · An de Dyk 13, 1005 Nergenshuizen · dahl@info.nrw
662 · Knuth-Kolleg · Hintergasse 3, 10001 Vordertupfingen · chen@info.nrw
732 · Shannon-Schule · Heimweg 3, 10004 Posemuckel · allen@info.nrw
840 · Knuth-Kolleg · Vorderer Weg 1, 10000 Hintertupfingen · lovelace@info.nrw
Spieler ID · Name · Geburtsdatum
1 · Armin Gips · 2010-03-14
2 · Lee Coeur · 2011-02-26
3 · Heinz Ellmann · 2009-08-05
4 · Karl Ender · 2006-06-30
5 · Kai Mauer · 2008-05-23
6 · Klaus Uhr · 2011-04-27
7 · Nico Laus · 2009-12-15
8 · Lisa Bonn · 2009-11-13
9 · Johannes Brodt · 2007-02-01
gehoertZu SpielerID · Schulnummer
1 · 123
2 · 123
3 · 552
4 · 840
5 · 732
6 · 840
7 · 123
8 · 662
9 · 170
Partie Startzeitpunkt · spieltWeissID · spieltSchwarzID · Ergebnis
2022-04-07 12:00 · 1 · 2 · -1
2022-04-07 12:45 · 2 · 1 · -1
2022-04-07 13:30 · 1 · 2 · -1
2022-04-07 12:00 · 3 · 5 · 0
2022-04-08 08:10 · 3 · 7 · 1
2022-04-26 09:55 · 7 · 3 · 1
2022-04-27 11:40 · 9 · 6 · 1
2022-04-28 13:50 · 7 · 6 · -1
2022-04-29 08:10 · 3 · 2 · 1
Hinweis: Ist das Ergebnis 1, so hat Weiß gewonnen. Ist das Ergebnis -1, so hat Schwarz gewonnen. Ist das Ergebnis 0, so gab es ein Patt (ein Unentschieden).
e)
Entscheiden Sie, bei welchen der Daten im gezeigten Datenbank-Modell (siehe Abbildungen 1 und 2) es sich um personenbezogene Daten handelt.
Beurteilen Sie unter dem Gesichtspunkt des Datenschutzes, inwieweit die in der Datenbank abgelegten Daten erforderlich sind.
[3 + 3 Punkte]
Aufgabe 4 - Grammatiken und Kellerautomaten · Grammatiken, Kellerautomaten und Grenzen endlicher Automaten
Aufgabenstellung:
In der Grundschule lernen Kinder anfangs nur das Lesen einfacher Wörter („Erstlesewörter“). Ein Wort gilt als einfach, wenn seine Aussprache weitgehend dem Schriftbild entspricht und es nur aus wenigen Silben besteht. Die deutsche Sprachwissenschaft kennt Regeln für den Aufbau von Silben; für diese Klausur werden sie folgendermaßen vereinfacht:
Der Einfachheit halber sind alle Wörter ausschließlich in Kleinbuchstaben notiert.
a)
Ermitteln Sie drei Wörter, die sich mithilfe der Grammatik ableiten lassen.
Bestimmen Sie zwei Eigenschaften, die den Aufbau der Wörter beschreiben und die auf sämtliche mit der Grammatik ableitbaren Wörter zutreffen.
Entwerfen Sie die reguläre Grammatik , die die Grammatik so erweitert, dass auch die Wörter weg und tag erzeugt werden.
c)
Wörter mit vielen Konsonanten lassen sich schlecht lesen. Als geeignet für Erstlesetexte gelten Wörter, die höchstens doppelt so viele Konsonanten wie Vokale enthalten.
Weil es hier nicht auf die einzelnen Konsonanten und Vokale ankommt, wird im Eingabewort vor der Prüfung durch den Kellerautomaten jeder Konsonant durch das Zeichen b und jeder Vokal durch das Zeichen a ersetzt.
Entwickeln Sie einen nichtdeterministischen Kellerautomaten, der prüft, ob ein Eingabewort höchstens doppelt so viele b wie a enthält.
Stellen Sie dar, wie das Wort babab erkannt wird.
e)
Der Praktikant vermutet, dass sich die Frage, ob ein Wort höchstens fünf Zeichen lang ist, nicht nur per Programm, sondern auch durch einen endlichen Automaten klären lässt.
Beurteilen Sie, ob ein endlicher Automat existiert, der entscheidet, ob ein Eingabewort höchstens fünf Zeichen umfasst.
Aufgabe 4 - Endliche Automaten · Endliche Automaten
Aufgabenstellung:
In der Grundschule lernen Kinder anfangs nur das Lesen einfacher Wörter („Erstlesewörter“). Ein Wort gilt als einfach, wenn seine Aussprache weitgehend dem Schriftbild entspricht und es nur aus wenigen Silben besteht. Die deutsche Sprachwissenschaft kennt Regeln für den Aufbau von Silben; für diese Klausur werden sie folgendermaßen vereinfacht:
Der Einfachheit halber sind alle Wörter ausschließlich in Kleinbuchstaben notiert.
In deutschen Texten enthalten zahlreiche Silben lediglich einen Vokal. Daneben existieren Silben mit mehreren Vokalen, da bestimmte Vokalkombinationen häufig auftreten, beispielsweise ie im Wort viel oder au im Wort Maus.
Der Übergangsgraph in Abbildung 2 gehört zum endlichen Automaten A, dessen Eingabealphabet aus allen Vokalen besteht. Er erkennt die in Silben deutscher Wörter am häufigsten vorkommenden Vokale und Vokalkombinationen.
b)
Geben Sie für den Automaten A den Startzustand sowie die Menge der Endzustände an.
Erläutern Sie, was der Zustand des Automaten A im Sachzusammenhang bedeutet.
Entwickeln Sie den Übergangsgraphen eines deterministischen endlichen Automaten, der genau die Sprache akzeptiert, die auch der nichtdeterministische endliche Automat A akzeptiert.
Aufgabe 4 - Algorithmen · Algorithmen auf Feldern und linearen Listen
Aufgabenstellung:
In der Grundschule lernen Kinder anfangs nur das Lesen einfacher Wörter („Erstlesewörter“). Ein Wort gilt als einfach, wenn seine Aussprache weitgehend dem Schriftbild entspricht und es nur aus wenigen Silben besteht. Die deutsche Sprachwissenschaft kennt Regeln für den Aufbau von Silben; für diese Klausur werden sie folgendermaßen vereinfacht:
Der Einfachheit halber sind alle Wörter ausschließlich in Kleinbuchstaben notiert.
Wie schwer ein Text zu lesen ist, hängt neben der Anzahl der Silben auch von der Buchstabenanzahl je Wort ab: „Schifffahrt“ mit 11 Buchstaben ist schwerer zu lesen als „Nase“ mit 4 Buchstaben.
Lesetexte für Erstleserinnen und Erstleser sollen mithilfe einer Software aufbereitet werden. Die Software entfernt vor der Verarbeitung der Lesetexte alle Satzzeichen.
Dabei wird die folgende Modellierung zugrunde gelegt:
Vereinfachend gilt ein Wort eines Textes als für Erstleserinnen und Erstleser geeignet, wenn es höchstens zwei Silben und höchstens fünf Zeichen aufweist.
d)
Für die Klasse Lesetext ist eine Methode zu entwickeln, die alle Wörter des Lesetextes mit höchstens fünf Zeichen und höchstens zwei Silben in einer Liste zurückliefert.
Der Methodenkopf lautet:
public List<Wort> ermittleGeeignete()
public List<Wort> ermittleGeeignete() {
}
Du kannst auch nach Themen lernen
Übe ein Thema mit gemischten Aufgaben aus den Prüfungen aller Jahre.
- Algorithmen auf Feldern und linearen Listen · 37 Aufgaben · 90 % Wahrscheinlichkeit
- Objektorientierte Modellierung mit Implementationsdiagrammen · 29 Aufgaben · 90 % Wahrscheinlichkeit
- Datenbankmodellierung und Normalisierung · 15 Aufgaben · 90 % Wahrscheinlichkeit
- SQL-Abfragen · 15 Aufgaben · 90 % Wahrscheinlichkeit
- Endliche Automaten · 15 Aufgaben · 90 % Wahrscheinlichkeit
- Grammatiken, Kellerautomaten und Grenzen endlicher Automaten · 15 Aufgaben · 90 % Wahrscheinlichkeit
Andere Prüfungen 2022
GK · Haupttermin (2022) · GK · Nachtermin (2022) · LK · Haupttermin (2022)