Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m323:learningunits:lu01:aufgaben:spaghetticode [2026/08/18 10:10] – Neue Aufgabe LU01.A11 - Spaghetticode entwirren admin | modul:m323:learningunits:lu01:aufgaben:spaghetticode [2026/08/18 11:20] (aktuell) – Schriftlicher Teil wird neu im README.md abgegeben admin | ||
|---|---|---|---|
| Zeile 7: | Zeile 7: | ||
| ===== Ausgangslage ===== | ===== Ausgangslage ===== | ||
| - | Die folgende | + | Die Funktion |
| - | <code python> | + | Diese Datei ist der Massstab: Ihre Fassung muss für jede Eingabe exakt dasselbe liefern. **Verändern dürfen Sie sie nicht.** |
| - | def umsatz(bestellungen): | + | |
| - | i = 0 | + | |
| - | fertig = False | + | |
| - | total = 0 | + | |
| - | while not fertig: | + | |
| - | if i >= len(bestellungen): | + | |
| - | fertig = True | + | |
| - | else: | + | |
| - | b = bestellungen[i] | + | |
| - | if b[" | + | |
| - | i = i + 1 | + | |
| - | continue | + | |
| - | else: | + | |
| - | if b[" | + | |
| - | i = i + 1 | + | |
| - | continue | + | |
| - | else: | + | |
| - | total = total + b[" | + | |
| - | i = i + 1 | + | |
| - | return total | + | |
| - | </ | + | |
| - | ==== Testdaten ==== | + | ~~NOCACHE~~ |
| + | === referenz.py | ||
| + | {{gh> | ||
| - | <code python> | + | ===== Code-Vorlage ===== |
| - | bestellungen | + | |
| - | | + | Die Namen und Signaturen in '' |
| - | | + | |
| - | {" | + | === main.py === |
| - | | + | {{gh> |
| - | {" | + | |
| - | ] | + | |
| - | </code> | + | |
| ===== Anforderungen ===== | ===== Anforderungen ===== | ||
| - | - **Analysieren: | + | Implementieren |
| - | - **Umbauen: | + | |
| - | * Die Schleife läuft direkt über die Elemente ('' | + | |
| - | * Kein '' | + | * Kein '' |
| - | * Höchstens **eine** Verschachtelungsebene innerhalb der Schleife. | + | * Höchstens **eine** Verschachtelungsebene innerhalb der Schleife. |
| - | * Die Bedingung, ob eine Bestellung überhaupt zählt, steckt in einer eigenen, sprechend benannten Funktion, die '' | + | * Die Bedingung, ob eine Bestellung überhaupt zählt, steckt in '' |
| - | - **Beweisen: | + | |
| - | - **Begründen:** Halten Sie in zwei bis drei Sätzen fest, welche Fehlerquellen im Ausgangscode durch den Umbau verschwunden sind. | + | ^ Funktion ^ Rückgabe ^ |
| + | | '' | ||
| + | | '' | ||
| ==== Beispieloutput ==== | ==== Beispieloutput ==== | ||
| < | < | ||
| - | Umsatz alt: 362.70 | ||
| Umsatz neu: 362.70 | Umsatz neu: 362.70 | ||
| - | Beide Fassungen liefern dasselbe Ergebnis. | ||
| </ | </ | ||
| - | ===== Zusatzfragen | + | ===== Schriftlicher Teil ===== |
| - | | + | Diese fünf Punkte beantworten Sie **direkt im '' |
| - | - Das Theorem von Böhm und Jacopini besagt, dass jeder Algorithmus mit den drei Grundstrukturen auskommt. Wie stützt Ihr Umbau diese Aussage? | + | |
| - | - **Für Schnelle:** Formulieren Sie die Anforderung an '' | + | |
| + | - **Was der Umbau beseitigt: | ||
| + | - **Vergessenes Hochzählen: | ||
| + | - **Böhm und Jacopini:** Das Theorem | ||
| + | - **Deklarativ formuliert (für Schnelle):** Formulieren Sie die Anforderung an '' | ||
| <WRAP center round important 80%> | <WRAP center round important 80%> | ||
| **Wichtig** | **Wichtig** | ||
| - | Das Verhalten der Funktion darf sich nicht ändern – auch nicht in Randfällen. | + | Das Verhalten der Funktion darf sich nicht ändern – auch nicht in Randfällen. |
| </ | </ | ||
| + | |||
| + | ===== Vorgehen ===== | ||
| + | |||
| + | - Akzeptiere das Classroom-Assignment | ||
| + | - Klone dein persönliches Repository in die Entwicklungsumgebung | ||
| + | - Analysiere '' | ||
| + | - Implementiere '' | ||
| + | - Beantworte die fünf Punkte im '' | ||
| + | - Lokal prüfen mit '' | ||
| + | - Pushen – Code und Antworten liegen damit im selben Commit | ||
| + | |||
| + | ===== Bewertung ===== | ||
| + | |||
| + | ^ Teil ^ Punkte ^ | ||
| + | | Unittests | 11 | | ||
| + | | Linting | 5 | | ||
| + | | Schriftlicher Teil (von Hand bewertet) | 6 | | ||
| + | | **Total** | **22** | | ||
| ===== Abgabe ===== | ===== Abgabe ===== | ||
| - | Geben Sie die Python-Datei mit beiden Fassungen und den Tests sowie Ihre schriftliche Begründung | + | Alles zusammen als Push in das persönliche GitHub-Repository: der Code in '' |
| ---- | ---- | ||
| + | < | ||
| + | < | ||
| + | GitHub Repository https:// | ||
| + | |||
| + | //Lernende am BZZ müssen den Link zum Classroom-Assignment verwenden// | ||
| + | |||
| + | </ | ||
| [[https:// | [[https:// | ||