Die Situation
Ihre Eltern haben Ihnen erlaubt, eine kleine Party zuhause zu organisieren. Allerdings haben sie klare Regeln aufgestellt:
«Ach ja: Du sollst für jede eingeladene Person deren Namen aufschreiben und ob sie vegetarisches Essen braucht – wir wollen ja richtig einkaufen können!.
Du darfst maximal 12 Leute einladen. Pro Person rechnest du mit 5 Franken für Snacks und Getränke. Wenn du mehr als 8 Leute einlädst, musst du zusätzlich noch 20 Franken für extra Aufräumhilfe einplanen. Ausserdem wollen wir vorher wissen, wie viel das Ganze kostet.
Falls das Budget über 70 Franken liegt, müssen wir nochmal darüber reden. Falls es unter 30 Franken liegt, fragst du dich vielleicht, ob sich der Aufwand überhaupt lohnt.«
Dein Auftrag
Entwicklen Sie ein Programm, das bei der Planung dieser Party hilft.
Das Programm soll:
- Fragen, wie viele Personen du einladen möchtest
- Prüfen, ob die Anzahl erlaubt ist (zwischen 1 und 12 Personen)
- Falls erlaubt: Für jede Person den Namen erfragen und ob sie Vegetarier:in ist
- Die Gesamtkosten berechnen (inkl. Aufräum-Zuschlag falls nötig)
- Die Anzahl Vegetarier:innen ausgeben
- Eine passende Rückmeldung zum Budget geben:
- Unter 30 Fr.: «Lohnt sich das überhaupt?»
- 30-70 Fr.: «Alles klar, viel Spass!»
- Über 70 Fr.: «Das müssen wir nochmal besprechen…»
- Falls die Anzahl nicht erlaubt ist: Eine Fehlermeldung ausgeben
Problemanalyse
Zuerst analysieren wir die Aufgabenstellung:
Durchführung
Lesen Sie die Situation nochmals durch und markieren Sie – in Anlehnung an das EVA Prinzip:
- Alle Eingaben (was muss die Benutzerin oder der Benutzer eingeben?) (z.B. mit 🟢)
- Die Verarbeitung:
- Alle Berechnungen (was muss berechnet werden?) (z.B. mit 🔵)
- Alle Entscheidungen (wo gibt es ein «falls/wenn»?) (z.B. mit 🟡)
- Alle Ausgaben (was soll am Ende angezeigt werden?) (z.B. mit 🔴)
Überprüfung
- Anwendung des EVA Prinzips auf eine konkrete Aufgabenstellung
- Was wäre ein möglicher Durchlauf des Programms?
Beispiel-Durchlauf:
Wie viele Personen möchtest du einladen? 3
Person 1 - Name: Lena
Ist Lena Vegetarier:in? (ja/nein): nein
Person 2 - Name: Tim
Ist Tim Vegetarier:in? (ja/nein): ja
Person 3 - Name: Sara
Ist Sara Vegetarier:in? (ja/nein): ja
--- Zusammenfassung ---
Anzahl Gäste: 3
Davon Vegetarier:innen: 2
Gesamtkosten: 15.0 Franken
Lohnt sich das überhaupt?
Struktogramm
Erstellen Sie ein Struktogramm von Hand oder mit unserem Tool:
Durchführung
Erstellen Sie ein Struktogramm für einen effizienten Algorithmus, der den Auftrag erfüllt.
Überprüfung
- Erstellung eines Struktogramms für eine konkrete Aufgabenstellung
Musterlösung (eine von vielen!):

Implementierung
Schreiben Sie ein Python Programm auf Papier oder besser in Thonny.
Durchführung
Erstellen Sie ein Python Programm, das den obigen effizienten Algorithmus umsetzt.
Überprüfung
- Python Programmierung mit input, print, for, if und der Umwandlung von Variablentypen
Eine mögliche Musterlösung:
# Eingabe der Anzahl Gäste
anzahl = int(input("Wie viele Personen möchtest du einladen? "))
# Prüfung ob Anzahl gültig
if anzahl >= 1 and anzahl <= 12:
# Zähler für Vegetarier:innen
vegetarier_count = 0
# Schleife für jede Person
for i in range(anzahl):
print()
name = input("Person " + str(i + 1) + " - Name: ")
ist_vegi = input("Ist " + name + " Vegetarier:in? (ja/nein): ")
# Vegetarier:innen zählen
if ist_vegi == "ja":
vegetarier_count = vegetarier_count + 1
# Kosten berechnen
kosten = anzahl * 5.0
# Aufräum-Zuschlag prüfen
if anzahl > 8:
kosten = kosten + 20.0
# Zusammenfassung ausgeben
print()
print("--- Zusammenfassung ---")
print("Anzahl Gäste: " + str(anzahl))
print("Davon Vegetarier:innen: " + str(vegetarier_count))
print("Gesamtkosten: " + str(kosten) + " Franken")
print()
# Budget-Rückmeldung
if kosten < 30:
print("Lohnt sich das überhaupt?")
elif kosten > 70:
print("Das müssen wir nochmal besprechen...")
else:
print("Alles klar, viel Spass!")
else:
print("Ungültige Anzahl! Du darfst zwischen 1 und 12 Personen einladen.")
Abgedeckte Konzepte
| Konzept | Wo in der Aufgabe |
|---|---|
| Sequenz | Grundstruktur des Programms |
| Wiederholung (for) | Eingabe der Gästedaten |
| Bedingung (if/elif/else) | Gültigkeitsprüfung, Zuschlag, Budget-Feedback |
| Verschachtelung | if innerhalb von for (Vegetarier-Check) |
| input() | Anzahl, Name, Vegetarier-Status |
| print() | Alle Ausgaben |
| int() | Umwandlung der Anzahl |
| float | Kosten (implizit durch 5.0) |
| str() | Ausgabe von Zahlen in Strings |
| Variablentypen | int (anzahl, count), float (kosten), str (name, ist_vegi) |
Typische Stolpersteine
- Vergessen von
int()bei der Anzahl-Eingabe - Falsche Schleifenvariable:
range(anzahl)vs.range(1, anzahl+1) - String-Vergleich:
ist_vegi == "ja"(exakte Schreibweise!) - Initialisierung vergessen:
vegetarier_count = 0vor der Schleife