Klarsatz ist eine kontrollierte natürliche Sprache. Programme lesen sich wie deutsche Anweisungen, folgen aber festen Satzmustern. Dieses Kapitel erklärt, wie ein Satz gebaut ist, wie man etwas ausgibt und einliest und wie man Werte merkt.
Ein Satz ist ein Befehl
Die zehn Grundregeln
Jeder Klarsatz-Befehl ist ein Satz: Er beginnt mit einem Verb im Imperativ und endet mit einem Punkt. Zeilenumbrüche und Einrückung sind für den Interpreter bedeutungslos — sie dienen allein dem Lesen.
Zeige "Hallo Welt".
| Regel | Beispiel |
|---|---|
| Ein Satz ist ein Befehl und endet mit einem Punkt. | Zeige "Hallo". |
| Befehle stehen im Imperativ am Satzanfang. | Merke, Setze, Zeige |
Blöcke beginnen mit : und enden mit Ende. | Wiederhole 3 Mal: … Ende. |
| Artikel werden überlesen. | Zeige die Summe. = Zeige Summe. |
| Füllwörter ebenso. | Merke dir 5 als Zahl. = Merke 5 als Zahl. |
| Groß- und Kleinschreibung ist egal. | Zähle = zaehle = ZAEHLE |
ä ö ü ß gelten wie ae oe ue ss. | Größe = Groesse |
| Namen werden nicht gebeugt. | Zahl, nicht „der Zahl“ |
| Zeilenumbrüche und Einrückung sind bedeutungslos. | Einrückung dient nur dem Lesen. |
Kommentar: Anmerkung: bis zum Zeilenende. | Anmerkung: erklärt etwas. |
| Klammern gibt es nur für Rechnungen und Argumente. | Wurzel von (a plus b) |
Die Wörter der, die, das, den, dem, ein, eine, einen und ihre Geschwister werden beim Lesen übersprungen. Man darf sie schreiben, damit der Satz natürlich klingt — verlangt werden sie nie.
Dasselbe gilt für dir, dich, mir, mich, uns, sich und bitte. So darf man schreiben, wie man spricht:
Merke dir 5 als Zahl. Bitte zeige mir die Zahl. Drehe dich um 90 Grad nach rechts.
Im Spielplatz führt das Beispiel So darf man schreiben alle diese Freiheiten an einem Stück vor.
Werte: Zahlen, Texte, Wahrheit
Was in einem Programm vorkommen darf
Texte stehen zwischen "…" oder „…“. Zahlen schreibt man mit Punkt als Dezimaltrenner: 42, 3.14, negative direkt mit Vorzeichen: -5. Die Ausgabe erfolgt dagegen deutsch — aus 3.5 wird auf dem Bildschirm 3,5. Wahrheitswerte heißen wahr und falsch.
Zeige 42. Zeige -5. Zeige 3.5. Zeige "Ein Text". Zeige „Auch so geht es“. Zeige wahr.
Im Quelltext trennt das Komma Satzteile — deshalb muss eine Kommazahl dort mit Punkt geschrieben werden: 3.14, nie 3,14. Angezeigt wird sie anschließend trotzdem deutsch.
Ausgeben und Einlesen
Zeige, Frage und das verbindende „und“
Zeige schreibt eine Zeile. Mehrere Teile werden mit und aneinandergehängt — ohne Leerzeichen dazwischen, man setzt es also selbst.
Merke 12 als Summe. Zeige "Hallo Welt". Zeige "Summe: " und Summe. Zeige "Von " und 1 und " bis " und 10 und ".".
Frage liest eine Eingabe ein und merkt sie unter einem Namen. Sieht die Antwort wie eine Zahl aus, wird sie zur Zahl — sonst bleibt sie ein Text. Ob das eine oder das andere vorliegt, lässt sich mit eine Zahl beziehungsweise keine Zahl prüfen.
Frage "Wie heißt du?" und merke die Antwort als Name.
Zeige "Hallo, " und Name und "!".
Frage "Wie alt bist du?" und merke die Antwort als Alter.
Wenn Alter keine Zahl ist:
Zeige "Das war keine Zahl.".
Sonst wenn Alter mindestens 18 ist:
Zeige "Willkommen.".
Ende.
Einzelne Buchstaben eines Textes holt man mit Element 1 von Antwort. Bei einer Antwort, die zur Zahl geworden ist, führt das zu einem Fehler — der sich mit Versuche abfangen lässt.
Der Spielplatz hat keine Tastatureingabe während des Laufs. Antworten für Frage trägt man vorab in das Feld Eingaben ein — eine Antwort je Zeile, in der Reihenfolge, in der gefragt wird.
Werte merken
Merke, Setze und die kurzen Rechenbefehle
Merke legt einen Namen an oder überschreibt ihn. Setze ändert einen Namen, der bereits existiert — schreibt man sich dabei vertippt, meldet Klarsatz das, statt still eine zweite Variable anzulegen.
Merke 5 als Zahl. Anmerkung: anlegen oder überschreiben Merke für immer 3.14159 als Pi. Anmerkung: Konstante, nicht mehr änderbar Setze die Zahl auf 7. Anmerkung: ändern, Name muss existieren Erhöhe die Zahl um 1. Anmerkung: ohne "um" wird um 1 erhöht Erhöhe die Zahl. Verringere die Zahl um 2. Verdopple die Zahl. Halbiere die Zahl. Zeige die Zahl. Merke "Wolfgang" als Name. Verbinde "Hallo, " und Name zu Gruss. Zeige Gruss.
| Befehl | Wirkung |
|---|---|
Merke Wert als Name. | Legt den Namen an oder überschreibt ihn. |
Merke für immer Wert als Name. | Legt eine Konstante an. |
Setze Name auf Wert. | Ändert einen vorhandenen Namen. |
Erhöhe Name um n. | Zählt hinauf, ohne um um 1. |
Verringere Name um n. | Zählt hinunter, ohne um um 1. |
Verdopple Name. · Halbiere Name. | Mal zwei, geteilt durch zwei. |
Verbinde a und b zu Name. | Hängt zwei Werte zu einem Text zusammen. |
Benutzt ein Satz einen Namen, den es nicht gibt, nennt die Fehlermeldung den ähnlichsten vorhandenen: Meintest du 'Summe'? Das erspart die Suche nach der Stelle, an der sich ein Buchstabe verirrt hat.
Anmerkungen
Notizen für Menschen
Alles hinter Anmerkung: bis zum Zeilenende wird überlesen. Anmerkungen dürfen am Zeilenanfang oder hinter einem Satz stehen.
Anmerkung: Dieses Programm rechnet den Kreisumfang aus. Merke für immer 3.14159 als Pi. Merke 5 als Radius. Merke 2 mal Pi mal Radius als Umfang. Anmerkung: U = 2 · π · r Zeige "Umfang: " und Formatiert von Umfang auf 2 Stellen.
Häufige Stolperfallen
Was Anfängern zuerst passiert
Klarsatz liest sich wie Deutsch — und genau das verführt zu Sätzen, die fast stimmen. Diese sechs Fälle erwischen fast jeden einmal.
| Falsch | Richtig | Warum |
|---|---|---|
Wenn Befehl "fertig" ist: | Wenn Befehl gleich "fertig" ist: | Zwischen zwei Werte gehört immer ein Vergleichswort. |
Definiere Aufgabe Zeige Preisliste: | Definiere Aufgabe PreislisteAnzeigen: | Ein Aufgabenname ist ein Wort — sonst gilt das zweite als Parameter. |
Zeige "Hallo" | Zeige "Hallo". | Jeder Satz endet mit einem Punkt. |
Wiederhole 3 Mal: Zeige "hi". | … Ende. dahinter | Was mit : beginnt, endet mit Ende. |
Zeige die Zahlen. (für Zahl) | Zeige die Zahl. | Namen werden nicht gebeugt — nur Feldnamen von Dingen dürfen das. |
Wenn x größer als 3 ist, zeige "a". Zeige "b". | Blockform mit : und Ende. | Die Kurzform führt genau einen Satz aus. |
Statt zu raten, lässt man prüfen — ohne das Programm auszuführen:
python3 -m klarsatz --pruefe programm.klar
Im Spielplatz macht das der Knopf Prüfen. Er nennt Zeile, Spalte und meist auch gleich den richtigen Namen: „Meintest du 'Summe'?“