i

Listen und Listenbefehle: Gruppen von Objekten erzeugen

In Listen lassen sich mehrere Objekte (Zahlen, Punkte, …) gleichzeitig in Gruppen speichern.

  • Leere Liste anlegen: liste = {}
  • Liste mit Zahlen anlegen:
    • liste = {6, 2, 8, 3}
    • liste = {-2, -1, 0, 1, 2, 3, 4}
    • liste = -2..4 (äquivalent zur Definition davor)
    • liste = a..b (Liste in flexiblem Bereich)
  • Liste mit Punkten anlegen:
    • liste = {A, B, C} (für schon definierte Punkte A, B und C)
    • liste = {(0, 0), (-2, 3), (5, 4)}
  • Liste mit hinten angehängtem Wert:
    • liste = {1, 2, 3}
    • ergaenzteListe = Anfügen(liste, 42)
    • Wert von ergaenzteListe: {1, 2, 3, 42}

Listen mit dem Zip-Befehl weiterverarbeiten

Mit dem Zip-Befehl werden alle Elemente einer Liste auf neue Objekte in einer neuen Liste abgebildet.

Struktur

Zip(AUSDRUCK, VARIABLENNAME, LISTE)

Aus der eingegebenen Liste (drittes Argument) wird sukzessive ein Element herausgegriffen und im angegebenen Variablennamen (zweites Argument) gespeichert. Abhängig von dieser Variable wird jeweils ein neues Objekt (eine Zahl, ein Punkt, etc.) gebildet. Alle diese Objekte werden in einer neuen Liste gespeichert.

Beispiel 1: Quadratzahlen

Ausgangsliste: zahlen = {-6, -4, -2, 0, 2, 4, 6} (Zahlen von -6 bis 6 in Zweierschritten)

Neue Listen:

  • Liste der Quadrate der Zahlen: quadratzahlen = Zip(z^2, z, zahlen)
    • Quadrat z^2
    • …für jede Zahl z
    • …in der Liste zahlen.
    Ergebnis: quadratzahlen = {36, 16, 4, 0, 4, 16, 36}
  • Liste von entsprechenden Punkten auf der Normalparabel: parabelpunkte = Zip((z, z^2), z, zahlen)
    • Punkt (z, z^2)
    • …für jede Zahl z
    • …in der Liste zahlen.
    Ergebnis: parabelpunkte = {(-6, 36), (-4, 16), (-2, 4), (0, 0), (2, 4), (4, 16), (6, 36)}

Beispiel 2: Liste von Punkten verarbeiten

Ausgangsliste: punkte = {(-0.5, 1), (0, 2), (0.5, 3)}

  • $x$-Koordinaten aller Punkte: xKoordinaten = Zip(x(P), P, punkte)
    • $x$-Koordinate x(P)
    • …für jeden Punkt P
    • …in der Liste punkte.
    Ergebnis: xKoordinaten = {-0.5, 0, 0.5}
  • Dreiecke mit zwei weiteren Punkten: dreiecke = Zip(Vieleck((-1, 0), P, (1, 0)), P, punkte)
    • Dreieck mit weiteren Eckpunkten $A(-1 | 0)$ und $B(1 | 0)$: Vieleck((-1, 0), P, (1, 0))
    • …für jeden Punkt P
    • …in der Liste punkte.
    Ergebnis: Liste von Dreieck-Objekten

Beispiel-Applet

Mit dem folgenden Applet kann der Satz des Thales und seine Umkehrung erkundet werden:

Applet nachbauen

Es fehlen noch die Skripte zum Speichern und Löschen der markierten Punkte an den Schaltflächen. Außerdem fehlen die von den Punkten abhängigen Dreiecke und Winkel.

  • Die Schaltflächen im Applet verwalten eine Liste von markierten Punkten, die per SetzeWert-Befehl ergänzt oder geleert wird.
    Tipp

    • Leere Liste für markierte Punkte anlegen: punktspeicher = {}
    • Skript bei Punkt markieren: SetzeWert(punktspeicher, Anfügen(…, …))
    • Skript bei Markierungen löschen: SetzeWert(punktspeicher, …)
  • Die Winkel und Dreiecke gehen jeweils per Zip-Befehl aus der Liste der gespeichterten Punkte hervor. Sie werden per Anzeigebedingung mit Kontrollkästchen ein- und ausgeblendet.
    Tipp

    • winkelmarkierungen = Zip(Winkel(…, …, …), …, …)
    • dreiecke = Zip(Vieleck(…, …, …), …, …)
    • Anzeige der beiden Listen an die Kontrollkästchen-Variablen zeigeWinkelmarkierungen und zeigeDreiecke koppeln
  • Im Zweifelsfall oben in den Eigenschaften der Schaltflächen und anderen Objekte nachsehen, wie das Applet funktioniert.

Mögliche Erweiterungen

  • Winkel hervorheben, wenn er nahe 90° ist
  • Punkte nur setzen lassen, wenn der Winkel nahe 90° ist
  • Infotext, wenn falscher Winkel markiert werden soll

Mehrere Listen gleichzeitig durchlaufen

Die bisher beschriebene Struktur von Zip-Befehlen ist eigentlich nur ein Spezialfall. Im Allgemeinen kann auch auf mehrere Listen gleichzeitig wie mit einem Reißverschluss (engl. Zip) zugegriffen werden: Zuerst wird aus den jeweils ersten Elementen ein Objekt gebildet, dann aus den zweiten, dann aus den dritten und so weiter.

Ausgangslisten:

  • xWerte = {-6, -4, -2, 0, 2, 4, 6}
  • yWerte = Zip(z^2, z, xWerte)
  • Punkte aus $x$- und $y$-Koordinaten: punkte = Zip((x, y), x, xWerte, y, yWerte)
    • Punkt (x, y)
    • …für jeden $x$-Wert x
    • …in der Liste xWerte
    • …und entsprechenden $y$-Wert y
    • …in der Liste yWerte.
    Ergebnis: punkte = {(-6, 36), (-4, 16), (-2, 4), (0, 0), (2, 4), (4, 16), (6, 36)}

Andere Projekte

  • Listen nutzen, um Ergebnisse in Würfelspielen zu verwalten

Suche

v
109.1.7
o-mathe.de/geogebra/applets-erstellen/listen
o-mathe.de/109.1.7

Rückmeldung geben