% Keine Panik - Diese Anleitung ist als Eingabefile für \LaTeX\ gedacht. Aber sie
% ist auch lesbar, wenn man \TeX\ nicht hat oder versteht. Alles, was mit
% einem \ beginnt ist ein Kommando. \bf steht z.B. für Bold, also wird
% ein Teil des folgenden Textes in Bold gedruckt. \section etc. steht für
% die Unterteilung des Textes in Kapitel. Der eigentliche Text ist normal
% lesbar/. Jede Zeile mit einem % davor ist eine Kommentarzeile.
% Diese Informationen sollten ausreichen, um diese Anleitung lesen zu können.
% Ansonsten: \TeX\ ist wirklich gut - sollte man sich wirklich mal ansehen !


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Die mit
%%                     ACHTUNG !!!!
%% gekennzeichneten Bereiche vor Veröffentlichung
%% kontrollieren !
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentstyle[amigauml]{article}
\def\MathPlot {{\bf MathPlot\ }}
\def\mytitle{\MathPlot V1.19c}
\def\myauthor{\copyright $\,$ by Rüdiger Dreier 1991/92} 
\parindent 0pt
\def\RETURN {$<${\it RETURN}$>$}
\begin{document}
\sloppy
%\maketitle
\begin{titlepage}
\setcounter{page}{0}
   
\begin{center}
\null
\vfil
{\huge \mytitle}
\vskip 3em
{\LARGE \myauthor}
\vskip 2em
\today
\vskip 4em

\begin{tabular}{rl}
&Rüdiger Dreier\\
&Gustav--Winkler--Str. 40\\
4800&Bielefeld 18\\
&Germany
\end{tabular}
   
%\end{center}
\vskip 2em
Bis Ende Okt. 92 bin ich auch per E--Mail erreichbar:

%\begin{center}
uphya600@unibi.hrz.uni-bielefeld.de
\end{center}


\vspace{.5cm}

\begin{center}
{\Large \MathPlot ist {\bf ShareWare}}
\end{center}

\par
\end{titlepage}
%\newpage
\tableofcontents
\newpage
%
% Abschnitt 1
%
\part{Einleitung}
%
% Einleitung
%
\section{Wichtiger Hinweis} {\sl
  Der Autor über\-nimmt keinerlei Haftung für Schäden, die aus der sach--
  oder un\-sach\-ge\-mässen Benutzung des Programms entstehen !!

  Weiterhin wird  keine  Haftung  für  die  Fehlerfreiheit  des  Programms
  über\-nommen !!

  Benutzung auf eigene Gefahr !
}

\vspace{.5cm}

 \begin{center}
  {\Large \MathPlot ist {\bf SHAREWARE}.}
 \end{center}


\subsection{Weitergabe}
Diese Version des Programms ist eine Demoversion mit leichten
Einschränkungen. Sie darf unter folgenden Bedingungen weitergegeben werden:

\begin{enumerate}
\item Der Copyrighttext darf nicht verändert worden sein.
\item Es darf mit dem Programm kein Geld verdient werden (also nur Kosten
      für Porto, Material und eine {\bf kleine} Gebühr für die Abnutzung der
      Kopieranlage, Strom etc.)
\item Das Programmpaket darf nicht verändert worden sein.
\item Das Programmpaket muß
      vollständig sein, also sämtliche Anleitungen und eine
      lauffähige Version von \MathPlot sowie eine Version der mtool.library
      müssen zusammen weitergegeben werden.
\item Will jemand \MathPlot (oder einen Teil davon) oder die mtool.library
      (oder einen Teil davon) kommerziell nutzen (z.B. in eine sogenannte
      "`PD--Disk--Serie"' mit einem Verkaufspreis über DM 5,-- je Diskette
      aufnehmen), so ist dafür die schriftliche Genehmigung des Autors
      nötig.
\item Es {\bf ist} erlaubt, die Textdateien in andere Sprachen zu übersetzen
      und zusammen mit diesem Programm weiterzugeben.
\end{enumerate}

\subsection{Sharegebühr}
Wird dieses Programm regelmäßig benutzt, so ist die Sharegebühr zu bezahlen.
Sie beträgt DM 30,-- oder \$ 20,-- und ist unter Angabe des Programmnamens
und der Programmversion (möglichst auch wo man sie gefunden hat) an die
oben stehende Adresse zu senden. Dafür erhält man
\begin{enumerate}
\item Die neuste Version von Math-Plot (Vollversion). Diese Version darf
      {\bf nicht} weitergegeben werden.
\item Eine gedruckte Anleitung (diese hier, bitte angeben, ob Deutsch
      oder Englisch).
\item Updateservice. Neuere Versionen können (falls vorhanden) gegen
      Einsendung einer Leerdiskette, Rückporto und Umschlag
      unter Angabe der Registriernummer angefordert werden. Bitte die
      vorhandene Version angeben. Sollte keine neuere Version vorliegen, oder
      die Veränderungen zu minimal sein, werde ich mit der Antwort warten,
      bis entsprechende Veränderungen vorhanden sind.
\end{enumerate}
%
%

\subsection{Quelltext}
Der Quelltext ist {\bf nicht} frei kopierbar und ist nur gegen Bezahlung
erhältlich. Die Gebühr hierfür beträgt DM 30,-- oder \$ 20,--.
{\bf Der Quelltext darf nicht weitergegeben oder (ohne schriftliche
Genehmigung) kommerziell genutzt werden.} Der Quelltext ist {\bf nur} für
registrierte Benutzer erhältlich.
%
% Anwendung
%
\section{Anwendungsbereich}
   \MathPlot ist ein Programm zum Zeichnen zweidimensionaler mathematischer
   Funktionen. Es kön\-nen bis zu 10 Funktionen eingegeben und gezeichnet
   werden. Zu\-sätzlich kann man sich von jeder Funktion die erste und
   zweite Ableitung zeichnen lassen (jeweils numerisch oder symbolisch
   bestimmt). Weiterhin sucht das Programm Nullstellen, Extrema und
   Wendestelle. Numerische Integration ist möglich. Ein {\sl ARexx--Port}
   zur einfachen Erweiterung des Programms steht zur Verfügung.
   \MathPlot eignet sich
   zur Unterstützung bei Kurvendiskussionen, um die selbst errechneten
   Ergebnisse zu kontrollieren.

%
% Rechner
%
\section{Anforderungen an die Rechnerkonfiguration}
  {\bf Das  Programm läuft nur unter  Kickstart 2.04 und höher !} 512 kB
   Speicher sollten eigentlich ausreichen, für große Screens ist 1MB
   Chip--Ram nicht schlecht. Der Stack sollte mindestens 20000 Bytes
   betragen, sonst kommt es zu leicht zu Abstürzen. Im logischen Device
   LIBS: müssen sich mehrere Libraries befinden:
\begin{enumerate}
\item mathieeedoubbas.library
\item mathieeedoubtrans.library
\item asl.library
\item mtool.library (in diesem Ordner enthalten)
\item diskfont.library (V36 oder höher)
\item ILBM.library (wird für das Abspeichern als IFF-File gebraucht,
sonst nicht nötig)
\end{enumerate}
   Und in S: sollten sich befinden (Nicht unbedingt nötig):
