Was ist (Ap)CoCoA?

Das Computeralgebra-Framework ApCoCoA ist eine client/server-Anwendung, die auf dem Computeralgebrasystem CoCoA basiert. ApCoCoA bzw. CoCoA steht als Abkürzung

Ap plied Co mputations in Co mmutative A lgebra.

Das größte Ziel von ApCoCoA ist es, die symbolischen Methoden des Computeralgebrasystems CoCoA auf "reale Probleme" anzuwenden, d.h. das mathematische Gebiet der Computeralgebra mit der Numerik zu verknüpfen. Als weiteres Ziel ermöglicht ApCoCoA die Verwendung zahlreicher weiterer Bibliotheken und Programme aus dem Bereich der Computeralgebra.

Das Computeralgebra-Framework ApCoCoA wird durch das ApCoCoA Team entwickelt, das von Prof. Dr. Martin Kreuzer, Lehrstuhlinhaber des Lehrstuhls für Symbolic Computation der Fakultät für Informatik und Mathematik der Universität Passau, geleitet wird.

Überblick

Das folgende Diagramm zeigt einen vereinfachten Überblick über ApCoCoA, wie es aufgebaut ist und welche Möglichkeiten es bietet.

Von CoCoA zu ApCoCoA

ApCoCoA stellt die volle Funktionalität von CoCoA bereit. CoCoA selbst ist ein für viele Betriebssysteme kostenlos verfügbares Computeralgebrasystem, das an der Universität Genua (Italien) entwickelt wird. Sie können mit CoCoA z.B.

und vieles mehr. Für weitere Informationen zu CoCoA besuchen Sie bitte die offizielle Website von CoCoA.

Wie bereits erwähnt ist ApCoCoA sehr viel mehr als "nur CoCoA". Mit der CoCoA-eigenen Programmiersprache CoCoAL ist es möglich selbst einfache "top-level"- Funktionen zu schreiben, um damit die Funktionalität von CoCoA zu erweitern. So bietet ApCoCoA z.B. Funktionen zur Berechnung von Randbasen oder zur Berechnung in Weyl-Algebren an.

Zahlreiche Funktionen werden von in C++ programmierten ApCoCoAServer bereitgestellt, der mit CoCoA über einen Interpreter und Parser kommuniziert. Selbstverständlich können Sie auch von ApCoCoA aus auf die Funktionen des ApCoCoAServers zugreifen.

Das ist aber noch immer nicht alles! ApCoCoA ermöglicht auf einfache Weise die Verwendung verschiedenster externer Bibliotheken und Programme, z.B.

ApCoCoA Eclipse GUI

Systemvoraussetzungen

Zum Betrieb unter MS Windows XP, Vista oder Windows 7 sind nur minimale Systemanforderungen nötig:

Zum Betrieb unter Linux oder Mac gelten entsprechend analoge Voraussetzungen.

Installation

Laden Sie zunächst die aktuelle Version der ApCoCoA (aktuell am 19.10.2009 Version 1.3) herunter und speichern Sie diese an einem beliebigen Ort, z.B. auf Ihrem Desktop. Starten Sie durch Doppelklick auf die Datei ApCoCoA-1.3.exe den Installationsprozess.

Klicken Sie auf Next, akzeptieren Sie anschließend die Lizenz und klicken Sie erneut auf Next.

Sie haben nun die Möglichkeit den Standardinstallationspfad beizubehalten oder einen beliebigen Ort zu wählen. Klicken Sie anschließend auf Next.

Im Folgenden wird ein Eintrag im Startmenü erzeugt. Bestätigen Sie einfach und klicken Sie auf Next.

Duch abschließenden Klick auf Install wird ApCoCoA entsprechend Ihrer Konfiguration installiert.

Bestätigen Sie nun erneut durch Klick auf Next den Hinweis auf die Lizenz. Sie beenden die erfolgreiche Installation von ApCoCoA durch Klick auf Finish. Falls Sie den Haken bei Launch ApCoCoA aktiviert lassen, startet ApCoCoA im Anschluss automatisch.

Hinweis zur Installation unter Linux oder Mac

