MINT lernen

INFORMATIK · GRUNDKURS · KAPITEL 10

Probeklausur

Ein vollständiges Probeabitur für den Leistungskurs: eine Aufgabe aus Block 1, zwei aus Block 2.

Eigenes Probeabitur · 100 BE · 300 Minuten

Neu verfasste Übung für den Leistungskurs — keine amtliche Abiturprüfung, keine Themenprognose. Aufbau wie in Niedersachsen: Block 1 mit 50 % der BE, Block 2 mit zwei Aufgaben zu je 25 %. In der echten Prüfung wählst du in Block 1 eine von zwei und in Block 2 zwei von drei Aufgaben; hier sind die Aufgaben fest vorgegeben. Hilfsmittel: nur die ausgedruckte Anlage der fachbezogenen Hinweise, kein Taschenrechner, keine Formelsammlung. Implementierungen in Java oder einer anderen objektorientierten Sprache.

AFB I: 15 BE · AFB II: 62 BE · AFB III: 23 BE. Hinweise und Lösungen erst nach einem eigenen Versuch öffnen.

Arbeitszeit

Der Timer ist freiwillig. Deine Lösungen entstehen auf Papier; die Zeitmessung läuft nur auf dieser geöffneten Seite.

300:00

Bereit.

Block 1 · Aufgabe 1: Bestellsystem der Mensa · 50 BE

Die Schulmensa nimmt Bestellungen digital an. Jede Bestellung hat eine Nummer, ein Gericht, einen Preis in Cent und einen Status, ob sie abgeholt wurde. Alle Bestellungen eines Tages verwaltet die Klasse Mensa in einer DynArray.

Bestellung
- nr: Ganzzahl
- gericht: Zeichenkette
- preis: Ganzzahl
- abgeholt: Wahrheitswert
c Bestellung(n: Ganzzahl, g: Zeichenkette, p: Ganzzahl)
+ getNr(): Ganzzahl
+ getGericht(): Zeichenkette
+ getPreis(): Ganzzahl
+ istAbgeholt(): Wahrheitswert
+ abholen()
Mensa
- bestellungen: DynArray vom Inhaltstyp Bestellung
- ausgabe: Queue vom Inhaltstyp Bestellung
c Mensa()
+ bestelle(g: Zeichenkette, p: Ganzzahl)
+ storniere(nr: Ganzzahl): Wahrheitswert
+ summeOffen(): Ganzzahl
...

1a · AFB I · 6 BE

Nennen Sie die Attribute der Klasse Bestellung mit Datentyp und erläutern Sie die Bedeutung von c, + und -.

1b · AFB II · 10 BE

Stellen Sie den Ablauf der folgenden Operation für drei Bestellungen mit den Preisen 350, 420 und 290 Cent dar, von denen nur die zweite abgeholt ist, in einer Tracetabelle dar.

1c · AFB II · 12 BE

Implementieren Sie storniere(nr: Ganzzahl): Wahrheitswert. Die Bestellung mit der Nummer nr wird entfernt, wenn sie noch nicht abgeholt ist; dann wird wahr zurückgegeben, sonst falsch.

1d · AFB II · 10 BE

Beschreiben Sie, wie die Queue ausgabe die Reihenfolge der Essensausgabe regelt, und geben Sie ihren Inhalt nach: enqueue(b7), enqueue(b3), dequeue(), enqueue(b9), enqueue(b1), dequeue() an.

1e · AFB III · 12 BE

Entwerfen Sie ein Struktogramm für beliebtestes(): Zeichenkette, das das am häufigsten bestellte Gericht zurückgibt. Bei Gleichstand genügt eines der Gerichte; ohne Bestellungen wird die leere Zeichenkette zurückgegeben.

Hinweise

1a · Denkimpuls

Vier Attribute; drei Zeichen.

1b · Denkimpuls

Spalten i, Bedingung, s.

