MINT üben

Programmierparadigmen

Zwei Textaufgaben mit Hinweisen und Erwartungshorizont zu imperativem, deklarativem, funktionalem und objektorientiertem Programmieren.

Dein Fortschritt:
0 / 0 Aufgaben
1

Dicke Bücher in der Schulbibliothek

AFB I–II

Die Bibliotheks-AG möchte alle Titel mit mehr als 300 Seiten finden, um sie in ein eigenes Regal zu stellen. In der Liste buecher stehen (in dieser Reihenfolge): „Momo“ (304 Seiten), „Tschick“ (256 Seiten), „Die Welle“ (192 Seiten) und „Krabat“ (368 Seiten). Drei Mitglieder lösen die Aufgabe auf verschiedene Weise:

Listing A · Python
dicke = []
for buch in buecher:
    if buch["seiten"] > 300:
        dicke.append(buch["titel"])
Listing B · SQL
SELECT titel
FROM buecher
WHERE seiten > 300;
Listing C · Python
def ist_dick(buch):
    return buch["seiten"] > 300

def titel_von(buch):
    return buch["titel"]

dicke = list(map(titel_von, filter(ist_dick, buecher)))
  1. Ordne jedem Listing ein Programmierparadigma zu.
  2. Beschreibe den Ablauf von Listing A für die vier Bücher. Gib dabei an, welchen Inhalt dicke nach jedem Schleifendurchlauf hat.
  3. Begründe, warum Listing B als deklarativ gilt, obwohl es dasselbe Ergebnis liefert wie Listing A.

Hinweise

Hinweis zu Aufgabe a)
Achte darauf, ob Variablen Schritt für Schritt verändert werden, ob nur das Ergebnis beschrieben wird oder ob Funktionen kombiniert werden.
Hinweis zu Aufgabe b)
Gehe die Bücher in der gegebenen Reihenfolge durch und prüfe jeweils die Bedingung.
Hinweis zu Aufgabe c)
Was steht in Listing A, das in Listing B fehlt?