Listen und Lineare Algebra - Cinderella Dokumentation
Description: The user's guide to the Interactive Geometry Software Cinderella

Zum Inhalt

# Listen und Lineare Algebra

## Listen in CindyScript verwenden

Listen gehören zu den grundlegendsten und elementarsten Konzepten von CindyScript. In CindyScript dienen Listen mehreren Zwecken. Sie dienen als

- aufzählbare Felder von Objekten
- strukturierte Datenanordnungen
- Vektoren
- Matrizen

Dieser Abschnitt behandelt die sehr allgemeinen Aspekte der Listenerstellung und des Zugriffs auf ihre Elemente sowie alle elementaren Aspekte der Array-Funktionalität. Weitere Informationen zu allen anderen Aspekten von Listen finden Sie in den folgenden Abschnitten:

- Elementare Listenoperationen
- Erweiterte Listenoperationen
- Listen geometrischer Elemente
- Vektoren und Matrizen

### Listen erstellen

Listen können sehr einfach erstellt werden, indem die Elemente in eckige Klammern gesetzt und durch Kommas getrennt werden. Beispielsweise:

`[45,12.5,123,2,5.5,5]`

ist eine Liste von Zahlen.

`["this", "is", "a", "list", "of", "strings"]`

ist eine Liste von Zeichenketten. Objekte verschiedener Art können in einer Liste gemischt werden:

`["this", 3,"is",5 , "a",654, "mixed",234 , "list"]`

Listen können auch Listen als Elemente haben, und diese können beliebig verschachtelt werden.

`[[4,6], ["a", "b"], 1, [4, "b", [23, "b"]], [ ]]`

Das letzte Element `[ ]` dieser Liste enthält keine Elemente. Es ist die leere Liste.

Alternativ können Listen mit mindestens zwei Elementen auch in runde Klammern `(...)` gesetzt werden. Dies ist manchmal praktisch, um eine mathematisch ansprechendere Notation im Code zu haben. Ein dreidimensionaler Vektor kann dann wie folgt geschrieben werden:

`(7.3,9.3,-14.3)`

#### Zugriff auf Listenelemente: `take(<list>,<int>)`

Beschreibung: Man kann auf die einzelnen Elemente einer Liste entweder mit dem Infix-Operator `<list>_<int>` oder mit dem Funktionsoperator `take(<list>,<int>)` zugreifen. Die Indizes beginnen mit der Nummer 1. Wenn der zu erreichende Index kleiner als 1 oder größer als die Anzahl der Elemente in der Liste ist, wird der Wert `___` zurückgegeben. Außerdem wird eine Warnmeldung auf der Konsole ausgegeben.

Code | Ergebnis
--- | ---
`[2 ,5 ,7 ,3]_3` | `7`
`take([2 ,5 ,7 ,3],2)` | `5`
`[2 ,5 ,7 ,3]_5` | `___`

Der Index kann auch eine beliebige Berechnung sein. Außerdem können Indizes auf die verschachtelten Teile einer verschachtelten Liste zugreifen.

Code | Ergebnis
--- | ---
`[ [2, [4,5]],1]_1` | `[2,[4,5]]`
`[ [2, [4,5]],1]_(7-5)` | `1`
`[ [2, [4,5]],1]_1_2` | `[4,5]`
`[ [2, [4,5]],1]_1_2_2` | `5`
`[ [2, [4,5]],1]_1_2_2_2` | `___`

Wenn eine Liste in einer Variablen gespeichert ist, können die einzelnen Einträge nach ihrem Zugriff über den `_`-Operator festgelegt werden. Zum Beispiel wird nach dem Code-Fragment

    a=[[2,[4,5]],1];
    a_2="A";
    a_1_2_1="B";

der Wert von `a` zu `[[2,["B",5]],"A"]`.

##### Fortgeschrittene Verwendung

Der List-Element-Accessor hat einige weitere leistungsstarke Optionen. Durch die Verwendung negativer Zahlen als Indizes kann man auf die Listeneinträge vom Ende zum Anfang zugreifen. Die folgenden Beispiele veranschaulichen diese Möglichkeit:

Code | Ergebnis
--- | ---
`[2 ,5 ,7 ,3]_(-1)` | `3`
`take([2 ,5 ,7 ,3],(-3))` | `5`
`[ [2,6] ,5 ,7 ,3]_(-4)_(-1)` | `6`

Es ist auch möglich, Listen von Ganzzahlen als Indizes zu verwenden. Dann wird eine Liste zurückgegeben, die den angegebenen Listeneinträgen entspricht.

Code | Ergebnis
--- | ---
`[2 ,5 ,7 ,3]_[2,3]` | `[5,7]`
`[2 ,5 ,7 ,3]_[-1,1,1]` | `[3,2,2]`

Diese Seite wurde automatisch mit KI (Claude) übersetzt und wartet noch auf Überprüfung. → Alle KI-übersetzten Seiten