Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m323:learningunits:lu01:aufgaben:spaghetticode [2026/08/18 11:00] – Als Classroom-50-Aufgabe umgestellt, Repo verlinkt 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 |
| - | Im Repository steht sie in '' | + | Diese Datei ist der Massstab: Ihre Fassung muss für jede Eingabe exakt dasselbe liefern. **Verändern |
| - | <code python> | + | ~~NOCACHE~~ |
| - | def umsatz_alt(bestellungen): | + | === referenz.py |
| - | i = 0 | + | {{gh> |
| - | fertig | + | |
| - | total = 0 | + | |
| - | while not fertig: | + | |
| - | if i >= len(bestellungen): | + | |
| - | fertig | + | |
| - | 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 | + | |
| - | </code> | + | |
| - | ==== Testdaten | + | ===== Code-Vorlage ===== |
| - | <code python> | + | Die Namen und Signaturen in '' |
| - | BESTELLUNGEN = [ | + | |
| - | {'artikel': ' | + | === main.py === |
| - | {'artikel': ' | + | {{gh> |
| - | | + | |
| - | | + | |
| - | {' | + | |
| - | ] | + | |
| - | </ | + | |
| ===== Anforderungen ===== | ===== Anforderungen ===== | ||
| - | - **Analysieren: | + | Implementieren Sie in '' |
| - | - **Umbauen: | + | |
| - | * Die Schleife läuft direkt über die Elemente ('' | + | |
| - | * Kein '' | + | |
| - | * Höchstens **eine** Verschachtelungsebene innerhalb der Schleife. | + | |
| - | * Die Bedingung, ob eine Bestellung überhaupt zählt, steckt in '' | + | |
| - | - **Begründen: | + | |
| - | ==== Vorgegebene Funktionen ==== | + | * Die Schleife läuft direkt über die Elemente ('' |
| + | * Kein '' | ||
| + | * Höchstens **eine** Verschachtelungsebene innerhalb der Schleife. | ||
| + | * Die Bedingung, ob eine Bestellung überhaupt zählt, steckt in '' | ||
| ^ Funktion ^ Rückgabe ^ | ^ Funktion ^ Rückgabe ^ | ||
| Zeile 68: | Zeile 41: | ||
| </ | </ | ||
| - | ===== 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%> | ||
| Zeile 79: | Zeile 56: | ||
| Das Verhalten der Funktion darf sich nicht ändern – auch nicht in Randfällen. Geprüft werden: leere Liste, alle Bestellungen storniert, Menge 0, Menge negativ. Zwei weitere Tests lesen '' | Das Verhalten der Funktion darf sich nicht ändern – auch nicht in Randfällen. Geprüft werden: leere Liste, alle Bestellungen storniert, Menge 0, Menge negativ. Zwei weitere Tests lesen '' | ||
| </ | </ | ||
| + | |||
| + | ===== 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 ===== | ===== Bewertung ===== | ||
| Zeile 85: | Zeile 72: | ||
| | Unittests | 11 | | | Unittests | 11 | | ||
| | Linting | 5 | | | Linting | 5 | | ||
| - | | **Total** | **16** | | + | | Schriftlicher Teil (von Hand bewertet) | 6 | |
| + | | **Total** | **22** | | ||
| ===== Abgabe ===== | ===== Abgabe ===== | ||
| - | Der Code wird über das Classroom-Repository | + | Alles zusammen als Push in das persönliche GitHub-Repository: der Code in '' |
| ---- | ---- | ||
| - | <nodisp>Github | + | <details> |
| + | < | ||
| + | GitHub Repository | ||
| + | |||
| + | //Lernende am BZZ müssen den Link zum Classroom-Assignment verwenden// | ||
| + | |||
| + | </details> | ||
| [[https:// | [[https:// | ||