\begin{enumerate}
\item Funktionen.fkt, einige vordefinierte Funktionen.
\item Colours.col, Die Farbdaten des Programms.
\item MPlotDef.info, dieses Icon wird für Iconify und die Iff-Daten benutzt.
\end{enumerate}

Falls der ARexx--Port benutzt werden soll, sollte der Inhalt des
Ordner {\it Macros} nach REXX: kopiert werden (bei ARexx scheint ein
   \verb|assign ..... add| nicht zu funktionieren).

\newpage
%
% Abschnitt 2
%
\part{Die Menupunkte:}
%
% Menu 1
%
\section{Projekt}
\subsection{Neu}
    Nach einer Sicherheitsabfrage wird der Bildschirm gelöscht. Geschieht
    automatisch beim Verändern der Intervallgrenzen. Eine evt. vorhandene
    HP--Plotausgabe wird abgeschlossen (siehe Kapitel \ref{HP}).
\subsection{IFF Save as}
    Dieser Menupunkt benutzt die ILBM.library. Ist sie nicht vorhanden, so
    erscheint ein Requester. Ist sie vorhanden, so wird nach dem Namen des
    Files gefragt und der Bildschirm abgespeichert. Sollte ein Fehler
    aufgetreten sein, so erscheint ein Requester.

    Falls das File s:MPlotDef.info existiert, wird dessen Icon als Icon für
    das File benutzt.
\subsection{Funktionen laden/speichern}
    Nach Eingabe eines Namens wird die entsprechende Datei bearbeitet. Die 
    in der Datei enthaltenen Zeilen werden als Funktionen interpretiert, 
    bzw. die aktuellen Funktionen werden gespeichert. Das Demo--File zeigt,
    wie die Funktionen anzuordnen sind.
\subsection{Macros laden/speichern}
\label{lsm}
    Nach Eingabe eines Names wird die entsprechende Datei als
    Macrodefinition geladen bzw. werden die aktuellen Macros abgespeichert.
\subsection{Konstanten laden/speichern}
    Siehe (\ref{lsm}). Hier allerdings mit Konstanten.
\subsection{Farben laden}
    Der Name einer Datei wird abgefragt, die als Farbdatei geladen werden
    soll. Das Demo--File enthält ebenfalls alle nötigen Daten.

{\bf Alle
    Dateien müssen mit einem Return (0x0a) abgeschlossen sein. Die meisten
    Editoren machen das automatisch.}
\subsection{Drucken}
    Der Screen wird auf einem Preferences--Drucker ausgegeben. Während des
    Druckvorgangs ändert sich die Farbe des Screens. Eine HP--Ausgabe wird
    abgeschlossen (siehe Kapitel \ref{HP}).
\subsection{Iconify}
    Der Screen wird geschlossen und auf der Workbench erscheint ein Icon
    für das Programm. Ein Doppelklick auf das Icon startet das Programm
    wieder. Die alten Funktionen etc. sind noch erhalten. Sollte nicht
    genügend Speicher vorhanden sein, um einen Screen zu öffnen, so wird
    das Programm beendet. Als Icon wird die Datei S:MPlotDef benutzt. Ist sie
    nicht vorhanden, so arbeitet diese Option nicht.
\subsection{About}
    Es werden
    Informationen über das Programm (Versionsnummer) und den Autor
    angezeigt. Das Fenster kann mit der Maus (das Gadget anwählen) oder
    durch einen beliebigen Tastendruck geschlossen werden.
\subsection{ENDE}
    Nach einer Sicherheitsabfrage wird das Programm beendet (natürlich nur,
    falls die Sicherheitsabfrage entsprechend beantwortet wurde). Da der
    Screen von \MathPlot ein {\sl Public--Screen} ist, kann es passieren,
    daß zu diesem Zeitpunkt noch ein {\it fremdes} Fenster auf dem Screen
    ist. In diesem Fall wird das Programm nicht beendet und es erscheint
    eine Mitteilung.

%\end{document}
   
%
% Menu 2
%
\section{Zeichnen}
\subsection{Funktion ändern}
    Nach Anwahl dieses Menupunktes erscheint ein Untermenu mit den bisher
    eingegebenen Funktionen (es werden die ersten 14 Zeichen jeder Funktion
    angezeigt). Wird eine dieser Funktionen angewählt, so erscheint sie in
    einem Fenster, so daß sie verändert werden kann. Die Funktion muß
    mathematisch korrekt eingegeben werden (siehe Kapitel \ref{FTerme}).
    Wenn unpaarige Klammern vorhanden sind, erscheint das Fenster gleich
    wieder, damit man die Funktion korrigieren kann. Die veränderte Funktion
    wird mit \RETURN\ oder durch Anwahl von {\sl Fertig} übernommen; wird
    {\sl Cancel} angewählt, so wird die ursprüngliche Funktion weiter
    verwendet. 
%Bitte alles in Kleinbuchstaben eingeben.

    Diese Funktion kann auch über die Funktionstasten erreicht werden 
    ({\it F0} entspricht der obersten Funktion in der Liste, {\it F9} 
    der untersten).

\subsection{Funktion, 1./2. Ableitung num/symb}
    Bei jedem dieser 5 Menupunkte erscheint wieder das oben beschriebene
    Untermenu. Durch Anwahl eines Untermenupunktes kann man dann bestimmen,
    welche Funktion man gezeichnet haben will. Numerische Ableitungen werden
    nach dem Sekantenverfahren bestimmt, dabei können schon in der ersten
    Ableitung Ungenauigkeiten auftreten, die in der zweiten Ableitung dann
    schon recht deutlich werden. Beim symbolischen Ableiten wird erst die
    Ableitung als Term bestimmt und dann normal gezeichnet. Dabei kommt es
    dann nach Anwahl der Funktion zu einer kurzen Verzögerung, in der die
    Ableitung bestimmt wird. Diese Methode ist genauer, hat aber auch ihre
    Nachteile:
\begin{itemize}
\item Das Bilden der Ableitung ist ein
    rekursiver Vorgang. Der Stack sollte daher ausreichend (mind. 20000
    Bytes) sein. Kommt es zu unerklärlichen Abstürzen, sollte man ihn noch
    weiter erhöhen.
\item Einige der verwendbaren Funktionen sind nicht ohne
    weiteres abzuleiten.  Die Ableitung von sgn ist z.B. fast überall Null,
    nur um Null herum ist sie nicht definiert. Das Programm setzt dafür aber
    einfach Null ein.
\item Außerdem wird z.B. die Ableitung von ln zu 1/x
    bestimmt und auch so gezeichnet, d.h. auch im negativen Bereich
    gezeichnet, obwohl ln dort überhaupt nicht definiert ist.
