1a · AFB I · 6 BE
Nennen Sie die Attribute der Klasse Bestellung mit Datentyp und erläutern Sie die Bedeutung von c, + und -.
INFORMATIK · GRUNDKURS · KAPITEL 9
Ein vollständiges Probeabitur für den Grundkurs: eine Aufgabe aus Block 1, zwei aus Block 2.
Neu verfasste Übung für den Grundkurs — 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.
Der Timer ist freiwillig. Deine Lösungen entstehen auf Papier; die Zeitmessung läuft nur auf dieser geöffneten Seite.
Bereit.
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.
Nennen Sie die Attribute der Klasse Bestellung mit Datentyp und erläutern Sie die Bedeutung von c, + und -.
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.
summeOffen(b: DynArray vom Inhaltstyp Bestellung): Ganzzahl
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.
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.
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.
Vier Attribute; drei Zeichen.
Spalten i, Bedingung, s.
Durchlauf mit Index, Vergleich über getNr(), delete(i), frühe Rückgabe.
FIFO; Inhalt von vorn nach hinten notieren.
Für jedes Gericht zählen, wie oft es vorkommt; das Maximum merken.
nr: Ganzzahl, gericht: Zeichenkette, preis: Ganzzahl, abgeholt: Wahrheitswert (je 1 BE, zusammen 4). c = Konstruktor, + öffentlich, − privat (2 BE).
| i | NICHT abgeholt | s |
|---|---|---|
| 0 | ||
| 0 | wahr | 350 |
| 1 | falsch | |
| 2 | wahr | 640 |
Rückgabe 640. Aufbau der Tabelle 3 BE, Werte 5 BE, Zweck „Summe der noch nicht abgeholten Bestellungen“ 2 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 FalseSchleife 3 BE, Vergleich 2 BE, Abholprüfung 2 BE, Löschen 2 BE, Rückgaben 2 BE, Syntax 1 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).
beliebtestes(): Zeichenkette
Ä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.
Eine Schülerfirma verkauft Pausensnacks. Schema:
Produkt(PNr, Name, Preis)Verkauf(VNr, Datum, ↑PNr, Menge, ↑Kuerzel)Mitarbeiter(Kuerzel, Name, Klasse)
Erläutern Sie die Rolle der Fremdschlüssel in der Tabelle Verkauf.
Geben Sie eine SQL-Abfrage an, die Namen und Menge aller Verkäufe vom 12.03. mit dem Produktnamen ausgibt.
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.
Beurteilen Sie den Vorschlag, eine Rangliste der verkaufsstärksten Mitarbeiter im Schulhaus auszuhängen.
Worauf verweisen PNr und Kuerzel?
Verbund über PNr, Bedingung Datum.
SUM(p.Preis * v.Menge), GROUP BY, HAVING, ORDER BY.
Datenschutz, Zweck, Einwilligung, Motivation.
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).
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.
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
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).
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.
Nennen Sie vier Wörter über Σ, die akzeptiert werden sollen, und zwei, die abgelehnt werden sollen.
Zeichnen Sie einen vollständigen Zustandsgraphen des DEA.
Erweitern Sie den Automaten zu einem Mealy-Automaten, der beim Öffnen „auf“ ausgibt und sonst ε.
Begründen Sie, warum kein endlicher Automat prüfen kann, ob gleich viele Einsen wie Dreien eingegeben wurden.
Endet auf 132?
Zustände: nichts Passendes, „1“, „13“, „132“.
Nur der Übergang in z3 erzeugt eine Ausgabe.
Unbeschränktes Zählen.
Z. B. 132, 1132, 3132, 21132 akzeptiert; 13, 1322 abgelehnt (je richtige Angabe anteilig).
| Zustand | 1 | 2 | 3 |
|---|---|---|---|
| z0 (Start) | z1 | z0 | z0 |
| z1 | z1 | z0 | z2 |
| z2 | z1 | z3 | z0 |
| z3 (Ende) | z1 | z0 | z0 |
Als Graph mit Start-Pfeil und Doppelkreis z3. Vollständigkeit aller 12 Übergänge wird bewertet.
Alle Übergänge wie in b) mit Ausgabe ε, außer z2 —2 / auf→ z3.
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.
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.