Derzeit ist noch keine Standalone Version von ApCoCoA für Linux und Mac erhältlich. Allerdings können Sie ApCoCoA als Plugin in eclipse installieren. Folgen Sie dazu bitte dieser Installationsanweisung.

Erste Schritte im ApCoCoA Eclipse GUI

Starten Sie ApCoCoA z.B. durch Doppelklick auf Ihr Desktopsymbol. Nach dem ersten Start von ApCoCoA erscheint zunächst der Workspace Launcher.

Hier können Sie Ihren workspace, d.h. den Ordner, in dem all Ihre ApCoCoA-Dateien gespeichert werden sollen, an einem Ort Ihrer Wahl anlegen. Standardmäßig wird Ihr workspace in dem apcocoa-Ordner angelegt, was Sie zunächst beibehalten können. Außerdem können Sie bei Use this as the default and do not ask again einen Haken setzen. Klicken Sie anschließend auf OK.

ApCoCoA Perspective

Sie sehen nun die sogenannte ApCoCoA Perspective.

Diese besteht aus drei größeren Fenstern:

Im oberen Bereich der ApCoCoA Perspective finden Sie drei für ApCoCoA bedeutende Buttons und ein ApCoCoA-Menü. Schließen Sie nun zunächst das Welcome-Fenster. Wenn Sie später zu diesem Fenster zurückkehren wollen, können Sie es unter

Help -> Welcome

erneut aufrufen.

Konfiguration der ApCoCoA Perspective

Sie können das Verhalten und Aussehen von ApCoCoA

Window -> Preferences

nach Ihren Wünschen noch anpassen.

Die fürs Erste interessanten Einstellungen betreffen nur die Bereiche Install/Update, General und ApCoCoA Preferences.

Blättern Sie zuerst das Menü Install/Update auf und gehen Sie zu Automatic Updates.

Setzen Sie den Haken bei Automatically find new updates and notify me. Damit erhalten Sie automatisch die aktuellste Version von ApCoCoA. Klicken Sie anschließend auf ApCoCoA Preferences.

Sie können alle Einstellungen so belassen wie sie sind. Wenn Sie wollen, können Sie für die Befehle, die Sie eingeben, und für die Antworten, die Sie erhalten, eigene Farben festlegen, z.B.

oder eine beliebige Farbwahl. Blättern Sie nun das Menü General und anschließend das Untermenü Editors auf. Klicken Sie dann auf das Menü Text Editors und setzen Sie den Haken bei Show line numbers.

Sie können noch weitere Veränderung am Verhalten des Text Editors vornehmen, wenn Sie wollen. Klicken Sie abschließend auf OK.

Starten von ApCoCoA

Durch Klick auf den Button (Re)start ApCoCoA Process starten Sie ApCoCoA, was Sie am Begrüßungsfenster von ApCoCoA in der ApCoCoA Console sehen.

Wie Sie vielleicht schon bemerkt haben, können Sie mit ApCoCoA noch nicht arbeiten.

Erstellen eines Projekts

Dazu muss zuerst ein Projekt angelegt werden. Ein Projekt ist physikalisch nur ein Ordner in Ihrem workspace, in dem alle Ihre Dateien zu einem Projekt verwaltet werden. Sie können ein neues Projekt entweder über

File -> New -> Project

über den Button New , über das Tastenkürzel Alt+Shift+N oder durch Rechtsklick in das Navigator-Fenster anlegen.

Blättern Sie im sich öffnenden Fenster das Menü ApCoCoA auf und wählen Sie ApCoCoA Project aus.

Klicken sie anschließend auf Next. Nachdem Sie Ihrem Projekt einen Namen gegeben haben, erzeugen Sie das Projekt durch einen Klick auf Finish.

Sie sehen nun im Navigator ein neues, noch leeres Projekt. Wie Sie aber auch bemerken können, sind Sie noch immer nicht in der Lage mit ApCoCoA zu arbeiten.

Erstellen eines Interaktiven Editorfensters

Um mit ApCoCoA arbeiten zu können, müssen Sie ein interaktives Editorfenster anlegen, in dem Sie Ihre Befehle eintippen können. Dazu müssen Sie eine bestimmte Datei namens interactive.aco erzeugen. Sie erstellen eine neue Datei (fast) genauso wie ein neues Projekt. Sie können eine neue Datei entweder über