\end{itemize}
    Stellt das Programm beim Zeichnen einen mathematischen Fehler fest
    (z.B. Wurzel aus einer negativen Zahl), so erscheint nach dem Zeichnen
    ein Requester, der einen auf einen Fehler in der Formel aufmerksam
    macht. Für den Fehler wird eine Nummer angegeben. Diese Nummer setzt
    sich additiv aus den in Tabelle (\ref{Fehler}) angegebenen Fehlercodes
    zusammen.

    Das Zeichnen der Funktionen kann auch über die Funktionstasten erreicht
    werden: Mit {\it SHIFT Fx} erreicht man das einfache Zeichnen einer
    Funktion, {\it ALT Fx} ergibt die erste symbolische Ableitung und
    {\it A Fx} (nur das links neben der Space/Leertaste !) ergibt die zweite
    symbolische Ableitung.

{\bf
    Eine Reihe von Vorgängen (Zeichnen, Diskussion, Ersetzen von Macros)
    kann abgebrochen werden. Dies ist immer dann der Fall, wenn ein
    Fenster mit einem Gadget {\sl Aktion stoppen} erscheint. Ein Mausklick
    auf dieses Gadget bricht den aktuellen Vorgang so schnell wie möglich
    ab.

}

\subsection{Diskussion}
    Unter diesem Menupunkt kann man sich eine grobe Kurvendiskussion
    erstellen lassen (Nullpunkte, Wendepunkte und Extrempunkte). Diese
    Punkte werden nur für das {\bf eingegebene Intervall} bestimmt. Außerdem
    wird die Funktion sowie die erste und zweite Ableitung angezeigt. Bei
    Extremstellen wird angegeben, ob es ein Minimum oder Maximum ist, bei
    Wendestellen, ob es eine rechts--\-links "`Kurve"' oder umgekehrt ist.

    Vorher wird man noch gefragt, ob das Programm nach jedem Abschnitt stoppen
    soll. Falls ja, wird man nach jedem Abschnitt gefragt, ob der Bildschirm
    erst gelöscht werden soll.

    Nochmal zu den symbolischen Ableitungen: Eingefleischten Mathematikern
    mag bei einigen der Ableitungen die Haare zu Berge stehen. Zum Einen ist
    es mit der Vereinfachung der Terme (noch) nicht sehr weit her (Immerhin:
    0*irgendetwas wird nicht angezeigt, wohl aber (1-1)*irgendetwas \dots).

    Aber auch rein mathematisch wird manchmal geschummelt. Die verwendeten
    Funktionen sind in der Tabelle (\ref{ABLEITUNGEN}) aufgeführt.

    Das Programm macht nicht deutlich, wenn eine nicht ganz korrekte
    Ableitung benutzt wird. Im Zweifelsfall die numerisch bestimmte
    Ableitung mit der symbolisch bestimmten vergleichen, sie sollten
    identisch sein. (Ausnahme: z.B. bei ln(x), siehe oben).

{\bf
    Jeder Diskussionsabschnitt kann durch einen Mausklick in das oben
    beschriebene Gadget abgebrochen werden.
}



\begin{table}
\caption{Die verwendeten Ableitungen}
\label{ABLEITUNGEN}
\begin{center}
\begin{tabular}{|r|r|l|}
\hline
1. & $+-*/$ & Das übliche \\
2. & $x^a$ & $a*x^{(a-1)}$ \\
3. & $a^x$ & $a^x*\ln{a}$ \\
4. & $f(x)^{g(x)}$ & $(g(x)*\ln(f(x)))'*f(x)^{g(x)}$ \\
5. & trig. Fkt. & Das übliche \\
6. & abs($x$) & sgn($x$) (Für $x$=0 nicht richtig) \\
7. & int($x$) & 0 (Läßt sich drüber diskutieren) \\
8. & sgn($x$) & 0 (Läßt sich drüber diskutieren) \\
\hline
\end{tabular}
\end{center}
\end{table}

\subsubsection{WICHTIG}
{\sl
    Ich über\-nehme keinerlei Verantwortung für die Richtigkeit der
    Ableitungen oder anderer Ergebnisse dieses Programms ! Nie blind auf die
    Ergebnisse vertrauen, lieber nochmal von Hand nachrechnen !!!!
}

\subsection{Num. Integration}
    Hier können Sie eine Funktion numerisch Integrieren lassen. In dem
    erscheinenden Fenster wird die angewählte Funktion angezeigt (sie kann
    hier auch noch verändert werden !), außerdem werden Start und Ende des
    Integrationsbereiches abgefragt. Schließlich muß man noch angeben, in
    wievielen Schritten gearbeitet werden soll. Meist gilt: je mehr
    Schritte, desto besser. Die Integration startet man mit {\sl Fertig}
    oder \RETURN\ im letzten Gadget, das Ergebnis wird in dem einem
    Textgadget angezeigt, Fehler im anderen Textgadget (Bedeutung der
    Fehlercodes, siehe Tabelle \ref{Fehler}).

   Das Fenster schließt man durch Anwahl von {\sl Quit}. Vorher können aber
   beliebig viele Integrationen für die eine Funktion durchgeführt werden.

   In allen Fenstern, die zur Abfrage von Daten in diesem Programm 
   erscheinen, kann ein Anwählen von {\sl OK} bzw. {\sl Cancel} durch
   einen Tastendruck ersetzt werden --- wenn kein Stringgadget aktiv ist.
   Für {\sl OK} kann \verb|oOrRfF| gedrückt werden, für {\sl Cancel}
   \verb|cC|.

\begin{table}
\caption{Fehlercodes}
\label{Fehler}
\begin{center}
\begin{tabular}{|l|r|l|}
\hline
DIVBYZERO   &   1  &  Es wurde durch 0 geteilt \\
LOGNEG      &   2  &  log(<=0) \\
SQRTNEG     &   4  &  sqrt(<0) \\
ATRIG       &   8  &  asin/acos(x), x<-1 oder x > 1 \\
UNPAKLAM    &   16 &  Unpaarige Klammern \\
TEST        &   32 &  Wird nicht benutzt \\
NOFUNC      &   64 &  Keine Funktion eingegeben  \\
NO\_KONST   &  128 &  Keine solche Konstante  \\
NO\_MEM     &  256 &  Nicht genug Speicher     \\
POWERROR    &  512 &  < 0 hoch Bruch wurde versucht    \\
NO\_FUNC    & 1024 &  Keine Funktion gefunden \\
ER\_AHYP    & 2048 &  Fehler bei acosh(),atanh() \\
\hline
\end{tabular}
\end{center}
\end{table}



%
% Menu 3
%
\section{Bearbeiten}
\subsection{Achsen}
\subsubsection{automatisch}
    Es wird ein Koordinatenkreuz mit fest vorgegebenen Unterteilungen
    gezeichnet. Eine Variation der Anzahl Unterteilungen ist nicht möglich.
\subsubsection{manuell}
    Ein Fenster zur Abfrage der Anzahl Unterteilungen in x-- und y--Richtungen
    und der Textstellen (in der Form: Texte jede $x$--te Unterteilung)
    erscheint. Die Einstellungen geschehen über Schieberegler. Die beiden
    Regler für eine Achse sind miteinander gekoppelt, so daß bei {\sl
    Text jede \dots} kein höherer Wert eingegeben kann, als es überhaupt
    Unterteilungen gibt.

