Dokumentation · Version 0.2 · Kapitel 05

Listen, Tabellen und Dinge

Drei Wege, mehrere Werte zusammenzuhalten: Listen sammeln der Reihe nach, Tabellen ordnen jedem Schlüssel einen Wert zu, Dinge fassen zusammengehörige Felder unter einem Namen.

Listen anlegen und füllen

Erstelle, Füge hinzu, Entferne, Sortiere

Grundbefehle
Erstelle eine Liste namens Einkauf.
Erstelle eine Liste namens Zahlen mit 3 und 1 und 2.

Füge "Milch" zur Einkauf hinzu.
Füge "Brot" zur Einkauf hinzu.
Füge "Äpfel" zur Einkauf hinzu.

Entferne "Brot" aus Einkauf.

Sortiere Einkauf.
Sortiere Zahlen absteigend.

Zeige Einkauf.
Zeige Zahlen.
SatzWirkung
Erstelle eine Liste namens L.legt eine leere Liste an
Erstelle eine Liste namens L mit a und b.legt sie gleich gefüllt an
Füge Wert zur L hinzu.hängt hinten an
Entferne Wert aus L.nimmt den Wert heraus
Entferne Element n aus L.nimmt den n-ten Eintrag heraus
Entferne das erste / das letzte Element aus L.nimmt vorne bzw. hinten weg
Sortiere L. · Sortiere L absteigend.auf- bzw. absteigend
Kopiere L als N.echte Kopie — siehe Hinweis unten
die Länge von LAnzahl der Einträge
L enthält WertPrüfung, ob der Wert vorkommt
Listen sind Verweise

Merke Einkauf als Zweitname. gibt derselben Liste einen zweiten Namen — wer über den einen etwas hinzufügt, sieht es auch über den anderen. Eine eigenständige zweite Liste entsteht mit Kopiere Einkauf als Sicherung.

Auf Einträge zugreifen

Gezählt wird ab 1

Einzelne Einträge und Ausschnitte
Erstelle eine Liste namens Einkauf
    mit "Milch" und "Brot" und "Äpfel" und "Kaffee".

Zeige das erste Element von Einkauf.
Zeige das letzte Element von Einkauf.
Zeige Element 2 von Einkauf.

Merke 3 als Nr.
Zeige Element Nr von Einkauf.
Zeige Element (Nr minus 1) von Einkauf.

Zeige Elemente 2 bis 3 von Einkauf.
Zeige ein zufälliges Element von Einkauf.
Zeige die Länge von Einkauf.

Die Nummer darf eine Zahl, ein Name oder eine Rechnung in Klammern sein.

Hinter dem Ende gibt es nichts

Ein Zugriff außerhalb der Liste ist immer ein Fehler mit klarer Meldung — nie ein stiller Fehlgriff und nie ein leerer Wert. Wer damit rechnen muss, fängt ihn mit Versuche ab oder prüft vorher die Länge.

Tabellen

Schlüssel zeigt auf Wert

Eine Tabelle ordnet jedem Schlüssel — einem Text oder einer Zahl — einen Wert zu. Die Reihenfolge, in der eingetragen wurde, bleibt erhalten.

Tabellen im Einsatz
Erstelle eine Tabelle namens Preise mit "Apfel" als 3 und "Birne" als 2.

Trage "Kiwi" mit 5 in Preise ein.
Zeige Wert für "Apfel" in Preise.

Wenn Preise enthält "Kiwi", zeige "Kiwi ist eingetragen.".
Entferne "Birne" aus Preise.

Zeige "Es sind " und die Länge von Preise und " Sorten:".
Für jede Frucht in Preise:
    Zeige "  " und Frucht und ": " und Wert für Frucht in Preise.
