Neues bildunabhängiges Textbeispiel. Dieser Text wurde eigenständig für informatik-abi.de erstellt und ersetzt die fehlende Abbildung. Er rekonstruiert weder deren unbekannten Inhalt noch eine fremde Programmvorlage.
Für die Bearbeitung maßgeblich: Verwende die vollständigen Daten dieser Ergänzung und den lokalen Editor unter (IV). Die nachfolgende ältere Problemstellung bleibt als historischer Lernkontext erhalten; ihre unvollständigen Daten und abweichenden Ergebnisse gelten nicht für die neue Variante.
Vollständige eigene, rein synthetische Jahresliste: [2004, 2002, 2004, 2005]. Die Häufigkeiten vom kleinsten bis zum größten vorkommenden Jahr sind:
- 2002: 1 Mitglied.
- 2003: 0 Mitglieder.
- 2004: 2 Mitglieder.
- 2005: 1 Mitglied.
Die lokale Funktion jahrgangstabelle(jahre) liefert diese Paare als Liste von Tupeln zurück. Anders als die historische Annahme "in jedem Jahr ein Mitglied" enthält diese eigene Variante Lücken ausdrücklich mit 0. Eine leere Liste ergibt eine leere Ergebnisliste. Die ältere Tabelle für 2000 bis 2010 beschreibt andere, nicht vollständig verfügbare Daten und ist kein Soll-Ergebnis dieses Beispiels.
L2_4.3 Suchen: Anzahl der Mitglieder je Jahrgang |
Abbildung durch die Textfassung am Seitenanfang ersetzt. |
(I) Problemstellung
Die Jugendabteilung des Sportvereines Mühlberger SC möchte ihre Mitgliederdaten auswerten. Mit Ausführung des Programms soll ermittelt werden, wie viele Mitglieder des Vereins in den Jahren 2000 und folgende jeweils geboren wurden.
Die Geburtsjahre der Mitglieder, die in den Jahren 2000 und später geboren wurden, sind bereits im Array jahrgang erfasst. Es wird unterstellt, dass in jedem Jahr ein Mitglied geboren wurde.
Verwenden Sie für die Implementierung Ihrer Lösung den Python Editor unten auf der Seite.
(II) Problemanalyse
(1) Welche Ausgabedaten will man erhalten?
(2) Welche Eingabedaten werden zur Bearbeitung benötigt?
(3) Welche Eigenschaften haben die Eingabe-, Verarbeitungs- und Ausgabedaten? (Variablenliste)
| Bedeutung | Typ/Struktur | Variable/Größe |
|---|---|---|
| Geburtsjahre der Mitglieder | Array | jahrgang |
(4) Gewünschter Ablauf des Programms
| Ausgabe |
Jahrgang 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 |
Anzahl Mitglieder 5 9 9 12 10 9 10 7 4 3 1 |
(5) Verarbeitung
(III) Struktogramm
Erstelle ein Struktogramm mit Strukto.io
(IV) Programmcode (Python-Code)
Eine vollständige Jahrgangstabelle bilden
Noch nicht begonnen
Aufgabenstellung
Lokale Übung zum gleichen Lernziel. Neu und eigenständig zum Lernziel verfasst; keine Rekonstruktion oder Übernahme einer fremden Vorlage. Neue vollständige synthetische Jahresliste mit expliziter Nullhäufigkeit für Lücken.
Eigenständige lokale Übungsvariante. Der frühere Fremdcode liegt nicht vor. Diese Aufgabe verwendet eigene, vollständig beschriebene Daten und den folgenden Codevertrag; Angaben im älteren Material sind nicht automatisch Testdaten dieses Editors.
jahrgangstabelle(jahre) liefert eine Liste von Tupeln (jahr, anzahl), aufsteigend vom kleinsten bis zum größten vorkommenden Jahr. Alle Eingabewerte sind ganze Jahre zwischen 2000 und 2010. In dieser eigenen Variante werden Lücken ausdrücklich mit Anzahl 0 ausgegeben. Für [] liefere []. Das Original bleibt unverändert.
Neue vollständige Daten: [2004, 2002, 2004, 2005]. Ergebnis: [(2002, 1), (2003, 0), (2004, 2), (2005, 1)]. Die vollständige Liste ersetzt unzugängliche frühere Beispieldaten; die Lückenregel ist hier bewusst explizit.
Ausgabe bzw. Vorschau
2 Tipps anzeigen
- Behandle die leere Liste zuerst: min und max wären dafür nicht definiert.
- Die äußere Schleife läuft bis einschließlich des größten Jahres. Setze den Häufigkeitszähler für jedes Jahr wieder auf 0.
Lösung anzeigen
def jahrgangstabelle(jahre):
if not jahre:
return []
ergebnis = []
for jahr in range(min(jahre), max(jahre) + 1):
anzahl = 0
for wert in jahre:
if wert == jahr:
anzahl += 1
ergebnis.append((jahr, anzahl))
return ergebnis