Um das ideale Koordinatensystem zu erhalten, ist es ratsam, vor dem
Zeichnen der Funktion die Einstellungen so lange zu variieren, bis die
Darstellung gefällt. Ist erst einmal eine Funktion gezeichnet, so kann
nur einmal ein Koordinatensystem gezeichnet werden, danach ist der entsprechende
Menupunkt nicht mehr anwählbar. Die im Fenster eingestellten Werte werden
beim nächsten Mal {\bf nicht} beim automatischen Zeichnen des Systems benutzt,
sondern das Programm merkt sich diese Einstellungen und bietet Sie bei der
nächsten Anwahl von manuell wieder an. Bevor die Achsen gezeichnet werden
erscheint das Fenster wie unter (\ref{Farbe}) beschrieben, um nach der
Farbe für die Achsen zu fragen.



\subsection{Zoom}
    Dieser Menupunkt stellt eine Art Lupenfunktion zur Ver\-fügung. Das
    Intervall, das als nächstes gezeichnet werden soll, kann mit der Maus
    ausgewählt werden. Die obere/linke Ecke wird mit der Maus angefahren,
    die linke Maustaste gedrückt  und gehalten und  dann die rechte/untere
    Ecke ausgewählt und  die Maus\-taste losgelassen. Danach wird der
    Bildschirm gelöscht. Während die Maustaste gedrückt wird, wird um den
    momentan ausgewählten Bereich ein Kasten gezeichnet. Eine evt.
    vorhandene HP--Plotausgabe wird abgeschlossen (siehe Kapitel \ref{HP}).

\subsection{Text einfügen}
\label{Farbe}
    Es erscheint ein Fenster mit einem Stringgadget, in dem man einen Text
    eingeben kann. Nach \RETURN\ wird dieser Text immer an der aktuellen
    Mausposition angezeigt und kann so positioniert werden. Nach Druck auf
    die linke Maustaste erscheint ein Fenster, in dem man die Farbe für den
    Text auswählen kann (1-4, wenn keine HP-Plotausgabe aktiv ist, sonst
    1-8). Nur drei der vier Farben sind auf dem Bildschirm sichtbar, die
    vierte ist die Hintergrundfarbe. Wird eine Farbe $>$ 4 angewählt, so
    wird automatisch für den Bildschirm eine Farbe aus dem Bereich 1 bis 4
    gewählt. In der Hp--Ausgabedatei steht natürlich der gewählte Wert.
\subsection{Genauigkeit}
    Es  erscheinen 4 SubMenuPunkte, mit denen die Genauigkeit auf {\bf
    klein}, {\bf mittel}, {\bf groß} oder {\bf Sehr groß} gesetzt werden
    kann. Je genauer gezeichnet wird, desto mehr Zeit wird benötigt.
\subsection{Intervall}
\label{INTERVALL}
    Nach Anwahl dieses Menupunktes erscheint ein Fenster mit 4
    Stringgadgets, in denen die alten Intervallgrenzen (der Bereich, für den
    die Funktion gezeichnet werden soll) anzeigt werden. Diese Werte kann
    man wie gewohnt verändern. Der eingegebene Term muß nur den
    Anforderungen entsprechen, die auch für die Funktionen gelten (siehe
    Kapitel \ref{FTerme}). Außerdem darf die linke/untere Grenze nicht
    größer/gleich sein als die rechte/obere. In solchen Fällen erscheint das
    Fenster nach Anwahl des {\sl Fertig}--Gadget (oder \RETURN\ im vierten
    Stringgadget) wieder. Weiterhin sind zwei {\sl Cycle}--Gadgets
    vorhanden (für jede Achse eins). Hier wird eingegeben, wie die für
    diese Achse eingegebenen Werte zu interpretieren sind. Zur Verfügung
    stehen $*1$, $*e$, $*pi$, $10\uparrow$, $e\uparrow$.

    Beispiel: In den Stringgadgets wurde $-1$ und $1$ eingegeben, das
    Cycle-- Gadgets wird auf $10\uparrow$ eingestellt. Dann wird der Bereich
    $[0.1\, ,\, 10]$ gezeichnet. Dabei wird die Achse logarithmisch und
    nicht linear dargestellt.

    Eine evt. vorhandene HP--Plotausgabe wird abgeschlossen (siehe auch
    Kapitel \ref{HP}).
\subsection{Konstanten}
\label{KONSTANTEN}
    Es erscheint ein Fenster mit einem Cycle-- und einem Stringgadget. Mit
    dem Cycle--Gadget wird der Name der Konstanten (a--z) eingegeben. Dies
    kann auch über die Tastatur geschehen. Wird der gewünschte Name
    angezeigt, \RETURN\ drücken. Der Wert für {\bf e} und {\bf x} wird
    später nirgendswo verwendet, sollte also nicht benutzt werden. Das
    Stringgadget ist zunächst deaktiviert. Wurde ein Name ausgewählt, so
    wird es aktiviert und eine evt. vorhandene Definition der Konstanten
    wird angezeigt. Diese kann verändert bzw. neu eingegeben werden. Durch
    Anwahl des {\sl Fertig}--Gadgets (oder \RETURN) wird die Definition
    übernommen. Bei Anwahl von {\sl Cancel} vergißt das Programm die
    Veränderungen, die alte Definition der Konstanten wird weiter
    verwendet.
\subsection{Macros}
\label{macro}
    Es erscheint ein Fenster wie bei (\ref{KONSTANTEN}). Es muß erst der
    Name des Macros und danach die Definition für das Macro eingegeben
    werden.

    In den Funktionen wird ein Macro als
    {\_Macro\-name} oder
    {\_Ma\-cro\-na\-me(Pa\-ra\-meter)} an\-ge\-spro\-chen {(z.B. \_a bzw. \_a(2*x))}. Wird ein
    Parameter angegeben, so wird in dem Macro der Buchstabe $x$ durch den
    Parameter ersetzt. Ein Macro kann selbst wieder aus anderen Macros
    bestehen. Rekursionen werden {\sl{\bf nicht}} automatisch erkannt.
    Während eine Funktion zusammengestellt wird (d.h. die in ihr enthaltenen
    Macros durch die entsprechenden Definitionen ersetzt werden), sind die
    Bildschirmfarben auf einen anderen Wert gesetzt und dieser Vorgang kann
    durch einen Mausklick in das {\sl Aktion stoppen}--Gadget gestoppt
    werden.
\subsection{HP--Ausgabe}
\label{HP}
    Bei {\sl An} wird der Name eines Files abgefragt, in das die Daten für
    einen HP--Plotter geschrieben werden sollen. Alle Zeichenvorgänge incl.
    {\sl Text einfügen} werden in diese Datei geschrieben. Solange dieser Modus
    aktiv ist, bleibt die Farbe des Screens verändert. Ausgeschaltet wird
    dieser Modus mit {\sl Aus} oder durch Ändern des Intervall oder durch
    normalen Ausdruck (Drucken).
\subsection{Farbe wählen}
    Das Fenster wie unter (\ref{Farbe}) beschrieben erscheint. Die hier
    zu wählende Farbe wird für alle Zeichenvorgänge benutzt (außer Achsen
    zeichnen).