File -> New -> File

über den Button New , über das Tastenkürzel Alt+Shift+N oder durch Rechtsklick in das Navigator-Fenster anlegen.

Es öffnet sich der New File-Dialog, in dessen Mitte alle Projekte aufgelistet sind. Dort können Sie auswählen, in welchem Projekt Sie eine neue Datei anlegen wollen. Im Moment ist ohnehin nur eines vorhanden.

Geben Sie der Datei den Namen interactive.aco und klicken Sie auf Finish. Um ApCoCoA spezifische Dateien anlegen zu können, gibt es auch noch eine weitere komfortablere Möglichkeit. Über das Menü

File -> New -> Other...

oder über die Tastenkombination Ctrl+N öffnet sich ein neues Fenster. Blättern Sie das Menü ApCoCoA innerhalb dieses Fenster auf, wählen Sie Interactive ApCoCoA File aus und klicken Sie auf Next.

Der weitere Dialog verläuft analog zu oben. Auf diese Weise müssen Sie aber über die gültigen Dateiendungen nicht bescheid wissen.

Erste Schritte in (Ap)CoCoA

Der erste Befehl

Wir wollen zunächst eine einfache Berechnung durchführen. Tippen Sie 1+1 in das interaktive Eingabefenster interactive.aco ein. Dabei ist zu beachten, dass in CoCoA alle Befehle mit einem ";" enden müssen!

Um die Berechnung ausführen zu lassen, müssen Sie den Befehl an CoCoA senden. Dies geschieht entweder durch Klick auf den Button , durch Drücken der Tastenkombination Ctrl+Enter oder über das Menü

ApCoCoA -> Send to ApCoCoA.

Nachdem die Berechnung beendet ist, sehen Sie in der ApCoCoA-Console Ihren Befehl und darunter das Ergebnis.

Wie Sie sehen, verschwindet durch Abschicken eines Befehls dieser aus dem Eingabefenster.

Die (Ap)CoCoA-Hilfe

Wenn Sie Hilfe oder Informationen zu einem Befehl benötigen oder nach einem bestimmten Befehl suchen, können Sie das in der ApCoCoA-Hilfe tun, die Sie über das Menü

Help -> Help Contents

erreichen. Es öffnet sich das folgende Fenster:

Als zweiten Menüpunkt im linken Teil des Fensters finden Sie das ApCoCoA Handbook. Dieses umfasst neben einer Einführung in (Ap)CoCoA und CoCoAL eine vollständige Auflistung aller Befehle von CoCoA bzw. ApCoCoA. Links oben befindet sich das Suchfeld, in dem Sie nach einem bestimmten Suchbegriff innerhalb des ApCoCoA Handbooks suchen können.

Wir können z.B. nach dem Befehl Print suchen und erhalten im linken Fenster eine Auflistung aller Einträge im ApCoCoA Handbook, die das Wort Print enthalten. Durch Klick auf einen Eintrag wird dessen Inhalt im rechten Fenster angezeigt. Dabei wird der Suchbegriff jeweils grau hinterlegt.

Durch Drücken der F1-Taste können Sie ebenfalls die Hilfe aufrufen. Diese öffnet sich am rechten Rand in einem kleinen Fenster innerhalb der ApCoCoA Perspective. Durch Klicken auf Contents gelangen Sie in das ApCoCoA Handbook und durch Klick auf Search können Sie wie gewohnt suchen. Sollte Ihnen das Fenster dabei zu klein sein, können Sie oben rechts das Fenster maximieren, geschlossen wird das Fenster durch Klicken auf das Kreuz im Help-Reiter.

Weiter Hilfe finden Sie auch auf der Willkommensseite, auf der u.a. auch dieses Tutorial hinterlegt ist. Sie erreichen die Willkommensseite über das Menü

Help -> Welcome

Außerdem ist es möglich innerhalb des Manuals durch Eingabe in das Eingabefenster interactive.aco nach Begriffen zu suchen. Dies geschieht durch den Befehl Man("Suchwort"); oder kürzer über ? Suchwort.

