Dies ist eine alte Version des Dokuments!
LU01.A08 - Paradigmen-Detektiv
Ordnen Sie zehn Code-Ausschnitte dem imperativen oder dem deklarativen Stil zu und begründen Sie Ihre Entscheidung anhand konkreter Merkmale im Code.
Ausgangslage
Im Berufsalltag erben Sie ständig fremden Code. Bevor Sie ihn ändern, müssen Sie erkennen, wie er gebaut ist. Auf der Theorieseite LU01a finden Sie dazu den Spickzettel mit den Erkennungsmerkmalen.
Ein guter Test: Liest sich der Code wie eine Beschreibung des Ergebnisses – oder wie eine Anleitung?
Anforderungen
- Ordnen Sie jeden der zehn Ausschnitte einer der beiden Spalten zu: imperativ oder deklarativ.
- Nennen Sie pro Ausschnitt mindestens ein konkretes Merkmal im Code, das Ihre Zuordnung stützt (z.B. „Schleife mit Zählvariable„, „verändert die bestehende Liste“, „erzeugt einen neuen Wert„).
- Halten Sie zusätzlich fest, ob der Ausschnitt bestehende Daten verändert oder einen neuen Wert erzeugt.
Die Ausschnitte
Ausschnitt 1
summe = 0 for zahl in range(1, 101): summe += zahl
Ausschnitt 2
summe = sum(range(1, 101))
Ausschnitt 3
namen = ["Bea", "Ali", "Cem"] namen.sort()
Ausschnitt 4
namen_sortiert = sorted(namen)
Ausschnitt 5
Ausschnitt 6
gefiltert = [] for wort in woerter: if len(wort) > 5: gefiltert.append(wort)
Ausschnitt 7
gefiltert = [wort for wort in woerter if len(wort) > 5]
Ausschnitt 8
UPDATE kunden SET STATUS = 'aktiv' WHERE letzter_login > '2024-01-01';
Ausschnitt 9
zaehler = 0 def zaehle_hoch(): global zaehler zaehler += 1
Ausschnitt 10
temperaturen_f = list(map(lambda c: c * 9 / 5 + 32, temperaturen_c))
Abgabetabelle
Verwenden Sie die folgende Struktur:
| Nr. | Stil (imperativ / deklarativ) | Merkmal im Code | Verändert bestehende Daten? |
|---|---|---|---|
| 1 | |||
| 2 |
Zusatzfragen
- Welcher Ausschnitt ist zwar deklarativ, verändert aber trotzdem Zustand? Was folgt daraus für den Satz „deklarativ heisst seiteneffektfrei“?
- Ausschnitt 3 und 4 lösen dieselbe Aufgabe. Welcher der beiden ist gefährlicher, wenn die Liste
namenan einer anderen Stelle im Programm ebenfalls verwendet wird? Warum? - Ausschnitt 5 ist deklarativ, hat aber gar keine Funktionen. Was sagt das über das Verhältnis von deklarativ und funktional aus?
Hinweis
Sie müssen für diese Aufgabe keinen Code schreiben oder ausführen. Es geht um das Lesen und Einordnen. Wenn Sie unsicher sind, lesen Sie den Ausschnitt laut vor und hören Sie, ob er wie eine Anleitung oder wie eine Beschreibung klingt.