\pagebreak[3]
\subsection{Font wählen}
    Mit den beiden Subitems {\sl Font für Text} und {\sl Font für Label}
    kann der Zeichensatz, die Größe und der Style bestimmt werden, der
    zum beschriften der Achsen bzw. bei {\sl Text einfügen} benutzt wird.
    Zur Auswahl erscheint der Standart--Font--Requester des Systems.
\subsection{Auflösung ändern}
    Ein Fenster erscheint, in dem man die Auflösung und den Darstellungsmodus
    verändern kann. {\sl Cancel} behält den momentanen Bildschirm bei,
    {\sl Fertig} schließt den Bildschirm und versucht, einen neuen in der
    gewünschten Größe zu öffnen.
    Mit den beiden zusätzlichen Gadgets ist es möglich, die Default--Wert
    bzw. die Startwerte (die über das .info--File eingegeben wurden), zu
    erhalten.

    Sollte beim Öffnen des Bildschirm etwas nicht ganz klappen, so wird
    versucht, einen Bildschirm mit den Default--Werten (die auf jedem
    Amiga laufen sollten), zu öffnen. Klappt dies auch nicht, sollte das
    Programm sich selbst beenden.

    Zu den ViewModes, siehe Tabelle (\ref{VIEWS}) und Kapitel (\ref{Optionen}).

\subsection{ARexx--Macro starten}
    In dem erscheinenden Requester kann ein Rexx--File ausgewählt werden,
    das dann ausgeführt wird. Es werden alle Dateien in rexx: mit der
    Endung {\sl .mapl} angezeigt (im Gegensatz zur Endung {\sl .mpl}, die
    einen zusätzlichen Befehl kennzeichnet und besser nicht von Hand
    gestartet werden sollten).

\newpage
%
%
%
\part{Optionen und Eingabeformate}
%
\section{Funktionsterme}
\label{FTerme}
    Jede Funktion darf aus den Rechenarten
$+$,
$-$,
$*$,
$/$,
$\uparrow$
    und den Funktionen sin, cos, tan, log, int, sgn, abs, sqr, asin, acos,
    atan, sinh, cosh, tanh, asinh, acosh, atanh,
    ln und den Konstanten a - z und pi ohne x sowie der Variablen x
    bestehen. e und pi sind mit den erwarteten Werten vordefiniert. 
% Sollte ab Version 1.19 nicht mehr nötig sein.
%    {\bf Es
%    muß alles klein geschrieben werden.} 
    Zahlen dürfen normal (1; 1.1; .1)
    oder in Potenzschreibweise (3e5,5d-7) eingegeben werden. Bei Potenzen
    darf vor dem Exponenten ein $+$ oder $-$ stehen, ohne daß der Exponent
    gleich geklammert werden muß. In der Regel sollte man aber alles so
    klammern, daß zweifelsfrei festgelegt ist, in welcher Reihenfolge der
    Term berechnet werden soll. Es gilt natürlich Potenz-- vor Punkt-- vor
    Strichrechnung.
\section{Optionen}
\label{Optionen}
    Beim Starten lädt \MathPlot die Dateien S:Colours.col und S:Funktionen.fkt.
    Tabelle (\ref{Colours}) und (\ref{Funktionen}) zeigen Beispiele für diese
    Dateien.

    Beim Start von der Workbench kann außerdem über das .info--File die
    Größe der Zeichenfläche eingestellt werden. Dazu sind die Schlüsselworte
    {\bf WIDTH} und {\bf HEIGHT} zu definieren. Weiterhin gibt es noch die
    Schlüsselwörter {\bf VIEW} und {\bf ROUND}. Bei {\bf ROUND} kann {\sl TRUE}
    oder {\sl FALSE} angegeben werden, entsprechend werden die Ausgaben bei
    Diskussion gerundet oder nicht (sehr kleine Zahlen werden auf NULL
    gesetzt).

    Bei {\bf VIEW} kann einer der in Tabelle (\ref{VIEWS}) angegebenen Werte
    eingegeben werden. Entsprechend wird der Bildschirm dargestellt. Die
    Größe der Zeichenfläche sollte den ViewMode angepaßt sein (z.B. 640x480
    bei Productivity). Die Werte können addiert werden (außer die beiden
    VGA-Modi). Einen Hires--Interlace--Screen mit 60 Hz Bildwiederholfrequenz
    (bei entsprechenden Chips, NTSC--Darstellung) erhält man mit 102404.
    Bei Verwendung entsprechender Chips wird ein NTSC--Screen automatisch in
    der Höhe gestreckt. Sollte die Darstellungsart auf dem Rechner nicht
    verfügbar sein, so endet das Programm kommentarlos. Ein Hires--Screen
    (ohne Angabe von PAL) sollte aber auf jedem Rechner verfügbar sein.

    Weiterhin gibt es noch das Schlüsselwort {\bf TEXT}. Hier sollte der Name (und
    evt. Pfad) der gewünschten Textdatei angegeben werden.


\begin{table}
\caption{Einige Werte für ViewModes}
\label{VIEWS}
\begin{center}
\begin{tabular}{|l|r|}
\hline
NTSC\_MONITOR\_ID & 69632 \\
PAL\_MONITOR\_ID  & 135168 \\
HIRES\_KEY       & 32768  \\
SUPER\_KEY       & 32800  \\
INTERLACE       & 4      \\
VGAPRODUCT\_KEY  & 233508 \\
VGAPRODUCTLACE\_KEY & 233509 \\
\hline
\end{tabular}
\end{center}
\end{table}

\begin{table}
\caption{Voreinstellung der Farben}
\label{Colours}
\begin{center}
\begin{tabular}{|l|l|}
\hline
aaa & \verb|Normal   Hintergrund| \\
000 & \verb|         TitelBar|   \\
f\/f\/f & \verb|         Titel|      \\
68b & \verb|         Plot|   \\
f\/f\/f & \verb|Printing Hintergrund| \\
f0f & \verb|         TitelBar|   \\
5f0 & \verb|         Titel|      \\
000 & \verb|         Plot|   \\
09e & \verb|HP-Out   Hintergrund| \\
0b0 & \verb|         TitelBar|   \\
f\/f\/f & \verb|         Titel|      \\
000 & \verb|         Plot|   \\
\hline
\end{tabular}
\end{center}
\end{table}

\begin{table}
\caption{Voreinstellung der Funktionen}
\label{Funktionen}
\begin{center}
\begin{tabular}{|l|l|}
\hline
sin(x) & Wird als erste Funktion angezeigt \\
cos(x) & Wird als zweite Funktion angezeigt \\
tan(x) & \\
x & \\
$x\uparrow 2$ & \\
$x\uparrow 3$ & \\
sqr(x) & \\
log(x) & \\
sgn(x) & \\
abs(x) & \\
\hline
\end{tabular}
\end{center}
\end{table}

\newpage
%
% Abschnitt 3
%
\part{Einige Bemerkungen}
%
% Hinweis
%