Der "Current Ring"

Alle Berechnungen finden stets in einer bestimmten Rechenumgebung statt, in einem Ring. Es ist immer genau ein derartiger Ring, also eine bestimmte Rechenumgebung aktiv. Der Ring, der gerade aktiv ist, ist der current ring. Bei Start von ApCoCoA sehen Sie den aktuell gültigen Ring im Begrüßungstext.

Zu Beginn ist der Ring der Polynome über den Unbestimmten x,y,z mit rationalen Koeffizienten der "current ring". Jeder Ring hat auch einen Namen, so heißt der "current ring" bei Programmstart R. Es wird nicht selten der Fall sein, dass Sie zu einer bestimmten Zeit nicht mehr wissen, in welchem Ring Sie sich befinden. Mit dem Befehl CurrentRing(); können Sie deshalb abfragen, welcher Ring zur Zeit der current ring ist.

Selbstverständlich können Sie auch eigene Ringe definieren.

Dies geschieht über die ::= Zuweisung. Der in diesem Beispiel definierte Ring hat den Namen S. Es handelt sich dabei um den Ring der Polynome über einer Unbestimmten mit Koeffizienten aus dem endlichen Körper mit fünf Elementen. Sie werden aber feststellen, dass unverändert R der current ring ist und nicht S. Damit S der current ring wird, müssen Sie zu diesem wechseln. Dies geschieht mit dem Befehl Use.

Mit dem Befehl RingEnvs(); erhalten Sie eine Auflistung aller Ringe, die bisher definiert wurden bzw. von Beginn an definiert sind, u.a. die Ringe R und S.

Einfache Datentypen

In (Ap)CoCoA besteht die Möglichkeit, eigene Objekte zu erzeugen, z.B.

MeineZahl:=5;

definiert ein neues Objekt mit dem Namen MeineZahl, dem der Wert 5 zugewiesen wird. Die Zuweisung eines Werts an ein Objekt geschieht mit dem := Operator. Als eine Besonderheit von CoCoA müssen Objektnamen (und auch Befehle) immer mit Großbuchstaben beginnen! Aber keine Regel ohne Ausnahme; Namen von Unbestimmten sind stets Kleinbuchstaben, was Sie im vorigen Abschnitt bereits gesehen haben.

Jedes Objekt gehört zu einem ganz bestimmten Datentyp. Bekanntlich ist 5 eine ganze Zahl, genannt Integer. In CoCoA heißt der Datentyp Integer nur kurz INT. Das Objekt MeineZahl ist also vom Datentyp INT. Mit dem Befehl Type kann man nach dem Typ eines Objekts fragen. Sie können sich den Wert eines Objekts anzeigen lassen, indem Sie das Objekt selbst quasi als Befehl an CoCoA schicken. In der nachfolgenden Abbildung sehen Sie ein Beispiel dazu.

In CoCoA gibt es eine ganz Reihe von Datentypen. Hier eine Liste ausgewählter Datentypen:

Der Datentyp "Liste"

Der interessanteste und wohl auch bedeutendste Datentyp in CoCoA ist der Datentyp LIST, der deshalb besonderer Würdigung bedarf. Man kann Listen über verschiedene Wege definieren.

L:=[0,1,2,3,4,5,6,7,8,9,10,11];
L:=0..11;

Nützliche Befehle für Listen:

Autovervollständigung und History

Sie haben jetzt bereits einige CoCoA-Befehle kennengelernt, aber was kann man tun, wenn man nicht mehr weiß, wie ein Befehl heißt oder welche Eingabeparameter er erfordert. Natürlich kann man dann in der Hilfe nach dem Befehl suchen. Manchmal ist es aber einfacher und ausreichend die Autovervollständigung zu nutzen, die ApCoCoA bietet.

Wenn Sie sich im interaktiven Eingabefenster befinden, wird diese mit der Tastenkombination Ctrl+Space aufgerufen.

