Z.u.L. > Dokumentation > Kontexthilfe

Beschreibende Konstruktionen in Dateien

Damit ist es möglich, Konstruktionen in der beschreibenden Form in eine Datei zu schreiben. Außerdem kann die Datei Makrodefinitionen enthalten, die sich auch gegenseitig aufrufen dürfen. Damit entsteht eine einfache Programmiersprache für Konstruktionen. Solche Konstruktionen lassen sich direkt laden (wenn sie etwa in einem externen Editor erstellt wurden), oder vor dem Laden bearbeiten.

Diese Konstruktionsbeschreibungen sehen wie normale Konstruktionen aus. Sie können Kommentare enthalten die mit "//" eingeleitet werden und für den Rest der Zeile gelten. Die verwendete Sprache ist zeilenorientiert. Jeder Konstruktionsschritt nimmt genau eine Zeile ein.

Außerdem können sie Makros enthalten, die auch andere Makros aufrufen können. Ein typisches Beispiel ist

Makro U
// Kreis durch drei Punkte
Parameter A=P // Erster Punkt
Parameter B=P // Zweiter Punkt
Parameter C=P // Dritter Punkt
g1=MS(A,B)
g2=MS(A,C)
U=S(g1,g2)
Ziel k=k(U,A)
Ende

Die Einrückungen sind hier optional. Die Kommentarzeilen am Anfang werden als Makrokommentar gespeichert. Parameterpunkte sind mit dem Schlüsselwort Parameter (oder Param) gekennzeichnet, und Ziele mit dem Schlüsselwort Target (oder Ziel). Der Prompt für diese Parameter ist der evtl. vorhandene Einzeilenkommentar nach dem Parameter.

Das Makro im obigen Beispiel ruft das Makro MS auf, das die Mittelsenkrechte zwischen zwei Punkte konstruiert. Das Makro könnte etwa so aussehen.

Makro MS
// Mittelsenkrechte Param A=punkt Param B=punkt partiell(wahr) k1=kreis(A,B) k2=kreis(B,A) partiell(falsch) P1,P2=schnitt(k1,k2) Ziel g=gerade(P1,P2)
Ende

Da MS ein Zielobjekt hat (die Mittelsenkrechte), kann im Aufruf g1=MS(A,B) diesem Ziel ein Name zugewiesen werden. Ziele müssen separat definiert werden, wenn in einer Zeile mehr als ein Objekt entsteht.

A,B=schnitt(g,h)
Ziel B

Ein Makro kann mehrere Ziele haben, die dann aber auch alle beim Aufruf zugewiesen werden müssen.

A,B=test(...)

Prompts sind ebenfalls möglich. Dazu wird das Schlüsselwort Prompt verwendet. Wie bei der normalen Definition von Makros wird der Benutzer beim Aufruf des Makros nach dem Wert dieses Objekts gefragt, oder beim beschreibenden Aufruf wird der Wert von einem zusätzlichen Parameter gelesen. Das Objekt muss ein fixiertes Objekt sein.

Man beachte bei Makrodefinitionen, dass nur diejenigen Objekte konstruiert werden, die tatsächlich aus den Parametern konstruierbar sind. Andere Konstruktionsschritte werden nicht ausgeführt.

Verwendet man Kreise oder Geraden als Parameter, so müssen die Elternobjekte vorher definiert sein. Die Mittelsenkrechte könnte dann auch von einer Strecke abhängen.

Makro MS
// Mittelsenkrechte A=punkt B=punkt
Parameter s=strecke(A,B) partiell(wahr) k1=kreis(A,B) k2=kreis(B,A) partiell(falsch) P1,P2=schnitt(k1,k2) Ziel g=gerade(P1,P2)
Ende

Falls Kreise als Parameter verwendet werden, so kann man die spezielle Syntax

A=Punkt
Parameter k=Kreis(A)

verwenden. Diese Art von Kreisen macht nur als Parameter in Makros Sinn.

Es gibt das spezielle Kommando "sichtbar" (showall), das alle Zwischenobjekte des Makros sichtbar macht. Im Gegensatz dazu versteckt "unsichtbar" (invisible) alle Zwischenobjekte vollständig.

Siehe auch: Beschreibende Konstruktionen, Speichern und Laden

Nächstes Thema: Aufgaben