%\section{Hinweis}
%  Um  den  Code  klein   zu  halten,  wurde  eine  Stub--Routine  MemCleanup
%  eingefügt. Das  verringert  die  Codelänge bei  Lattice--Programmen  meist
%  etwas.  Bei anderen Compilern sollten  die entsprechenden Zeilen gelöscht
%  werden  (in Berechnungsroutinen.c).


%
% Known Bugs
%
\section{Bekannte Fehler}
    Bisher ist mir nichts schwerwiegendes bekannt. Die Beschriftung der
    Achsen überschneidet sich nur leider häufiger. Eventuell finde ich ja
    noch Abhilfe\dots.

    Falls jemand Unterschiede zwischen der FPU--Version und der normalen
    Version findet --- bitte unbedingt melden ! (Dieser Unterschied sollte
    möglichst reproduzierbar sein\dots)

\section{Seltsames Verhalten}
    Sollte beim Starten des Programms ein Fehler aufgetreten sein (eine
    Library nicht in der passenden Version gefunden o.ä.), so meldet dies
    das Programm. Ein Fehler in der Textdatei kann sowohl heißen, daß diese
    Datei nicht gefunden wurden als auch, daß in dieser Datei zu wenig
    Einträge sind. Wenn bereits eine ältere Version von \MathPlot verwendet
    wurde, so ist die mit der neueren Version mitgelieferte neue Textdatei
    auf Veränderungen zu überprüfen. Änderungen können sich auch auf den
    Inhalt beziehen --- so können in Zukunft noch weitere Formatanweisungen
    in die Texte aufgenommen werden. Ein Programm, das Dateien vergleicht
    ({\tt diff} oder ähnliches) tut dann gute Dienste.
    
    Das Programm paßt sich weitgehend automatisch dem verwendeten Font an.
    Bei zu großen Fonts ($>15$) gibt es allerdings bereits Probleme mit den
    Menus, sie passen in der Breite nicht mehr auf einen 640--er Bildschirm.
    Bei noch größeren Fonts werden die Menus auch zu hoch, so daß es zu
    Fehldarstellungen kommen kann\dots

    Sämtliche Kommunikationsfenster passen sich ebenfalls der Fontgröße an.
    Ein Fenster, daß nicht mehr auf den Screen paßt, wird einfach nicht
    geöffnet. Probleme gibt es mit der Beschriftung der Achsen (zu große
    Fonts sehen einfach nicht aus), auch die Übereinstimmung des HP--Outputs
    mit dem Bildschirm leidet stark. Zu Abstürzen dürfte es wegen eines zu
    großen Fonts aber nicht kommen.

%
% Changes
%
\subsection{Changes}
\subsubsection{V1.04 -- V1.12}
\begin{itemize}
\item Eine Möglichkeit zum Variieren der Achsenbeschriftung wurde eingefügt.
\item Es ist jetzt möglich, die Farbe für die Achsen und die Graphen zu
wählen.
\item Das Verändern der Auflösung und des Darstellungsmodus ist jetzt
auch nach dem Starten noch möglich.
\item Hyperbelfunktionen sind jetzt verfügbar (nur mit einer
Version von mtool.library größer als V2.20 !).
\item Der Bildschirm von \MathPlot ist nun ein PublicScreen.
\end{itemize}

%\subsubsection{V1.12 -- V1.14}
\subsubsection{V1.12 -- V1.19}
\begin{itemize}
\item Alle Fenster werden jetzt zentriert im {\bf sichtbaren} Bereich
des Bildschirms geöffnet. Dadurch muß bei übergroßen Bildschirmen nicht
mehr lange nach dem Fenster gesucht werden. Gilt nicht für Font-- und
File--Requester\dots
\item {\sl OK} und {\sl Cancel} kann durch einen Tastendruck ersetzt werden,
wenn kein Stringgadget aktiv ist.
\item Der Font für {\sl Text einfügen} und Beschriftung der Achsen kann jetzt
frei gewählt werden.
\item Fehler beim Integrieren in der FPU--Version beseitigt (Integrale
wurden zu NULL bestimmt).
\item Eine vierte Genauigkeitsstufe wurde eingefügt.
\item Das Ändern und Zeichnen von Funktionen ist jetzt auch über Funktionstasten
erreichbar.
\item Zum Darstellen der Menus werden nun die Systemroutinen benutzt.
\item Neue Cliproutinen. Dadurch ist das Zeichnen etwa um den Faktor
3 (auf einem A3000) schneller als vorher.
\item Der Screen hat jetzt das {\it AutoScroll}--Bit gesetzt. Bei zu
   großen Screens scrollt die Zeichenfläche jetzt automatisch.
\item Kleinen Fehler in den Zeichenroutinen beseitigt, der zu unschönen
Ergebnissen führte, wenn die Funktion nicht im gesammten Intervall definiert
war. An den Rändern wurde dann nicht bis an die Definitionslücke heran
gezeichnet. Sollte jetzt behoben sein.
\item ARexx--Port eingefügt.
\end{itemize}

\newpage