Bei Eingabe der Buchstaben "Conc" erhalten Sie durch drücken von Ctrl+Space eine Liste von Befehlen mit diesen Anfangsbuchstaben. Wir finden so schnell den gesuchten Befehl "Concat". Mit den Pfeiltasten können Sie zu dem Eintrag navigieren und mit Enter auswählen. Alternativ können Sie auch mit der Maus auf den gewünschten Eintrag zeigen und diesen mit Doppelklick auswählen.

Häufig kommt es vor, dass man einen Befehl mehrfach abändern muss, bis er korrekt ist. Damit man aber nicht jedes mal den ganzen Befehl komplett eingeben muss, besitzt das interaktive Eingabefenster eine Befehlshistory. Durch Drücken der Tastenkombination Alt+Pfeil links bzw. Alt+Pfeil rechts kann in der History zurück bzw. vor geblättert werden und es erscheint der jeweilige Befehl der History. Dieser kann anschließend editiert und erneut abgeschickt werden.

Ausgabe speichern und drucken

Bevor wir über das Drucken reden, sprechen wir noch kurz über eine Möglichkeit, die Ausgabe etwas "aufzuräumen". Häufig sind Ausgaben sehr lang, z.B. lange Listen. Mit dem Befehl Set Indentation; kann man erzwingen, dass z.B. nach jedem Listenelement ein Zeilenumbruch erfolgt. Damit ist die Ausgabe in vielen Fällen leichter lesbar. Mit dem Befehl Unset Indentation; wird dies wieder aufgehoben.

Ebenfalls häufig steht man vor dem Problem, dass man lange "rumprobieren" muss, bis eine Berechnung korrekt ist. D.h. im Ausgabefenster steht nach einer gewissen Zeit sehr viel "Müll", den man natürlich nicht speichern bzw. ausdrucken möchte. Dafür gibt es in ApCoCoA die Möglichkeit, den Inhalt des Ausgabefensters zu löschen, den letzten Befehl über die History noch mal abzuschicken und dadurch das Ergebnis in einem "sauberen" Ausgabefenster zu erhalten.

Mit dem Button Clear Console oben rechts in der ApCoCoA Console können Sie den Inhalt der Konsole löschen.

Den Inhalt des Ausgabefensters können Sie nur über einen kleinen Umweg ausdrucken: Sie müssen ihn zuerst speichern! Dazu müssen Sie das Menü

ApCoCoA -> Save Console Output

aufrufen. Es öffnet sich ein Dialog zum Speichern der Ausgabe.

Prinzipiell können Sie die Ausgabe an einen beliebigen Ort speichern, es ist aber zu empfehlen, wie in Windows üblich zu Ihrem Projekt zu wechseln und die Ausgabe dort zu speichern. In größeren Projekten kann es empfehlenswert sein, sich vorher einen eigenen Ordner für alle Ausgaben innerhalb Ihres Projekts anzulegen. Vergeben Sie für Ihre Ausgabe einen Namen und klicken Sie auf Speichern. Die Ausgabe wird als .out-Datei gespeichert, so dass Sie die Ausgabedateien sofort erkennen können.

Wenn Sie die Ausgabedatei nicht sofort in Ihrem Projekt-Ordner sehen können, müssen zuerst das Projekt aktualisieren, indem Sie mit der rechten Maustaste auf Ihr Projekt klicken und Refresh auswählen.

Nun erscheint Ihre Ausgabedatei in Ihrem Projekt-Ordner. Durch Doppelklick auf die Ausgabedatei wird diese in einem neuen Tab nebem dem interaktiven Eingabefenster geöffnet.

Diese Datei können Sie nun über den Print-Button , über die Tastenkombination Ctrl+P oder über das Menü

File -> Print

ausdrucken.

Programmieren mit CoCoAL

Man kann in CoCoA relativ leicht eigene Programme schreiben und auf diese Weise die Funktionalität von CoCoA erweitern. Dazu gibt es in CoCoA eine eigene Programmiersprache, CoCoAL, die eine eigene Syntax besitzt. Teile dieser Syntax haben Sie bereits kennengelernt: Befehle und Namen beginnen mit Großbuchstaben, Unbestimmte mit Kleinbuchstaben. CoCoAL ist eine case sensitive Sprache, d.h. die Groß- und Kleinschreibung jedes Buchstaben zählt!

