% 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 !


\documentstyle[amigauml]{article}
\def\MathPlot {{\bf MathPlot\ }}
\parindent 0pt
\def\RETURN {$<$RETURN$>$\ }
\begin{document}

\title{\MathPlot V1.04}
\author{\copyright by Rüdiger Dreier 1991} \sloppy
\maketitle
\begin{center}
\MathPlot ist SHAREWARE
\end{center}
\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}
\MathPlot ist {{\bf SHAREWARE}}.
\vspace{.5cm}

\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
unten 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 ebenfalls DM 30,-- oder \$ 20,--.
Der Quelltext darf nicht weitergegeben oder (ohne schriftliche
Genehmigung) kommerziell genutzt werden. Der Quelltext ist 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 nummerisch oder symbolisch
   bestimmt). Weiterhin sucht das Programm Nullstellen, Extrema und
   Wendestelle. Nummerische Integration ist möglich. \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.0 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 vier Libraries befinden:
\begin{enumerate}
\item mathieeedoubbas.library
\item mathieeedoubtrans.library
\item asl.library
\item mtool.library (in diesem Ordner enthalten)
\end{enumerate}
   Und in S: sollten sich befinden (Nicht unbedingt nötig):
\begin{enumerate}
\item Funktionen, einige vordefinierte Funktionen.
\item Colour, Die Farbdaten des Programms.
\item MPlotDef.info, dieses Icon wird für Iconify und die Iff-Daten benutzt.
\end{enumerate}

\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 geladen. 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).

%
% 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.
\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.

{\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 nummerisch 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. & trigonometr. Funktionen & 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 nummerisch 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 Quit. Vorher können aber
   beliebig viele Integrationen für die eine Funktion durchgeführt werden.

\begin{table}
\caption{Fehlercodes}
\label{Fehler}
\begin{center}
\begin{tabular}{|l|r|l|}
\hline
DIVBYZERO   &   1  &  Es wurde durch 0 geteilt \\
LOGNEG      &   2  &  Es wurde von Zahl <= 0 der Log gebildet \\
SQRTNEG     &   4  &  Es wurde von Zahl <0   die Wurzel gebildet \\
ATRIG       &   8  &  Es wurde von Zahl >1 oder <-1 asin/acos gebildet \\
UNPAKLAM    &   16 &  Unpaarige Klammern \\
TEST        &   32 &  Wird nicht benutzt \\
NOFUNC      &   64 &  Keine Funktion eingegeben  \\
NO\_KONST   &  128 &  Keine solche Konstante  \\
NO\_MEM     &  256 &  Kein Speicher für weiteren Block     \\
POWERROR    &  512 &  Negative Zahl hoch Bruch wurde versucht    \\
NO\_FUNC    & 1024 &  Keine Funktion gefunden         \\
\hline
\end{tabular}
\end{center}
\end{table}



%
% Menu 3
%
\section{Bearbeiten}
\subsection{Achsen}
    Wurde eine Funktion gezeichnet, so wird nach Anwahl dieses Menupunktes
    ein Koordinatenkreuz mit Unterteilungen und Beschriftungen gezeichnet.
    Außerdem wird angezeicht, in welchen Einheiten die Achsen unterteilt
    sind. Ist also eine Achse von -1 bis 1 unterteil und ist für diese Achse
    als Einheit $10\uparrow$ angegeben, so stellt die Achse das Intervall
    $[0.1\, , \,10]$ dar.
\subsection{Zoom}
    Dieser Menupunkt stellt eine Art Lupenfunktion zur Verfü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}
    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 3 SubMenuPunkte, mit denen die Genauigkeit auf {\bf
    klein}, {\bf mittel} oder {\bf 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 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
    {\_Macroname} oder
    {\_Macroname(Pa\-ra\-meter)} angesprochen {(z.B. \_a bzw. \_a(2*x))}. Wird ein
    Parameter angegeben, so wird in dem Macros 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.
    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).
\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, ln und den Konstanten a - z und pi ohne x sowie der Variablen x
    bestehen. e und pi sind mit den erwarteten Werten vordefiniert. {\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 und S:Funktionen.
    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|   \\
fff & \verb|         Titel|      \\
68b & \verb|         Plot|   \\
fff & \verb|Printing Hintergrund| \\
f0f & \verb|         TitelBar|   \\
5f0 & \verb|         Titel|      \\
000 & \verb|         Plot|   \\
09e & \verb|HP-Out   Hintergrund| \\
0b0 & \verb|         TitelBar|   \\
fff & \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.

\section{Seltsames Verhalten}
    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
%

\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 tool.library
\end{enumerate}
    Die Systemlibraries müssen in der Version 36 oder höher vorliegen. Sie
    brauchen also wenigstens Kickstart/Workbench 2.0. Sollten Sie regelmäßig
    mit \MathPlot arbeiten, sollten Sie auch noch folgende Dateien nach S:
    kopieren:
\begin{enumerate}
\item Colours
\item Funktionen
\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 WIDTH oder 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. Die Werte sollten auch sinnvoll sein, da es keine
    Möglichkeit gibt, zu scrollen.

\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, oder sich registrieren lassen möchte,
    hier meine Adresse:
{
\large
\begin{verbatim}
                 Rüdiger Dreier
                 Gustav-Winkler Str. 40
          W-4800 Bielefeld 18
                 Germany

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


\end{document}
