Z.u.L. > Dokumentation > Kontexthilfe
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