Dateiverwaltung in ApCoCoA

Bevor wir mit der Programmierung beginnen, wollen wir uns kurz anschauen, wie man in ApCoCoA Dateien erzeugt und speichert. Bei der Erzeugung des interaktiven Eingabefensters haben wir das bereits in Ansätzen kennengelernt. Zunächst kann man wegen besserer Übersichtlichkeit damit beginnen, seinen Projekt-Ordner zu strukturieren, indem man z.B. für seine Programme einen eigenen Ordner anlegt. Dazu gibt es wieder mehrere Möglichkeiten:

oder durch die Tastenkombination Ctrl+N. Dadurch öffnet sich ein neues Fenster, in dem Sie das Menü General aufblättern, Folder auswählen und auf Next klicken.

Wählen Sie nun das Projekt aus, in dem Sie den Ordner anlegen wollen, geben Sie Ihrem Ordner einen Namen und Klicken Sie auf Finish.

Nun sehen Sie in Ihrem Navigator-Fenster innerhalb Ihres Projekts den Ordner Programme.

Auf analoge Weise wollen wir nun innerhalb unseres neuen Ordners eine neue Datei anlegen. CoCoA unterstützt dabei lediglich die Dateiformate .coc und .cpkg, wobei cpkg-Dateien Pakete sind, die viele Funktionen zu einem bestimmten Thema beinhalten. Auf die Erstellung und Verwendung von Paketen wird hier nicht näher eingegangen. Eine neue .coc-Datei können wir

oder durch Tastenkombination Ctrl+N. Dadurch öffnet sich wie gewohnt ein neues Fenster, in dem Sie das Menü ApCoCoA aufblättern, ApCoCoA Program File auswählen und auf Next klicken.

Wählen Sie nun den Ordner aus, in dem Sie die Datei anlegen wollen, geben Sie Ihrer Datei einen Namen (Dateiendung ist nicht notwendig!) und Klicken Sie auf Finish.

Nun sehen Sie in Ihrem Navigator-Fenster unterhalb des Ordners Programme die Datei erste_datei.coc. Durch Doppelklick auf die Datei öffnet sich diese in einem neuen Tab neben dem interaktiven Eingabefenster. Sie können Änderungen an der Datei durch Klick auf den Save-Button über das Menü

File -> Save

bzw.

File -> Save As ...

oder mit der Tastenkombination Ctrl+S speichern. Wie Sie eine Datei ausdrucken können, haben Sie bereits kennengelernt.

Sie können in einer ApCoCoA-Datei mehrere Befehle hintereinander schreiben und gemeinsam bzw. in Serie ausführen lassen oder eigene Funktionen schreiben. Sie können eine Reihe von Befehlen auf gewohnte Weise, z.B. über die Tastenkombination Ctrl+Enter, an (Ap)CoCoA senden und ausführen lassen.

Die erste eigene Funktion

Funktionen werden in CoCoA mit Define ... EndDefine; erzeugt.

Beachten Sie, dass hinter der Funktionsdeklaration MeineFunktion(A,I) kein ";" steht, da die Funktion erst mit EndDefine; zu Ende ist. Die Parameter A und I stellen die Eingabe der Funktion dar, mit Return B; geben Sie das Ergebnis der Berechnung, die im Objekt B gespeichert sind, zurück. Mit Return; können Sie aus der Funktion rausspringen, ohne ein Ergebnis zurückzugeben.

Durch Ctrl+Enter oder auf eine andere gewohnte Weise können Sie die Funktion an CoCoA senden. CoCoA überprüft dann die Syntax dieser Funktion. Falls diese in Ordnung ist, können Sie diese Funktion für Berechnungen im interaktiven Eingabefenster verwenden. Mit der Funktion MeineFunktion können Sie beliebige Potenzen von jedem Objekt berechnen, für das eine Potenzierung sinnvoll ist.