\part{ARexx--Port}
\section{Einleitung}
Ab der Version 1.18 enthält \MathPlot einen {\bf ARexx--Port} mit dem
Namen \verb|MPlot_ARexx|. Dort stehen eine Reihe von Befehlen zur
Verfügung. Bei Aufruf einiger Menupunkte über ARexx werden Requester,
die Fehler anzeigen (beim Zeichnen) bzw. die Nachfrage, ob der Screen
wirklich gelöscht werden soll (Neu) und die Frage nach der Achsenfarbe
unterdrückt.
\section{Die ARexx--Kommandos}
Es folgt eine Beschreibung aller ARexx-Kommandos, die MathPlot versteht.
Alle Argumente dürfen höchstens 50 Zeichen lange sein. Da Texte keine
Leerzeichen enthalten dürfen (Leerzeichen trennen Argumente), kann in einem
Texte ein $\sim$ für ein Leerzeichen und ` (Über der TAB--Taste) für
ein \RETURN\ eingegeben werden.
\begin{description}
\item[MP\_GetConst parameter]\ {\sl parameter} sollte ein Buchstabe (a-z)
sein, sonst gibt es einen Fehlercode. Im Erfolgsfall erhält man in
{\sl result} die Konstantendefinition.
\item[MP\_SetConst name wert]\ {\sl name} sollte ein Buch\-sta\-be (a-z)
sein. {\sl Wert} muß ein String sein, der eine gültige Konstante darstellt.
\item[MP\_GetMacro name]\ siehe (\verb|MP_GetConst|).
\item[MP\_SetMacro name Wert]\ siehe (\verb|MP_SetConst|).
\item[MP\_GetFunc name]\ {\sl name} sollte eine Zahl zwischen 0
und 9 sein. 0 entspricht der obersten Funktion, 9 der untersten. Im
Erfolgsfall erhält man den Funktionsterm zurück.
\item[MP\_SetFunc nr wert]\ {\sl nr} sollte zwischen 0 und 9 liegen, {\sl Wert} sollte
eine gültige Funktion sein.
\item[MP\_Get1Derive nummer]\ {\sl nummer} sollte eine Zahl zwischen 0 und
9 sein. Die Funktion gibt dann die erste Ableitung (symbolisch) der
entsprechenden Funktion aus der Liste zurück.
\item[MP\_Get2Derive nummer]\ siehe (\verb|MP_Get1Derive|), hier mit
der zweiten Ableitung.
\item[MP\_Menu menu item sub]\ Das durch die Zahlen {\sl menu, item, sub}
beschriebene Menu wird angewählt.
\item[MP\_SaveIff filename]\ {\sl filename} sollte ein gültiger Name für eine Datei
sein (evt. mit Pfad). Wird kein Filename angegeben, so erscheint der
entsprechende Requester. Der Screen von \MathPlot wird unter diesem Namen
dann abgespeichert.
\item[MP\_Beep]\ Erzeugt ein DisplayBeep.
\item[MP\_Version]\ Gibt den Versionsstring zurück.
\item[MP\_GetColour]\ Gibt die aktuelle Nummer der Zeichenfarbe zurück.
\item[MP\_GetPrecision]\ Gibt die Zeichengenauigkeit zurück.
\item[MP\_GetIntervall parameter]\ Gibt die Intervalleinstellungen
zurück. {\sl parameter} sollte {\sl xmin, xmax, ymin, ymax} für die
Intervallgrenzen und {\sl x, y} für die Einstellung (linear, logarithmisch)
sein.
\item[MP\_HpOn name]\ Schaltet die Hp--Ausgabe ein. Falls kein Name
angegeben wurde, erscheint der Filerequester.
\item[MP\_LoadFunc name]\ Lädt eine Funktionsdefinition. Falls kein Name
angegeben ist, erscheint der Filerequester.
\item[MP\_SaveFunc name]\ Speichert die Funktionsdefinitionen. Falls kein
Name angegeben ist, erscheint der Filerequester.
\item[MP\_LoadConst name] siehe oben.
\item[MP\_SaveConst name] siehe oben.
\item[MP\_LoadMacro name] siehe oben.
\item[MP\_SaveMacro name] siehe oben.
\item[MP\_GetInput text input]\ Es erscheint ein Requester mit der Titelzeile
   {\sl text} und der Vorgabe {\sl input}. Der eingegebene Wert wird in
   {\sl result} zurückgegeben (Wird {\sl Cancel} angewählt, so wird {\sl
   input} zurückgegeben). {\sl input} und {\sl text} können weggelassen werden.
   Falls {\sl input} angegeben werden soll, muß auch {\sl text} angegeben
   werden.
\item[MP\_GetColour]\ Gibt die Nummer der aktuellen Zeichenfarbe zurück.
\item[MP\_NumInt func xmin xmax schritte]\ {\sl func} sollte eine
   gültige Funktion (nicht eine Nummer !) sein.
   {\sl xmin, xmax} geben den zu integrierenden
   Bereich an, {\sl Schritte} die Anzahl Schritte. Die Anzahl der Nachkommastellen
   wird durch {\it MP\_SetNumPrecision} bestimmt.
\item[MP\_GetError]\ Gibt den aktuellen MatheFehler zurück.
\item[MP\_SetAxisColour para]\ {\sl para} sollte zwischen 0 und 3 (bzw. 7
   bei aktiver HP--Ausgabe) liegen. Diese Farbe wird beim Zeichnen von
   Achsen über ARexx benutzt, im Programm gibt es dafür bisher kein
   Äquivalent.
\item[MP\_SetNumPrecision Wert]\ {\sl Wert} sollte zwischen 0 und 16 liegen.
   Er gibt an, wieviele Nachkommastellen bei {\it MP\_NumInt} und
   {\it MP\_EvalString} zurückgegeben werden.
\item[MP\_EvalString string]\ {\sl string} sollte ein gültiger
   Funk\-ti\-ons\-term
   sein. Konstanten des Programms können benutzt werden, $x$ ist Null
   gesetzt. Die Anzahl der Nachkommastellen wird durch {\it MP\_SetNumPrecision}
   be\-stimmt. Bei dieser Funktion gilt die 50 Zeichen-Begrenzung für das
   Argument nicht.
\item[MP\_ShowMessage text button]\ Erzeugt einen EasyRequester mit {\sl
   text} als Text und {\sl button} als Text für die Gadgets.
   {\sl Text} kann ein bis zu 50 Zeichen
   langer Text sein (mit den oben genannten Ersatzzeichen für Leerzeichen
   und \RETURN), {\sl button} kann Text für mehrere Gadgets enthalten.
   Für das linke Gadget wird eine 1, für das nächste eine 2 usw. zurückgegeben.
   Für das rechte Gadget wird eine NULL zurückgeliefert.
\end{description}


\subsection{Befehlserweiterungen}
Man kann \MathPlot noch weitere Befehle '"beibringen"`, indem ARexx--Skripte
mit der Endung {\sl .mpl} in das Verzeichnis REXX: kopiert werden. Einige
Beispiele sind vorhanden:
\begin{description}
\item[MP\_Plot item sub]\ item entspricht der Nummer des entsprechenden
Items im Zeichnen-Menu. 1 steht also für Zeichen, 5 für die erste symbolische
Ableitung (der Unterteiler wird mitgezählt). sub (0-9) gibt an, welche
Funktion entsprechend item bearbeitet werden soll. Dieses Macro benutzt
den eingebauten Befehl {\sl MP\_Menu}.
\item[MP\_Print]\ Druckt den Screen aus.
\item[MP\_About]\ Der About--Requester wird angezeigt.
\item[MP\_Quit]\ Entspricht der Anwahl von {\sl Ende} im Menu.
\item[MP\_New]\ Entspricht der Anwahl von {\sl Neu} im Menu. Es wird
   sofort (ohne Rückfrage) gelöscht.
\item[MP\_Iconify]\ Entspricht der Anwahl von {\sl Iconify} im Menu.
\item[MP\_HpOff]\ Entspricht der Anwahl von {\sl Hp--Ausgabe/aus} im Menu.
\item[MP\_SelectLabelFont]
\item[MP\_SelectTextFont]\ Entspricht der Anwahl der entsprechenden Menupunkte.
\item[MP\_SetPrecision wert]\ Setzt die Zeichengenauigkeit. {\sl wert}
sollte zwischen 0 und 3 liegen.
\end{description}

\subsection{ARexx--Macros}
Mit diesen Macros (nicht zu verwechseln mit den (Funk\-ti\-ons--) Macros im
Programm !) bieten die Möglichkeit, immer wiederkehrende Aufgaben zu
vereinfachen. So können ganze Funktionenreihen erzeugt und als .IFF-- oder
.PLT--File abgespeichert werden. Einige Beispiele sind vorhanden:
\begin{description}
\item[Schar]\ Zeichnet eine Kurvenschar. Der Benutzer wird nach der Nummer
   der Funktion im Menu (0 - 9), dem Namen der Konstanten, dem Start-- und
   Endwert für diese Konstante und der Anzahl Schritte gefragt. Danach wird
   die Funktion entsprechend der Anzahl Schritte mit jeweils anderen Wert
   für die Konstante gezeichnet. Dieses Skript sollte vom Programm aus
   gestartet werden.