Ende.
SatzWirkung
Erstelle eine Tabelle namens T.legt eine leere Tabelle an
Erstelle eine Tabelle namens T mit "a" als 1.legt sie gefüllt an
Trage Schlüssel mit Wert in T ein.einträgt oder überschreibt
Wert für Schlüssel in Tliest den Wert
T enthält Schlüsselprüft, ob es den Schlüssel gibt
Entferne Schlüssel aus T.nimmt den Eintrag heraus
die Länge von TAnzahl der Einträge
Für jedes S in T: … Ende.geht durch die Schlüssel
Wofür Tabellen?

Überall dort, wo etwas nachgeschlagen wird: Preise je Ware, Punkte je Spieler, Anzahl je Wort. Was mit zwei Listen und einer Suchschleife mühsam wäre, ist mit einer Tabelle ein Satz.

Texte zerlegen und zusammensetzen

Teile, Verkettet, Zeichen, Ersetze

Vom Text zur Liste und zurück
Merke "Klarsatz liest sich wie ein Satz" als Satz.
Teile Satz bei " " zu Woerter.

Zeige "Der Satz hat " und die Länge von Woerter und " Wörter:".
Für jedes Wort in Woerter:
    Zeige "  " und Wort.
Ende.

Anmerkung: Der Rückweg — eine Liste zu einem Text verbinden.
Zeige Verkettet von Woerter mit ", ".

Anmerkung: Ausschnitte und Ersetzungen.
Zeige Zeichen 1 bis 9 von Satz.
Merke "Hallo Welt" als Gruss.
Ersetze "Welt" durch "Klarsatz" in Gruss.
Zeige Gruss.

Anmerkung: Text zu Zahl — versteht auch das deutsche Komma.
Zeige Zahlenwert von "3,5" plus 1.
SchreibweiseErgebnis
Teile t bei "…" zu L.Text → Liste von Texten
Verkettet von L mit ", "Liste → Text
Zeichen a bis b von tAusschnitt eines Textes, ab 1 gezählt
Elemente a bis b von LAusschnitt einer Liste
Ersetze "alt" durch "neu" in N.ersetzt im Text unter dem Namen N
Zahlenwert von tText → Zahl ("3,5"3.5)

"\n" steht für den Zeilenumbruch — damit zerlegt Teile Inhalt bei "\n" zu Zeilen. einen mehrzeiligen Text in seine Zeilen.

Dinge

Eigene Strukturen mit Feldern

Ein Ding fasst mehrere Werte unter einem Namen zusammen. Zuerst wird die Bauart beschrieben, dann werden einzelne Exemplare erschaffen.

Beschreiben, erschaffen, benutzen
Ein Hund hat einen Namen und ein Alter.

Erschaffe einen Hund mit Name "Rocco" und Alter 5 als Waldi.

Zeige den Namen von Waldi.
Zeige das Alter von Waldi.

Setze das Alter von Waldi auf 6.
Zeige "Nach dem Geburtstag: " und das Alter von Waldi.
Alle Felder müssen belegt sein

Beim Erschaffen ist jedes Feld anzugeben — ein Wert ist in Klarsatz nie „einfach leer“. Das erspart die halbfertigen Datensätze, an denen Programme später scheitern.

Feldnamen dürfen leicht gebeugt werden: Name und Namen meinen dasselbe, ebenso Zahl und Zahlen. Beim Anzeigen eines ganzen Dings erscheint der Feldname allerdings so, wie er in der Definition stand.

Dinge in Listen
Ein Hund hat einen Namen und ein Alter und eine Rasse.

Anmerkung: Lange Sätze darf man umbrechen — Einrückung ist bedeutungslos.
Erschaffe einen Hund mit Name "Rocco" und Alter 5
    und Rasse "Mischling" als Waldi.
Erschaffe einen Hund mit Name "Luna" und Alter 2
    und Rasse "Beagle" als Nachbarhund.

Erstelle eine Liste namens Heim.
Füge Waldi zur Heim hinzu.
Füge Nachbarhund zur Heim hinzu.

Für jeden Hund in Heim:
    Zeige den Namen von Hund und " (" und die Rasse von Hund und ")".
    Zeige "   " und das Alter von Hund und " Jahre alt".
Ende.