Wenn Sie die Funktion zu einem späteren Zeitpunkt nach einem Neustart von ApCoCoA wiederverwenden wollen, müssen Sie die Datei, die diese Funktion beinhaltet, öffnen und die Funktion erneut an CoCoA senden. Das kann ziemlich lästig werden, v.a. wenn Sie die Funktion oft verwenden wollen. Sie können aber ApCoCoA anweisen, die entsprechende Datei bei jedem Programmstart einzulesen. Damit stehen die Funktionen dieser Datei sofort zur Verfügung. Öffnen Sie dazu über das Menü

File -> Open File ...

die Datei userinit.coc, die sich in dem Ordner apcocoa Ihres Installationsordners befindet.

Fügen Sie in die Datei userinit.coc folgende Zeile ein:

Das ist der komplette Dateipfad, an dem die Datei erste_datei.coc gespeichert ist, relativ von userinit.coc aus. Wenn Sie Ihren workspace standardmäßig in dem ApCoCoA-Installationsordner erzeugen, muss Ihr Pfad stets mit

../workspace/

beginnen. Anschließend folgt der Name Ihres Projekts und ggf. Unterverzeichnisse, in denen sich die gewünschte Datei befindet. Speichern Sie nun bitte die Datei userinit.coc und schließen Sie sie, indem Sie auf das Kreuz in dem entsprechenden Tab klicken. Wenn Sie nun ApCoCoA über den Button neu starten, steht Ihnen die Funktion MeineFunktion sofort zur Verfügung.

Programmablaufsteuerung

Damit Sie in CoCoA tatsächlich programmieren können, benötigen Sie einige Befehle, mit denen Sie den Ablauf Ihres Programms steuern und beeinflussen können.

Schleifenbefehle

Mit Schleifenbefehlen können Sie eine bestimmte Sequenz von Befehlen wiederholt ausführen lassen. In CoCoA gibt es im Wesentlichen drei Schleifenbefehle, die je nach Anwendung besser oder schlechter geeignet sind.

Die For-Schleife

Die For-Schleife führt eine Sequenz von Befehlen so oft aus, wie Sie es vorher festlegen. Beispiel:

In diesem kleinen Beispiel wird unsere Funktion MeineFunktion fünf mal ausgeführt und das Ergebnis jeweils in eine Liste eingefügt. Dabei wird der Parameter I jeweils um 1 erhöht. Die Liste L enthält damit die Zahlen

A^1, A^2, A^3, A^4, A^5

Der Paramter I selbst kann innerhalb der For-Schleife verwendet werden, muss er aber nicht. Der Aufbau einer For-Schleife erfolgt immer nach demselben Muster, im Beispiel rot eingerahmt.

Die ForEach-Schleife

In CoCoA gibt es noch einen speziellen For-Schleifen-Befehl für Listen, die ForEach-Schleife. Beispiel:

Das Ergebnis dieses kleinen Programms ist identisch mit dem aus obigem Beispiel. Hier wird aber I nicht sukzessive um 1 erhöht, sondern I nimmt nacheinander die Werte der Elemente in der Liste B an. Wie Sie sehen ändert sich dadurch am Ergebnis nichts. Die Syntax einer ForEach-Schleife ist recht einfach entsprechend dem rot markierten Muster in dem Beispiel.

Die While-Schleife

Die While-Schleife führt eine Sequenz von Befehlen so lange aus, bis eine logische Bedingung nicht mehr erfüllt ist. Beispiel:

Hier wird so lange die Funktion MeineFunktion ausgeführt, bis I=6 gilt. Dann ist die Schleife zu Ende. I<6 ist also die logische Bedingung. Nicht vergessen dürfen Sie dabei, dass I auch tatsächlich in jedem Schleifendurchlauf erhöht wird. Denn ansonsten bricht die Schleife niemals ab! Der Aufbau einer While-Schleife ist auch hier rot markiert.

Verzweigungsbefehle

Sehr häufig wird man wollen, dass bestimmte Befehle nur dann ausgeführt werden, wenn eine bestimmte Bedingung erfüllt ist. Dafür gibt es die If-Verzweigung. Beispiel:

Wie Sie sehen, ist im ersten Fall die logische Bedingung I > 1 nicht erfüllt. Deshalb wird auch 2 nicht als Ergebnis ausgegeben, weil MeineFunktion im ersten Fall nicht aufgerufen wird. Im zweiten Fall ist die logische Bedingung jedoch erfüllt. Dementsprechend wird MeineFunktion aufgerufen und 4 als korrektes Ergebnis zurückgegeben.