\item[ScharPLT]\ Wie bei {\sl Schar}, jede einzelne Funktion wird aber
   als .plt-Datei abgespeichert. Dafür fragt das Skript noch zusätzlich
   einen Filename (ohne Endung !) ab. Jede der Dateien erhält automatisch
   die Endung {\sl i.plt}, wobei {\sl i} für eine Zahl zwischen 1 und der
   Anzahl Schritten steht.
\item[ScharIFF]\ Wie oben, nur das jeder Graph als IFF--File abgespeichert
   wird (Endung {\sl .iff}).
\end{description}
%
%
%
\newpage
\part{Tutorial}
\section{Einleitung}
    Sie haben sich also entschieden, \MathPlot einmal auszuprobieren und
    wollen Schritt für Schritt wissen, was Sie tun sollen. Genau das
    versuche ich mit diesem Tutorial zu erreichen. Sagen wir mal, Sie wollen
    sich die Funktionen $$\sin(x)+\cos(x)$$ $$2*\sin(x)$$ $$\sin(2*x)$$ im
    Intervall $[-\pi,\pi]$ ansehen.

\section{Vorbereitungen}
    Sorgen Sie dafür, daß sich im LIBS:--Ordner die folgenden Libraries
    befinden:
\begin{enumerate}
\item mathieeedoubbas.library
\item mathieeedoubtrans.library
\item asl.library
\item mtool.library
\item diskfont.library (V36 oder höher)
\end{enumerate}
    Die Systemlibraries (wo nicht anders angegeben) müssen in der Version 
    37 oder hö\-her vorliegen. Sie
    brauchen also wenigstens Kickstart und Workbench 2.04. Sollten Sie regelmäßig
    mit \MathPlot arbeiten, sollten Sie auch noch folgende Dateien nach S:
    kopieren:
\begin{enumerate}
\item Colours.col
\item Funktionen.fkt
\end{enumerate}
    Außerdem sollten Sie noch die Größe der Zeichenfläche einstellen:
\begin{itemize}
\item Öffnen Sie Ihr Diskettenicon, bis Sie das Icon von \MathPlot sehen.
\item Klicken Sie den \MathPlot {\bf einmal} an und wählen Sie den
      Workbench--Menupunkt Icon/Information. Es sollte das Info--Fenster
      erscheinen.
\item Im unteren Bereich sollte unter Tool--Types bereits
      etwas stehen. Klicken Sie die Pfeile so lange an, bis Sie einen der
      folgenen Texte sehen und ändern Sie den Wert dahinter auf den
      angegebenen Wert ab:
\begin{verbatim}
            WIDTH=640
            HEIGHT=256
            VIEW=32768
            ROUND=TRUE
            TEXT=TextDaten
\end{verbatim}
    Dies sind die Standarteinstellungen für einen PAL--Amiga. Keiner der
    Werte für {\bf WIDTH} oder {\bf HEIGHT} sollte größer als 1024 sein (es sei denn,
    man hat die ECS--Chips). Bei großen Zeichenflächen brauchen Sie auch
    viel Chip--Speicher. Man kann auch Übergrößen angeben --- die Maus
    verschiebt dann automatisch den sichtbaren Bereich. 

\item Wählen Sie SAVE an.
\item Starten Sie den \MathPlot durch einen Doppelklick
\end{itemize}
\section{Eingeben der Funktionen}
    Die drei Funktionen, die Sie zeichnen lassen wollen, enthalten immer
    wieder den Ausdruck \verb|sin| und \verb|cos|. Obwohl es sich bei diesen
    kurzen Texten fast nicht lohnt: Stellen Sie sich tippfaul und arbeiten
    Sie mit Macros.
\subsection{Eingabe der Macros}
    Sie haben sich überlegt, daß Sie \_a=sin und \_b=cos definieren wollen.
    Wählen Sie also den entsprechenden Menupunkt (Macros). Tippen sie ein
    $a$. Es sollte im Cycle--Gadget erscheinen. Drücken Sie \RETURN. Der
    Cursor sollte nun in dem zweiten Gadget stehen. Sollte dort ein alter
    Text angezeigt werden, so löschen Sie ihn mit rechte--Amiga--x. Geben
    Sie dann \verb|sin(x)| ein. Entsprechend geben Sie für \_b den Text
    \verb|cos(x)| ein.
\subsection{Eingabe der Funktionen}
    Klicken Sie im Menupunkt {\sl Funktion ändern} drei Untermenupunkte an,
    ohne die rechte Maustaste loszulassen. Nach dem Loslassen sollte ein
    Fenster erscheinen, in dessen Gadget evt. eine alte Funktion steht.
    Löschen Sie diese. Dann geben Sie \verb|_a+_b| ein. \_a steht für den
    Sinus, \_b für den Cosinus. Wenn Sie \RETURN\ drücken, sollte das Fenster
    verschwinden und gleich darauf wieder erscheinen. Geben Sie dort
    \verb|2*_a| ein. Schließlich erscheint das Fenster noch einmal. Dort
    geben Sie dann \verb|_a(2*x)| ein. Wenn Sie sich jetzt die
    Untermenupunkte von {\sl Funktion ändern} ansehen, sollten dort Ihre
    Funktionen erscheinen.
\section{Eingabe des Intervalls}
    Wählen Sie den Menupunkt {\sl Intervall}. Geben Sie für x--min
    \verb|-pi|, für x--max \verb|pi|, für y--min \verb|-20| und für y--max
    \verb|20| ein. Die Grenzen für den y--Bereich kennen Sie ja noch nicht,
    also tasten Sie sich von oben heran. Die Cycle--Gadgets für x-- und
    y--Achse sollten auf $*1$ stehen.
\section{Zeichnen der Funktionen}
    Wählen Sie unter dem Menupunkt {\sl Plot} die drei gewünschten Funktionen
    an. Sie sollten gezeichnet werden. Aber der Bereich von -20 bis 20 war
    zu viel.

\section{Ändern des Bereiches}
    Prinzipiell können Sie nochmals Intervall aufrufen und neue y--Grenzen
    eingeben. Versuchen Sie aber mal die Funktion {\sl Zoom}. Wählen Sie
    sie an und gehen Sie mit der Maus an die Stelle, die Sie als neue obere
    linke Ecke sehen möchten. Drücken Sie die linke Maustaste und lassen
    Sie sie {\bf nicht} los. Gehen Sie mit der Maus an die Stelle, die Sie
    als neue untere rechte Ecke sehen möchten und lassen Sie die Maustaste
    los. Nun können Sie die Funktionen neu zeichnen.
\section{Diskussion}
    Falls Sie noch mehr über die Funktion wissen wollen, wählen Sie den
    Menupunkt {\sl Diskussion}.

%
%
%
\part{Abschluß}
%
% Ende
%
\section{Schlußwort}
    Falls jemand  Verbesserungsvorschläge, Fehlermeldungen
    oder ähnliches hat
    kann mir schreiben (Adresse auf der ersten Seite).

\begin{center}
       Viel Freude mit diesen Programm !!
\end{center}


\end{document}
