Volleyball-Spieler suchen

(I) Problemstellung


Der Trainer der Abteilung Volleyball des Sportvereins Mühlberger SC möchte eine Erweiterung seiner
Software.
Nach der Eingabe eines Spielernamens möchte er eine Information angezeigt bekommen, ob der
Spieler im Mannschaftskader ist oder nicht.
Die Namen aller Spieler des Mannschaftskaders sind in dem Array kader erfasst.
        kader = ["Armin", "Batu", "Kai", "Sven", "Paul", "Milan", "Goran", "Chris", "Nico",
                      "Dennis", "Emin", "Luca"]
Der erforderliche Algorithmus soll so optimiert sein, dass die Suche im Array kader beendet wird,
sobald der gesuchte Spieler gefunden wurde.

Verwenden Sie für die Implementierung Ihrer Lösung die Datei L2_3_1_3_vorlage_volleyball_spieler
_suchen.py
, die Ihnen im Ordner Aufgaben/Vorlagen in digitaler Form vorliegt.
Speichern Sie Ihre Lösung in Ihrem Ergebnisordner unter dem Namen
L2_3_1_3_volleyball_spieler_suchen.py.



(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
Spielernamen des Mannschaftskaders Array kader


(4) Gewünschter Ablauf des Programms mit Beispieldaten:




(5) Verarbeitung


(III) Struktogramm


Erstellen Sie hier das Struktogramm





(IV) Programmcode (Python-Code)


Hier können Sie den Code interaktiv testen und ausführen:

BPE 7J22 Punktemittel

Beim ersten Suchtreffer aufhören

Noch nicht begonnen

Aufgabenstellung

Lokale Übung zum gleichen Lernziel. Neu und eigenständig zum Lernziel verfasst; keine Rekonstruktion oder Übernahme einer fremden Vorlage.

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.

suche_kader(kader, kennung) durchläuft die Liste von links und liefert (erster_trefferindex, besuchte_positionen). Beende die Suche unmittelbar beim ersten Treffer; dieser Vergleich zählt mit. Ohne Treffer liefere (-1, len(kader)), für eine leere Liste also (-1, 0). Verändere die Liste nicht.

Eigene Codes: ["R-A", "R-B", "R-A"]. Die Suche nach "R-A" liefert (0, 1), weil der spätere gleiche Eintrag nicht mehr geprüft wird. Gezählt werden nur besuchte Listenelemente, keine Schleifenbedingungen.

Fachliche Selbstkontrolle: Linear von links suchen und im Trefferfall direkt zurückkehren. Der verlangte Zählwert beschreibt das Suchverhalten; die Tests ersetzen keine Erklärung des Verfahrens. Die automatischen Tests prüfen das Ergebnis beziehungsweise das vereinbarte Protokoll, nicht die Algorithmuswahl im Quelltext. Erkläre deine Schleifen zusätzlich anhand eines kleinen Beispiels.

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. Beim Index i wurden bereits i + 1 Positionen besucht, weil die Indizes bei 0 beginnen.
  2. Ein return direkt im Trefferfall beendet die Funktion. Die Nichtfund-Rückgabe steht erst nach der Schleife.
Lösung anzeigen
def suche_kader(kader, kennung):
    for i in range(len(kader)):
        if kader[i] == kennung:
            return (i, i + 1)
    return (-1, len(kader))

Quelle und Rechte

Quelle: Eigenständig erstellte lokale Ersatzaufgabe

Rechtehinweis: Die ursprüngliche Lernseite bleibt erhalten; Programmvorlage und Tests dieser Übung wurden für informatik-abi.de neu erstellt.


Hinweise:
- Schreiben Sie Ihre Antworten direkt in die Textfelder und speichern Sie sie.
- Sie können den interaktiven Python-Editor verwenden, um den Code zu testen und Ihre Ergebnisse zu überprüfen.

➜ Hier gehts zur Lösung!