Man kann die If-Verzweigung auch zu If-Else-Verzweigung ausbauen, wenn man dies benötigt. Beispiel:

Da die logische Bedingung nicht erfüllt ist, werden die Befehle im Else-Zweig ausgeführt. Wie Sie sehen können innerhalb eines If- oder Else-Zweigs selbstverständlich auch Sequenzen von Befehlen stehen.

Kommentare

Um Programme für sich und andere besser lesbar zu machen, ist es sehr zu empfehlen, Kommentare zu verwenden. Kommentarzeilen beeinflussen die Funktionalität Ihres Programms nicht, sondern dienen ausschließlich der Erläuterung. In CoCoA gibt es drei Arten, Kommentare zu schreiben.

/* <Kommentar> */

Alles was zwischen /* und */ steht, wird als Kommentar behandelt. Dadurch sind auch Kommentare über mehrere Zeilen möglich.

// <Kommentar>

Derartige Kommentare dürfen nur eine Zeile lang sein, d.h. nur der Text in derselben Zeile wird als Kommentar behandelt.

-- <Kommentar>

Kommentare, die mit -- eingeleitet werden, dürfen ebenfalls nur eine Zeile lang sein.

Drucken ohne Drucker

Es ist häufig sehr nützlich, sich nicht nur das Endergebnis, sondern auch Zwischenergebnisse ausgeben zu lassen. Auf diese Weise kann man auch nach Fehlern im Programm suchen. CoCoA stellt dazu die Befehle Print bzw. PrintLn zur Verfügung. Sie können damit beliebig viele Objekte hintereinander ausgeben lassen. Der einzige Unterschied zwischen Print und PrintLn ist der, dass PrintLn am Ende einen Zeilenumbruch macht.

Templates

Für die Funktionsdefinition, die Schleifen- oder Verzweigungsbefehle bietet ApCoCoA Schablonen, sogenannte Templates an. Auf diese Weise spart man sich zum Einen Schreibarbeit und zum Anderen muss man die Syntax dieser Befehle nicht im Detail parat haben. Wenn Sie z.B. eine neue Funktion schreiben wollen, tippen Sie einfach nur ein paar Buchstaben, z.B. "Def", ein und drücken die Tastenkombination Ctrl+Space für die Autovervollständigung.

Sie erhalten eine Liste mit Vorschlägen, an deren zweiter Stelle Sie define - Template for a function definition finden. Wählen Sie dieses Template bitte mit den Pfeiltasten oder der Maus aus und drücken Sie auf Enter bzw. Klicken Sie mit der Maus darauf.

ApCoCoA fügt Ihnen dann eine Schablone einer Funktion ein, in der Sie nur noch Ihren Funktionsamen und die Argumente eingeben müssen und anschließend Ihre Funktion mit Inhalt füllen können. Über das Menü

Window -> Preferences

können Sie unter ApCoCoA Preferences -> Editor -> Templates sehen, welche Templates bereits vorhanden sind.

Sie können außerdem neue Templates anlegen oder vorhandene Templates bearbeiten.

Fortgeschrittene Anwendungen

Starten des ApCoCoAServers

Manche Befehle in CoCoA bzw. ApCoCoA benötigen den ApCoCoAServer. Diese sind in der Hilfe auch explizit gekennzeichnet. Bevor Sie den ApCoCoAServer starten, müssen Sie die ApCoCoA Console "pinnen", d.h. fixieren. Klicken Sie dazu oben rechts in der ApCoCoA Console auf den Button Pin Console.

Starten Sie nun durch Klick auf den Button den ApCoCoAServer. Sie werden zunächst keine Veränderung feststellen können. Dadurch dass Sie die ApCoCoA Console "gepinnt" haben, läuft der ApCoCoAServer in einer eigenen Console im Hintergrund. Durch den Auswahlbutton Displayed Selected Console können Sie die ApCoCoAServer Console auswählen.

Wie Sie sehen läuft der ApCoCoAServer und wartet auf Ihre Berechnungen.