1c · Denkimpuls

Durchlauf mit Index, Vergleich über getNr(), delete(i), frühe Rückgabe.

1d · Denkimpuls

FIFO; Inhalt von vorn nach hinten notieren.

1e · Denkimpuls

Für jedes Gericht zählen, wie oft es vorkommt; das Maximum merken.

Erwartungshorizont

1a · Lösung und 6 BE

nr: Ganzzahl, gericht: Zeichenkette, preis: Ganzzahl, abgeholt: Wahrheitswert (je 1 BE, zusammen 4). c = Konstruktor, + öffentlich, − privat (2 BE).

1b · Lösung und 10 BE
iNICHT abgeholts
0
0wahr350
1falsch
2wahr640

Rückgabe 640. Aufbau der Tabelle 3 BE, Werte 5 BE, Zweck „Summe der noch nicht abgeholten Bestellungen“ 2 BE.

1c · Lösung und 12 BE
def storniere(self, nr):
    for i in range(self.__bestellungen.getLength()):
        b = self.__bestellungen.getItem(i)
        if b.getNr() == nr:
            if b.istAbgeholt():
                return False
            self.__bestellungen.delete(i)
            return True
    return False

Schleife 3 BE, Vergleich 2 BE, Abholprüfung 2 BE, Löschen 2 BE, Rückgaben 2 BE, Syntax 1 BE.

1d · Lösung und 10 BE

Wer zuerst fertig ist, wird zuerst ausgegeben (FIFO): enqueue hängt hinten an, dequeue entnimmt vorn (4 BE). Ablauf: [b7] → [b7, b3] → [b3] → [b3, b9] → [b3, b9, b1] → [b9, b1]. Endinhalt: b9, b1 (6 BE).

1e · Lösung und 12 BE

Äußere Schleife 3 BE, Zählen 4 BE, Maximum 3 BE, Randfall leer 2 BE. Andere korrekte Lösungen (z. B. mit Hilfsreihung) werden gleichwertig bewertet.

Block 2 · Aufgabe 2A: Datenbank der Schülerfirma · 25 BE

Eine Schülerfirma verkauft Pausensnacks. Schema:

Produkt(PNr, Name, Preis)
Verkauf(VNr, Datum, ↑PNr, Menge, ↑Kuerzel)
Mitarbeiter(Kuerzel, Name, Klasse)

2Aa · AFB I · 5 BE

Erläutern Sie die Rolle der Fremdschlüssel in der Tabelle Verkauf.

2Ab · AFB II · 7 BE

Geben Sie eine SQL-Abfrage an, die Namen und Menge aller Verkäufe vom 12.03. mit dem Produktnamen ausgibt.

2Ac · AFB II · 7 BE

Geben Sie eine SQL-Abfrage an, die für jedes Produkt den Umsatz (Preis · Menge) ausgibt — nur Produkte mit mehr als 50 € Umsatz, absteigend sortiert.

2Ad · AFB III · 6 BE

Beurteilen Sie den Vorschlag, eine Rangliste der verkaufsstärksten Mitarbeiter im Schulhaus auszuhängen.

Hinweise

2Aa · Denkimpuls

Worauf verweisen PNr und Kuerzel?

2Ab · Denkimpuls

Verbund über PNr, Bedingung Datum.

2Ac · Denkimpuls

SUM(p.Preis * v.Menge), GROUP BY, HAVING, ORDER BY.

2Ad · Denkimpuls

Datenschutz, Zweck, Einwilligung, Motivation.

Erwartungshorizont

2Aa · Lösung und 5 BE

PNr verweist auf Produkt, Kuerzel auf Mitarbeiter. Jeder Verkauf gehört zu genau einem Produkt und einer Person; Daten werden nicht doppelt gespeichert (je Fremdschlüssel 2 BE, Redundanzvermeidung 1 BE).

