Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
modul:m323:learningunits:lu01:deklarativimperativ [2026/08/18 08:27] – [Mini-Übungen] adminmodul:m323:learningunits:lu01:deklarativimperativ [2026/08/18 10:12] (aktuell) – Ueberarbeitet: Korrektur Seiteneffekte, Einstiegsanalogie, Unplugged-Aktivitaet, durchgehendes Beispiel, Uebungen; Tags auf neue Kompetenzmatrix admin
Zeile 20: Zeile 20:
 </WRAP> </WRAP>
  
-===== Aktivität: Der menschliche Roboter =====+===== Aktivität: Der menschliche Roboter (ohne Computer, ca. 10 Minuten) =====
  
 Diese Übung macht den Unterschied körperlich erfahrbar. Diese Übung macht den Unterschied körperlich erfahrbar.
Zeile 192: Zeile 192:
   * **Fehleranfälligkeit**: Der detaillierte Charakter der imperativen Programmierung kann fehleranfälliger sein, da mehr Möglichkeiten für menschliche Fehler bestehen.   * **Fehleranfälligkeit**: Der detaillierte Charakter der imperativen Programmierung kann fehleranfälliger sein, da mehr Möglichkeiten für menschliche Fehler bestehen.
  
 +===== Mini-Übungen =====
 +
 +<WRAP center round todo 80%>
 +**Ü1 – Umschreiben.** Formulieren Sie diesen imperativen Code deklarativ um:
 +
 +<code python>
 +zahlen = [3, 8, 1, 9, 4, 7]
 +gross = []
 +for z in zahlen:
 +    if z > 5:
 +        gross.append(z * 10)
 +</code>
 +
 +**Ü2 – Zuordnen.** Imperativ oder deklarativ? ''sum(zahlen)'' · ''liste.sort()'' · ''sorted(liste)'' · ''while i < 10:'' · ''max(noten)''
 +
 +**Ü3 – Übersetzen.** Beschreiben Sie das Rezept „Spiegelei braten" einmal imperativ (Schritt für Schritt) und einmal deklarativ (nur das Ergebnis). Was geht bei der deklarativen Fassung verloren, was gewinnt man?
 +</WRAP>
 +
 +<WRAP center round info 80%>
 +**Lösungshinweise**
 +
 +**Ü1:** ''gross = [z * 10 for z in zahlen if z > 5]''
 +
 +**Ü2:** ''sum'' deklarativ · ''liste.sort()'' imperativ (verändert die Liste, gibt ''None'' zurück) · ''sorted(liste)'' deklarativ (liefert eine neue Liste, Original bleibt unverändert) · ''while'' imperativ · ''max'' deklarativ. Das Paar ''sort()'' / ''sorted()'' ist besonders lehrreich: gleiche Aufgabe, unterschiedliches Paradigma.
 +
 +**Ü3:** Verloren geht die Kontrolle über Details (Pfanne, Hitze, Garzeit). Gewonnen werden Kürze und die Freiheit des Ausführenden, den besten Weg zu wählen.
 +</WRAP>
 +
 +Weiterführende Aufgaben: [[.:aufgaben:imperativerbubblesort|LU01.A01]] und [[.:aufgaben:funktionalerbubblesort|LU01.A03]] lösen dasselbe Sortierproblem in beiden Stilen.
  
 ===== Schlussfolgerung ===== ===== Schlussfolgerung =====
Zeile 198: Zeile 227:
  
 ---- ----
-{{tag>M323-LU01 M323-AG1 M323-BG1}}+{{tag>M323-LU01 M323-A1B M323-B1B}}
 [[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi [[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi
 +
  • modul/m323/learningunits/lu01/deklarativimperativ.1787034424.txt.gz
  • Zuletzt geändert: 2026/08/18 08:27
  • von admin