2Ab · Lösung und 7 BE
SELECT m.Name, p.Name, v.Menge
FROM Verkauf v, Produkt p, Mitarbeiter m
WHERE v.PNr = p.PNr AND v.Kuerzel = m.Kuerzel
  AND v.Datum = '12.03.'

Tabellen 2 BE, Verbundbedingungen 3 BE, Filter 2 BE.

2Ac · Lösung und 7 BE
SELECT p.Name, SUM(p.Preis * v.Menge) AS Umsatz
FROM Produkt p, Verkauf v
WHERE p.PNr = v.PNr
GROUP BY p.PNr, p.Name
HAVING SUM(p.Preis * v.Menge) > 50
ORDER BY Umsatz DESC
2Ad · Lösung und 6 BE

Pro: Motivation, Transparenz. Contra: personenbezogene Leistungsdaten werden ohne Notwendigkeit öffentlich, möglicher Druck, Einwilligung nötig. Urteil z. B.: nur anonymisiert oder mit freiwilliger Zustimmung (Abwägung 4 BE, Urteil 2 BE).

Block 2 · Aufgabe 2B: Ein Türcode-Automat · 25 BE

Eine Tür öffnet sich, wenn auf der Tastatur mit den Tasten 1, 2 und 3 die Folge 1 3 2 eingegeben wurde. Ein DEA über Σ = {1, 2, 3} liest die Tastendrücke; er soll genau die Folgen akzeptieren, die auf 132 enden.

2Ba · AFB I · 4 BE

Nennen Sie vier Wörter über Σ, die akzeptiert werden sollen, und zwei, die abgelehnt werden sollen.

2Bb · AFB II · 11 BE

Zeichnen Sie einen vollständigen Zustandsgraphen des DEA.

2Bc · AFB II · 5 BE

Erweitern Sie den Automaten zu einem Mealy-Automaten, der beim Öffnen „auf“ ausgibt und sonst ε.

2Bd · AFB III · 5 BE

Begründen Sie, warum kein endlicher Automat prüfen kann, ob gleich viele Einsen wie Dreien eingegeben wurden.

Hinweise

2Ba · Denkimpuls

Endet auf 132?

2Bb · Denkimpuls

Zustände: nichts Passendes, „1“, „13“, „132“.

2Bc · Denkimpuls

Nur der Übergang in z3 erzeugt eine Ausgabe.

2Bd · Denkimpuls

Unbeschränktes Zählen.

Erwartungshorizont

2Ba · Lösung und 4 BE

Z. B. 132, 1132, 3132, 21132 akzeptiert; 13, 1322 abgelehnt (je richtige Angabe anteilig).

2Bb · Lösung und 11 BE
Zustand123
z0 (Start)z1z0z0
z1z1z0z2
z2z1z3z0
z3 (Ende)z1z0z0

Als Graph mit Start-Pfeil und Doppelkreis z3. Vollständigkeit aller 12 Übergänge wird bewertet.

2Bc · Lösung und 5 BE

Alle Übergänge wie in b) mit Ausgabe ε, außer z2 —2 / auf→ z3.

2Bd · Lösung und 5 BE

Die Differenz der Anzahlen kann beliebig groß werden. Ein endlicher Automat hat nur endlich viele Zustände und kann daher nicht jede Differenz unterscheiden; bei genügend langen Eingaben müsste er zwei verschiedene Differenzen im selben Zustand speichern.

Eigene Auswertung

Vergleiche deinen Ansatz mit dem Erwartungshorizont und trage die erreichten BE ein. Gleichwertige Lösungswege zählen ebenfalls; ein Folgefehler soll nicht dieselbe Leistung mehrfach entwerten. Dies ist eine Selbsteinschätzung ohne automatische Benotung. Die Eingaben werden nur in diesem Browser gespeichert.

Block 1 · Aufgabe 1
Block 2 · Aufgabe 2A
Block 2 · Aufgabe 2B